реализация фильтра Баттерворта в matlab

#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. Спасибо за ваш ответ!