#matlab #filter
#matlab #Фильтр
Вопрос:
У меня есть акселерометр 3 оси.
Насколько нам известно, ускорение представляет собой сумму статического ускорения (силы тяжести) и динамического ускорения.
моя цель — извлечь ускорение силы тяжести, которое покажет мне направление устройства.
я применю фильтр Баттерворта для извлечения ускорения силы тяжести. но у меня проблема с выбором частоты среза и порядка фильтрации.
T = 0,16 с; % времени дискретизации, поэтому Fs = 1/0,16;% частота дискретизации? правильно ли это?
Прочитав несколько статей, я обнаружил, что пороговое значение варьируется от 0,1 до 0,5, здесь я выберу 0,5 (потому что, поскольку я не знаю, основаны ли они на их выборе.
это программа, которую я буду выполнять в Matlab, чтобы извлечь ускорение силы тяжести из оси 3.
Fc = 0.5 ; %cut-off frequency
Fs = 6.26 hz (1/0.16) ; % sampling rate order = 4;
[b,a] = butter(order,fc(fs/2),'low');
x = filter (b,a,x0);
y = filter(b,a,y0);
z = filter(b,a,z0);
Комментарии:
1. Итак, вы не получаете хороших результатов с этим? чего вы ожидаете, что вы получаете? бросьте нам кость.
2. спасибо за ваш ответ. я застрял в выборе частоты среза, здесь я выбираю произвольное среза = 0,5. с другой стороны, когда я нормирую частоту среза (fc * (fc / 2)), это выдает мне ошибку в matlab, потому что среза должна быть в пределах интервала [0,1]
3.
fc*(fc/2)
не нормализовано . Вам нужно разделить любую имеющуюся у вас частотуFs/2
, и, очевидно, она не может быть больше этой.Fs/2
это ваша частота Найквиста, которая представляет общую полосу пропускания вашего сигнала. Частота среза0.5
— это нормализованная частота . На самом деле это фактически равноFs/4
. Попробуйте значения между[0.5,1]
в нормализованном диапазоне или из[Fs/4, Fs/2]
фактического диапазона.4. большое спасибо за ваш ответ. как мы уже говорили, я нашел в этих двух ссылках, что Fc = FS / 4 ( cwc-ae.com/product/kadadc132 ), и в другой ссылке я нашел это: если частота среза меньше Fs / 2L (см. Ниже), то фильтр будет низкочастотным; в противном случае это будет высокочастотный. Кроме того, частота среза не может быть точно равна Fs / 2L и не может быть больше Fs / L при L = 2; в моем случае и для вычисления нормализованной частоты среза = (Fs / 4) / (Fs / 2) = 0,5, и поскольку я буду использовать фильтр нижних частот,я должен варьировать пороговое значение между [0.5,1], как мы сказали?
Ответ №1:
Что вы делаете, так это «замедляете» измерения с помощью фильтра Баттерворта. Таким образом, на практике вы пытаетесь избавиться от «быстрой» части. Что это означает в частотной области: вам нужен низкочастотный (низкочастотный = медленный сигнал проходит, а высокий = быстрый отфильтровывается). Итак, я думаю, с тем, что вы уже знаете, вы должны быть в состоянии найти разумное значение.
Как правило, для оценки углов у вас под рукой есть гироскопы. Тогда вы предпочли бы использовать фильтрацию Калмана, поскольку это не добавляет такой большой задержки к вашим измерениям (если это зависит от времени).
Как уже отмечалось, имейте в виду, что вы имеете дело с выборочными данными (частота Найквиста. является естественным ограничением).
Комментарии:
1. Большое спасибо за ваш ответ. Проблема здесь в том, что я должен использовать только акселерометр 3D, я знаю, что будет лучше, если я использую датчики слияния и использую дополнительный фильтр, но это предложение моего профессора. если я применю фильтр Баттерворта нижних частот, это не даст мне хороших результатов? Заранее спасибо
2. Действительно в зависимости от того, что хорошо. Например, это не может быть быстрым. Как бы это было, если вы не можете доверять быстрым измерениям вашего акселерометра? Дополнение фильтра — довольно простой способ, который не требует больше размышлений, чем: это можно умножить и сложить вместе. Например, фильтрация Калмана при определенных обстоятельствах является оптимальной! Все, что вам нужно знать, зависит от вашего приложения, … поэтому, возможно, предоставьте больше информации для получения лучших ответов.
3. Спасибо за ваш ответ. в моем случае я впервые попытался собрать данные об ускорении и проанализировать их, чтобы узнать направление нашего устройства (Sensortag, который содержит акселерометр), я ищу фильтрацию силы тяжести из данных ускорения. я знаю, что будет лучше, если я буду использовать акселерометр гироскоп, но, как я уже говорил в своем последнем сообщении, это предложение моего профессора.
Ответ №2:
Частота среза зависит от интересующего диапазона сигнала, который вы хотите извлечь из зашумленного сигнала. Предположим: вы используете свой мобильный телефон в кармане брюк и собираете необработанные данные во время занятий. Тогда ваша частота среза напрямую связана со скоростью человеческой активности (например: бег, ходьба, бег трусцой и т. Д.). Примечание: По мере увеличения порядка фильтра N фактические частотные характеристики приближаются к идеальным. Порядок фильтрации также будет зависеть от сигнала, который вы хотите извлечь для анализа. Обратитесь к этой публикации для получения дополнительной информации: Алгоритм шагомера на основе гироскопических данных от Jayalath.Ссылка S: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=amp;arnumber=6553971amp;queryText=A gyroscopic data based pedometer algorithm
Комментарии:
1. Спасибо за ваш ответ!