Какова частота среза фильтра скользящей средней?


18

Мне нужно спроектировать фильтр скользящей средней с частотой среза 7,8 Гц. Раньше я использовал фильтры скользящего среднего, но, насколько мне известно, единственным параметром, который можно ввести, является число точек, которые нужно усреднить ... Как это может относиться к частоте среза?

Обратное значение 7,8 Гц составляет ~ 130 мс, и я работаю с данными, которые выбираются с частотой 1000 Гц. Означает ли это, что я должен использовать окно фильтра скользящей средней размером 130 выборок, или я что-то здесь упускаю?


Вы должны сначала определить свое понимание "отсечки". Если это последняя частота выше (ниже), в которой отклик фильтра равен нулю, тогда ответом будет «нет», поскольку ядро ​​фильтра скользящего среднего имеет конечную опору, а конечные вейвлеты преобразуются в бесконечные фурье-изображения.
mbaitoff

Фильтр скользящего среднего - это фильтр, используемый во временной области для удаления добавленного шума, а также для сглаживания, но если вы используете тот же фильтр скользящего среднего в частотной области для разделения частот, то производительность будет наихудшей ...... так в этом случае используйте фильтры в частотной области

Ответы:


27

Фильтр скользящего среднего (иногда известный в разговорной речи как фильтр с вагонами ) имеет прямоугольную импульсную характеристику:

час[N]знак равно1NΣКзнак равно0N-1δ[N-К]

Или указано иначе:

час[N]знак равно{1N,0N<N0,в противном случае

Помня, что частотная характеристика системы с дискретным временем равна преобразованию Фурье ее импульсной характеристики с дискретным временем , мы можем рассчитать ее следующим образом:

H(ω)=n=x[n]ejωn=1Nn=0N1ejωn

Чтобы упростить это, мы можем использовать известную формулу для суммы первых членов геометрического рядаN :

n=0N1ejωn=1ejωN1ejω

Что вас больше всего интересует в вашем случае, так это отклик величины фильтра,, Используя пару простых манипуляций, мы можем получить это в более легкой для понимания форме:|H(ω)|

H(ω)=1Nn=0N1ejωn=1N1ejωN1ejω=1NejωN/2ejω/2ejωN/2ejωN/2ejω/2ejω/2

Это может выглядеть не так просто для понимания. Однако, из-за личности Эйлера , напомним, что:

грех(ω)знак равноеJω-е-JωJ2

Поэтому мы можем написать выше, как:

ЧАС(ω)знак равно1Nе-JωN/2е-Jω/2J2грех(ωN2)J2грех(ω2)знак равно1Nе-JωN/2е-Jω/2грех(ωN2)грех(ω2)

Как я уже говорил ранее, вы действительно обеспокоены величиной частотного отклика. Итак, мы можем взять величину вышеупомянутого, чтобы упростить это далее:

|ЧАС(ω)|знак равно1N|грех(ωN2)грех(ω2)|

Примечание: мы можем исключить экспоненциальные члены, потому что они не влияют на величину результата; для всех значений . Посколькудля любых двух конечных комплексных чисел и мы можем сделать вывод, что наличие экспоненциальных членов не влияет на общий отклик величины (вместо этого они влияют на фазовый отклик системы).|еJω|знак равно1ω|ИксY|знак равно|Икс||Y|ИксY

Результирующая функция в скобках величины является формой ядра Дирихле . Иногда ее называют периодической функцией sinc , потому что она внешне напоминает функцию sinc , но вместо этого является периодической.

В любом случае, поскольку определение частоты среза несколько не указано (точка -3 дБ? -6 дБ точка? Первый боковой лепесток ноль?), Вы можете использовать приведенное выше уравнение для решения любых задач. В частности, вы можете сделать следующее:

  1. Setдо значения, соответствующего отклику фильтра, который вы хотите на частоте среза.|ЧАС(ω)|

  2. Установите равным частоте среза. Чтобы отобразить частоту непрерывного времени в область дискретного времени, помните, что , где - ваша частота дискретизации.ωωзнак равно2πееsеs

  3. Найдите значение которое дает вам наилучшее согласие между левой и правой сторонами уравнения. Это должна быть длина вашей скользящей средней.N


По моим расчетам, это «да»? Насколько я могу судить, 130 выборок, кажется, соответствуют N с ω = 7,8, но я не математик.
CaptainProg

@CaptainProg: Только вы можете сказать наверняка; Я не уверен, что вы хотели, чтобы величина реакции была на частоте среза.
Джейсон Р,

1
Не могли бы вы определить, что такое n и N? Пример с заданной частотой дискретизации также будет очень полезен. Это может показаться простым, но этот вопрос является лучшим результатом для «частоты среза скользящей средней», поэтому я уверен, что будет много других зрителей, которые потеряли связь с математикой за фильтрами.
FvD

@FvD - это индекс выборки для сигнала x [ n ] , который обычно используется для сигналов с дискретным временем. N определяется в первом уравнении выше. Если я получу шанс, я могу добавить пример, но я подозреваю, что любой, кто решит разработать фильтр для соответствия определенной частоте среза, может следовать математике. NИкс[N]N
Джейсон Р

10

Если - длина скользящей средней, то приблизительная частота отсечки F c o (действительная для N > = 2 ) на нормированной частоте F = f / f s равна:NFсоN> =2Fзнак равное/еs

Fсознак равно0.442947N2-1

Обратное это

Nзнак равно0.196202+Fсо2Fсо

Эта формула асимптотически верна для больших N и имеет ошибку около 2% для N = 2 и менее 0,5% для N> = 4.

езнак равно0

MA(Ω)знак равноSяN(Ω*N/2)SяN(Ω/2)

MA(Ω)1+(124-N224)Ω2

MA(Ω)-22Ω

αзнак равно0,95264

MA(Ω)1+0.907523(124-N224)Ω2

MA(Ω)-22знак равно02πFсознак равноΩсо

Все вышеперечисленное относится к частоте среза -3 дБ, предмету этого поста.

Иногда, хотя интересно получить профиль затухания в полосе затухания, сравнимый с профилем низкочастотного фильтра IIR 1-го порядка (однополюсный ФНЧ) с заданной частотой среза -3 дБ (такой ФНЧ также называется интегратором с утечкой, имея полюс не совсем в постоянном токе, но рядом с ним).

отношения между фильтром MA (FIR, N-1 нули) и 1-полюсным IIR LPF

Fзнак равноК/N1/е1/е

ЧАСяярзнак равно1-ЕИксп(-Ωсо)1-ЕИксп(-Ωсо)*ЕИксп(JΩ)

Если кто-то хочет получить фильтр MA с такими же возможностями фильтрации шума, как у этого фильтра IIR, и сопоставить частоты отсечки в 3 дБ, чтобы они были одинаковыми, то при сравнении двух спектров он поймет, что пульсация полосы останова фильтра MA заканчивается ~ 3 дБ ниже, чем у БИХ-фильтра.

Чтобы получить ту же пульсацию в полосе задерживания (т.е. такое же ослабление мощности шума), что и для БИХ-фильтра, формулы могут быть изменены следующим образом:

Fсо,яярзнак равно0,32N2-1

Nзнак равно0,1024+Fсо,яяр2Fсо,яяр


Я изменил вашу формулу на латексный формат. Пожалуйста, дважды проверьте и подтвердите, что оба они верны. Благодарю.
lennon310

Я добавил вывод этого приближения здесь. Dsp.stackexchange.com/a/28186/15347
Олли Нимитало,

2
Насколько я помню, я вывел эту формулу с учетом прагматических соображений с помощью численных методов (либо NSolve в Mathematica, либо чего-то подобного в Matlab), которые должны быть асимптотически правильными для больших N. Полученное вами число составляет около 3%. так что я не уверен, что сказать.
Массимо

1
@Massimo, мы проделали большую работу по этому и другим приближениям в другом вопросе. Если вам когда-нибудь понадобится больше десятичных разрядов, это ваше магическое число: 0.442946470689452340308369
Олли Нимитало,

1
MA(Ω)знак равноSяN(Ω*N/2)/SяN(Ω/2)Омеграммaзнак равно2*π*FMA(F)N+1/6*F2*(N-N3)*π21/2
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.