MATLAB “s filtfilt
előre-hátra szűrést végez, azaz szűr, visszafordítja a jelet, újra szűr, majd visszafordít. Nyilvánvalóan ez a fáziskésések csökkentése érdekében történt. Milyen előnyei / hátrányai vannak egy ilyen szűrés használatának (gondolom, ez eredményezné a szűrési sorrend hatékony növekedésében).
Előnyös lenne az filtfilt
-t mindig a filter
( azaz csak előre szűrés)? Vannak-e olyan alkalmazások, ahol ezt használni kell, és ahol nem szabad használni?
Megjegyzések
- Ne ' ne használjon nulla fázisú szűrést az audióhoz, mivel ez a " furcsán hangzó előcsengetés ". A minimális fázisú szűrés természetesebb. ccrma.stanford.edu/~jos/filters/Linear_Phase_Really_Ideal.html
Válasz
Leginkább a frekvenciatartományban nézheti meg. Ha $ x [n] $ a bemeneti szekvencia, és $ h [n] $ a szűrő impulzusválasza, akkor az első szűrési lépés eredménye
$$ X (e ^ {j \ omega}) H (e ^ {j \ omega}) $$
a következővel: $ X (e ^ {j \ omega}) $ és $ H (e ^ {j \ omega}) $ Fourier-transzformációk: $ x [n] $, illetve $ h [n] $. Az idõ megfordulása megfelel annak, hogy a $ \ omega $ -ot lecseréljük $ – \ omega $ -ra a frekvenciatartományban, így az idõváltás után kapunk
$$ X (e ^ {- j \ omega}) H (e ^ {- j \ omega}) $$
A második szűrőbetét egy másik szorzásnak felel meg $ H (e ^ -vel) {j \ omega}) $:
$$ X (e ^ {- j \ omega}) H (e ^ {j \ omega}) H (e ^ {- j \ omega}) $ $
amely az idő megfordulása után végül megadja a kimenő jel spektrumát
$$ Y (e ^ {j \ omega}) = X (e ^ {j \ omega }) H (e ^ {j \ omega}) H (e ^ {- j \ omega}) = X (e ^ {j \ omega}) | H (e ^ {j \ omega}) | ^ 2 \ tag {1} $$
mert a valós értékű szűrő együtthatókhoz $ H (e ^ {- j \ omega}) = H ^ {*} (e ^ {j \ omega}) $. Az (1) egyenlet azt mutatja, hogy a kimeneti spektrumot egy $ | H (e ^ {j \ omega}) | ^ 2 $, whi frekvenciaválaszú szűrővel történő szűréssel kapjuk. ch tisztán valós értékű, vagyis fázisa nulla, következésképpen nincsenek fázistorzulások.
Ez az elmélet. A valós idejű feldolgozásnál természetesen meglehetősen nagy késés van, mert az idő-megfordítás csak akkor működik, ha megengedi a bemeneti blokk hosszának megfelelő késleltetést. De ez nem változtat azon a tényen, hogy nincsenek fázistorzulások, csak a kimeneti adatok további késleltetése. A FIR szűrésnél ez a megközelítés nem különösebben hasznos, mert új definiort is definiálhat $ \ hat {h } [n] = h [n] * h [-n] $ és ugyanazt az eredményt kapja közönséges szűréssel. Érdekesebb ezt a módszert IIR szűrőkkel használni, mert nem lehetnek nulla fázisúak (vagy lineáris fázisúak, pl. tiszta késleltetés).
Összefoglalva:
-
ha van vagy szüksége van IIR szűrőre, és nulla fázistorzulást szeretne, ÉS a feldolgozás késleltetése nem jelent problémát ez a módszer hasznos
-
ha a feldolgozás késleltetése kérdés, akkor nem szabad használni
-
ha van FIR szűrője , könnyedén kiszámolhat egy új FIR szűrő választ, amely megegyezik ennek a módszernek a használatával. Ne feledje, hogy FIR szűrőkkel mindig pontosan lineáris fázis valósulhat meg.
Megjegyzések
- Létrehoztam egy címkét
maximum-aposteriori-estimation
. Átnevezhetimaximum-a-posteriori-estimation
névre? Tévedésből megfeledkeztem a-
ről aa
után. Köszönöm.
Válasz
Találtam ezt a videót nagyon-nagyon segítőkésznek lenni (részletezi Matt válaszát).
Íme néhány kulcsfontosságú ötlet a videóból:
- A nulla fázis nem eredményez fázistorzulást, de nem ok-okozati szűrőt eredményez. Ez azt jelenti, hogy ha az adatokat az összegyűjtéskor szűrjük, akkor ez nem lesz lehetőség (csak azokra a tárolt adatokra érvényes, amelyeket utólagosan feldolgozhatunk) .
- Ha nem okozati szűrőt valósít meg, akkor a tranziensek elmosódnak előre és hátra (pl. ha 2dB-os hullámzást akarunk, akkor a tény hogy a szűrő segítségével előre és hátra fogunk futni, azt jelenti, hogy ezek mindegyikének 1dB-t akarunk.
- A diszkrét idejű Fourier-transzformáció idő-megfordítási tulajdonságát használja.
- A FILTFILT által okozott tényleges frekvenciaválasz az egy irányban mért értéke, négyzetben. Fogja a bemeneti jelet,
x[n]
, szűri, visszafordítja az eredményt, újra szűri és visszafordítja (az időmegfordítási lépéshez minden adatnak rendelkezésre kell állnia).