Jaka jest częstotliwość odcięcia filtra średniej ruchomej?

18

Muszę zaprojektować filtr średniej ruchomej, który ma częstotliwość odcięcia 7,8 Hz. Wcześniej używałem filtrów średniej ruchomej, ale o ile mi wiadomo, jedynym parametrem, który można podać, jest liczba punktów, które należy uśrednić ... Jak to może się odnosić do częstotliwości odcięcia?

Odwrotność 7,8 Hz wynosi ~ 130 ms, a ja pracuję z danymi, które są próbkowane przy 1000 Hz. Czy to oznacza, że ​​powinienem używać ruchomego średniego rozmiaru okna filtru wynoszącego 130 próbek, czy jest coś jeszcze, czego mi brakuje?

CaptainProg
źródło
Najpierw powinieneś zdefiniować swoje rozumienie „granicy”. Jeśli jest to ostatnia częstotliwość powyżej (poniżej), której odpowiedź filtra wynosi zero, wówczas odpowiedź brzmiałaby „brak”, ponieważ jądro filtru średniej ruchomej ma skończone wsparcie, a skończone falki przekształcają się w nieskończone obrazy czterokierunkowe.
mbaitoff
Filtr średniej ruchomej jest filtrem stosowanym w dziedzinie czasu w celu usunięcia dodanego szumu, a także w celu wygładzenia, ale jeśli użyjesz tego samego filtra średniej ruchomej w dziedzinie częstotliwości do separacji częstotliwości, wydajność będzie najgorsza ...... więc w takim przypadku użyj filtrów w domenie częstotliwości

Odpowiedzi:

27

Filtr średniej ruchomej (czasami nazywany potocznie filtrem boxcar ) ma prostokątną odpowiedź impulsową:

h[n]=1Nk=0N1δ[nk]

Lub inaczej stwierdzono:

h[n]={1N,0n<N0,otherwise

Pamiętając, że odpowiedź częstotliwościowa układu z czasem dyskretnym jest równa transformacie Fouriera z czasem dyskretnym odpowiedzi impulsowej, możemy ją obliczyć w następujący sposób:

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

Aby to uprościć, możemy użyć znanego wzoru na sumę pierwszych terminów serii geometrycznejN :

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

W twoim przypadku najbardziej interesuje nas odpowiedź wielkościowa filtra,. Za pomocą kilku prostych manipulacji możemy uzyskać to w łatwiejszej do zrozumienia formie:|H(ω)|

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

To może nie wyglądać łatwiejsze do zrozumienia. Jednak ze względu na tożsamość Eulera pamiętaj, że:

sin(ω)=ejωejωj2

Dlatego możemy napisać powyższe jako:

H(ω)=1NejωN/2ejω/2j2sin(ωN2)j2sin(ω2)=1NejωN/2ejω/2sin(ωN2)sin(ω2)

Jak już wcześniej powiedziałem, naprawdę niepokoi Cię wielkość odpowiedzi częstotliwościowej. Możemy więc wziąć pod uwagę wielkość powyższego, aby jeszcze bardziej uprościć:

|H(ω)|=1N|sin(ωN2)sin(ω2)|

Uwaga: Jesteśmy w stanie usunąć wykładnicze terminy, ponieważ nie wpływają one na wielkość wyniku; dla wszystkich wartości . Ponieważdla dowolnych dwóch skończonych liczb zespolonych i możemy wywnioskować, że obecność składników wykładniczych nie wpływa na całkowitą odpowiedź wielkości (zamiast tego wpływa na odpowiedź fazową systemu).|ejω|=1ω|xy|=|x||y|xy

Wynikowa funkcja w nawiasach wielkości jest formą jądra Dirichleta . Czasami nazywa się to okresową funkcją sinc , ponieważ z wyglądu przypomina nieco funkcję sinc , ale zamiast tego jest okresowa.

W każdym razie, ponieważ definicja częstotliwości odcięcia jest nieco nieokreślona (punkt -3 dB? -6 dB punkt? Pierwsza sidelobe zero?), Możesz użyć powyższego równania, aby rozwiązać wszystko, czego potrzebujesz. W szczególności możesz wykonać następujące czynności:

  1. Ustawna wartość odpowiadającą żądanej odpowiedzi filtra przy częstotliwości odcięcia.|H(ω)|

  2. Ustaw równe częstotliwości odcięcia. Aby odwzorować częstotliwość ciągłego czasu na domenę czasu dyskretnego, pamiętaj, że , gdzie to częstotliwość próbkowania.ωω=2πffsfs

  3. Znajdź wartość która zapewnia najlepszą zgodność między lewą i prawą stroną równania. To powinna być długość średniej kroczącej.N

Jason R.
źródło
Według mnie to „tak”? O ile wiem, 130 próbek wydaje się pasować do N przy ω = 7,8, ale nie jestem matematykiem.
CaptainProg,
@CaptainProg: Tylko Ty możesz powiedzieć na pewno; Nie jestem pewien, co chciałeś, aby odpowiedź amplitudowa była na częstotliwości odcięcia.
Jason R,
1
Czy możesz określić, jakie są n i N? Bardzo przydatny byłby również przykład z daną częstotliwością próbkowania. To może wydawać się proste, ale to pytanie jest głównym wynikiem dla „ruchomej średniej częstotliwości odcięcia”, więc jestem pewien, że będzie wielu innych widzów, którzy stracili kontakt z matematyką stojącą za filtrami.
FvD,
@FvD jest indeksem próbkowania dla sygnału x [ n ] , jak zwykle stosuje się w przypadku sygnałów o czasie dyskretnym. N jest zdefiniowane w pierwszym równaniu powyżej. Jeśli mam szansę, mogę dodać przykład, ale podejrzewam, że każdy, kto zdecyduje się zaprojektować filtr spełniający określoną częstotliwość odcięcia, może podążać za matematyką. nx[n]N
Jason R
10

Jeżeli jest długością średniej ruchomej, to przybliżona częstotliwość odcięcia F c o (ważna dla N > = 2 ) przy znormalizowanej częstotliwości F = f / f s wynosi:NFcoN>=2F=f/fs

Fco=0.442947N21

Odwrotnością tego jest

N=0.196202+Fco2Fco

Ta formuła jest asymptotycznie poprawna dla dużych N i ma około 2% błędu dla N = 2 i mniej niż 0,5% dla N> = 4.

PS: Po dwóch latach w końcu zastosowaliśmy to podejście. Wynik oparto na aproksymacji widma amplitudy MA wokół jako paraboli (seria 2 rzędu) zgodnie zf=0

MA(Ω)=Sin(ΩN/2)Sin(Ω/2)

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

które mogą być dokładniejsze w pobliżu przejścia przez zero przez pomnożenieΩprzez współczynnikMA(Ω)22Ω

α=0.95264

otrzymując MA(Ω)1+0.907523(124N224)Ω2

Rozwiązanie daje powyższe wyniki, gdzie2πFco=Ωco.MA(Ω)22=02πFco=Ωco

Wszystkie powyższe dotyczą częstotliwości odcięcia -3dB, która jest przedmiotem tego postu.

Czasami interesujące jest uzyskanie profilu tłumienia w paśmie zatrzymania, który jest porównywalny z filtrem filtra dolnoprzepustowego II rzędu 1 (jednobiegunowy LPF) o danej częstotliwości odcięcia -3dB (taki LPF jest również nazywany integratorem nieszczelności, posiadanie bieguna nie dokładnie w DC, ale blisko niego).

relacje między filtrem MA (FIR, zera N-1) a 1-biegunowym IIR LPF

F=k/N1/f1/f

HIIR=1Exp(Ωco)1Exp(Ωco)Exp(jΩ)

Jeśli ktoś chce uzyskać filtr MA z podobnymi możliwościami filtrowania szumów jak ten filtr IIR i dopasowuje częstotliwości odcięcia 3dB, aby były takie same, po porównaniu dwóch widm zdałby sobie sprawę, że tętnienie pasma zatrzymania filtra MA kończy się ~ 3dB poniżej filtru IIR.

Aby uzyskać takie samo tętnienie pasma stop (tj. Takie samo tłumienie mocy szumu) jak filtr IIR, formuły można zmodyfikować w następujący sposób:

Fco,IIR=0.32N21

N=0.1024+Fco,IIR2Fco,IIR

Massimo
źródło
Zmieniłem twoją formułę na format lateksowy. Proszę dokładnie sprawdzić i potwierdzić, że oba są poprawne. Dzięki.
lennon310
Dodałem tutaj pochodną tego przybliżenia dsp.stackexchange.com/a/28186/15347
Olli Niemitalo
2
O ile pamiętam, wyprowadziłem tę formułę z pragmatycznych obaw za pomocą metod numerycznych (albo NSolve w Mathematica lub coś podobnego w Matlab), które powinny być asymptotycznie poprawne dla dużych N. Podana liczba to około 3% zniżki , więc nie jestem pewien, co powiedzieć.
Massimo,
1
@Massimo wykonaliśmy wiele pracy nad tym i innymi przybliżeniami w innym pytaniu. Jeśli kiedykolwiek potrzebujesz więcej miejsc po przecinku, oto twoja magiczna liczba: 0.442946470689452340308369
Olli Niemitalo
1
MA(Ω)=Sin(ΩN/2)/Sin(Ω/2) ; Omega=2πF; MA(F)N+1/6F2(NN3)π2 . And deriving the crossing with 1/2 from there.
Massimo