MATLAB filtfilt
wykonuje filtrowanie do przodu i do tyłu, tj. Filtruje, odwraca sygnał, filtruje ponownie, a następnie ponownie do tyłu. Najwyraźniej zrobiono to w celu zmniejszenia opóźnień fazowych? Jakie są zalety / wady korzystania z takiego filtrowania (wydaje mi się, że spowodowałoby to efektywny wzrost kolejności filtrów).
Czy lepiej byłoby filtfilt
zawsze używać zamiast filter
(tj. Tylko filtrowanie do przodu)? Czy są jakieś aplikacje, w których jest to konieczne i których nie należy używać?
Odpowiedzi:
Najlepiej możesz na to spojrzeć w dziedzinie częstotliwości. Jeśli jest sekwencją wejściową, a jest odpowiedzią impulsową filtra, to wynikiem pierwszego przejścia filtra jestx[n] h[n]
z i przekształcenia Fouriera odpowiednio i . Odwrócenie czasu odpowiada zastąpieniu przez w dziedzinie częstotliwości, więc po odwróceniu czasu otrzymujemyX(ejω) H(ejω) x[n] h[n] ω −ω
Drugi przebieg filtra odpowiada kolejnemu pomnożeniu przez :H(ejω)
co po odwróceniu czasowym ostatecznie daje widmo sygnału wyjściowego
ponieważ dla współczynników filtra o wartościach rzeczywistych mamy . Równanie (1) pokazuje, że widmo wyjściowe uzyskuje się przez filtrowanie za pomocą filtra o odpowiedzi częstotliwościowej , który ma wyłącznie wartość rzeczywistą, tj. Jego faza jest równa zero, a zatem występują bez zniekształceń fazowych.H(e−jω)=H∗(ejω) |H(ejω)|2
To jest teoria. W przetwarzaniu w czasie rzeczywistym występuje oczywiście dość duże opóźnienie, ponieważ odwrócenie czasu działa tylko wtedy, gdy zezwolisz na opóźnienie odpowiadające długości bloku wejściowego. Ale to nie zmienia faktu, że nie ma zniekształceń fazowych, to tylko dodatkowe opóźnienie danych wyjściowych. W przypadku filtrowania FIR to podejście nie jest szczególnie przydatne, ponieważ równie dobrze można zdefiniować nowy filtr i uzyskać ten sam wynik przy zwykłym filtrowaniu. Bardziej interesujące jest stosowanie tej metody z filtrami IIR, ponieważ nie mogą one mieć fazy zerowej (lub fazy liniowej, tj. Czystego opóźnienia).h^[n]=h[n]∗h[−n]
W sumie:
jeśli masz lub potrzebujesz filtra IIR i chcesz zniekształceń zerowej fazy, ORAZ opóźnienie przetwarzania nie stanowi problemu, ta metoda jest przydatna
jeśli opóźnienie przetwarzania jest problemem, nie należy go używać
jeśli masz filtr FIR, możesz łatwo obliczyć nową odpowiedź filtru FIR, która jest równoważna z użyciem tej metody. Zauważ, że dzięki filtrom FIR zawsze można zrealizować fazę dokładnie liniową.
źródło
maximum-aposteriori-estimation
. Czy możesz zmienić nazwę namaximum-a-posteriori-estimation
? Przez pomyłkę zapomniałem-
poa
. Dziękuję Ci.Uważam, że ten film jest bardzo, bardzo pomocny (rozwija się w odpowiedzi Matta).
Oto kilka kluczowych pomysłów z filmu:
x[n]
, filtrujesz go, odwracasz wynik, filtrujesz go ponownie i odwracasz (krok odwrócenia czasu wymaga, aby wszystkie dane były dostępne).źródło