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

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. Átnevezheti maximum-a-posteriori-estimation névre? Tévedésből megfeledkeztem a - ről a a 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) . írja ide a kép leírását
  • 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. ide írja be a kép leírását
  • A diszkrét idejű Fourier-transzformáció idő-megfordítási tulajdonságát használja. írja ide a kép leírását
  • 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). írja ide a kép leírását

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük