2013-08-07 1 views
0

Я знаю, что дополнительный фильтр имеет функции как LPF, так и HPF. Но я думаю, что мое понимание принципала позади этого до сих пор неясно.Как определить параметр alpha дополнительного фильтра?

Я довольно новичок в цифровой обработке сигналов, и, возможно, некоторые очень фундаментальные объяснения помогут.

Скажет, у меня есть комплементарный фильтр следующим образом:

y = a * y + (1 - a) * x 

Тогда мой параметр a может быть вычислен

a = time_constant/(time_constant + sample_period),

где sample_period просто, обратная sampling_frequency.

time_constant похоже на мой выбор.

Мои вопросы:

  1. Что такое теория позади этого расчета?
  2. Как мы выбираем time_constant правильно?

Примечание: Я также posted this question on robotics, как ответы там, вероятно, будет немного отличаться в акцентах.

+0

Многопользовательский режим [Robotics] (http://robotics.stackexchange.com/q/1717/37). –

ответ

1

Какова теория этого расчета?

Для читаемого введения я бы рекомендовал:
The Balance Filter: A Simple Solution for Integrating Accelerometer and Gyroscope Measurements for a Balancing Platform.

Как мы правильно выбираем time_constant?

Интуитивно, time_constant - это граница между доверием к верхнему и нижнему фильтру. За более короткое время, чем time_constant, вы больше доверяете части фильтра верхних частот, и в течение более длительного времени вы доверяете части нижнего прохода больше.

Обычно у вас есть опыт работы с физическим процессом, с которым вы имеете дело, и вы можете угадать по крайней мере на порядок величины time_constant. Например, если вы сплавляете акселерометр и данные гироскопа (что я предполагаю, что вы делаете, исходя из вашего другого вопроса), что-то между 0,5-1 секундой является разумным первым предположением. Затем вы начинаете настройку фильтра, анализируя его производительность по фактическим данным и соответствующим образом настраивая a.

+0

Спасибо! Но я на самом деле собираю гироскоп и магнитометр. Я все еще не понимаю. Частота среза имеет смысл для меня, тогда как так называемое time_constant этого не делает. Я где-то читал, что time_constant - это «как долго действует сигнал». Что это значит? Я имею в виду, что сигнал всегда есть и «действует», верно? Как вы знаете, 0,5-1 сек - это хорошая догадка, пожалуйста? –

+0

Я знаю это на практике: я использовал гироскопы исключительно для того, чтобы получить ориентацию, и обнаружил, что они хорошо работают в течение 0,5-1 секунды, но после этого они начинают значительно дрейфовать. Я бы не стал беспокоиться о получении точного 'time_constant', потому что это всего лишь * оценка *. Вам нужно настроить свой фильтр в любом случае после установки 'time_constant': вы анализируете производительность фильтра на фактические данные и соответственно корректируете' a' (или 'time_constant', что эквивалентно). – Ali

+0

Вы обнаружите, что довольно широкий диапазон «time_constant» дает почти одинаково хорошую производительность (еще одна причина, по которой я не стал бы суетиться над точностью 'time_constant'). – Ali

Смежные вопросы