MATLAB ”s filtfilt suodattaa taaksepäin taaksepäin, eli suodattaa, kääntää signaalin, suodattaa uudelleen ja sitten takaisin. Ilmeisesti tämä tehdään vaiheviiveiden vähentämiseksi? Mitkä ovat tällaisen suodatuksen käytön edut / haitat (luulen, että se johtaisi suodatinjärjestyksen tehokkaassa kasvussa).

Olisiko parempi käyttää filtfilt aina filter ( ts. vain eteenpäin suuntautuva suodatus)? Onko olemassa sovelluksia, joissa tätä on tarpeen käyttää ja missä sitä ei tule käyttää?

kommentit

Vastaa

Voit tarkastella sitä parhaiten taajuusalueella. Jos $ x [n] $ on syötesekvenssi ja $ h [n] $ on suodattimen impulssivaste, niin ensimmäisen suodatinkierron tulos on

$$ X (e ^ {j \ omega}) H (e ^ {j \ omega}) $$

merkinnällä $ X (e ^ {j \ omega}) $ ja $ H (e ^ {j \ omega}) $ Fourier-muunnokset vastaavasti $ x [n] $ ja $ h [n] $. Ajan kääntäminen vastaa $ \ omega $ korvaamista taajuusalueella $ – \ omega $, joten saamme ajan kääntymisen jälkeen

$$ X (e ^ {- j \ omega}) H (e ^ {- j \ omega}) $$

Toinen suodatinpassi vastaa toista kertoluokkaa $ H (e ^ {j \ omega}) $:

$$ X (e ^ {- j \ omega}) H (e ^ {j \ omega}) H (e ^ {- j \ omega}) $ $

joka aikakäänteen jälkeen antaa lopulta lähtösignaalin spektrin

$$ 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} $$

koska reaaliarvoisille suodatinkertoimille meillä on $ H (e ^ {- j \ omega}) = H ^ {*} (e ^ {j \ omega}) $. Yhtälö (1) osoittaa, että lähtöspektri saadaan suodattamalla suodattimella, jonka taajuusvaste on $ | H (e ^ {j \ omega}) | ^ 2 $, whi ch on puhtaasti reaaliarvoinen, ts. sen vaihe on nolla, joten vaihevääristymiä ei ole.

Tämä on teoria. Reaaliaikaisessa prosessoinnissa on tietysti melko suuri viive, koska ajan kääntäminen toimii vain, jos sallit tulolohkon pituutta vastaavan viiveen. Mutta tämä ei muuta sitä tosiasiaa, että vaihevääristymiä ei ole, se on vain ylimääräinen viive lähtötiedoissa. FIR-suodatuksessa tämä lähestymistapa ei ole erityisen hyödyllinen, koska voit yhtä hyvin määritellä uuden suodattimen $ \ hat {h } [n] = h [n] * h [-n] $ ja saa saman tuloksen tavallisella suodatuksella. On mielenkiintoisempaa käyttää tätä menetelmää IIR-suodattimien kanssa, koska niillä ei voi olla nolla- (tai lineaarista vaihetta, ts. puhdas viive).

Yhteenvetona:

  • jos sinulla on tai tarvitset IIR-suodatinta ja haluat nollavaihevääristymän, JA käsittelyviive ei ole ongelma tämä menetelmä on hyödyllinen

  • jos käsittelyviive on ongelma, älä käytä sitä

  • jos sinulla on FIR-suodatin , voit helposti laskea uuden FIR-suodattimen vastauksen, joka vastaa tämän menetelmän käyttöä. Huomaa, että FIR-suodattimilla täsmälleen lineaarinen vaihe voidaan aina toteuttaa.

Kommentit

  • Loin tunnisteen nimeltä maximum-aposteriori-estimation. Voisitko nimetä sen uudeksi nimeksi maximum-a-posteriori-estimation? Unohdin vahingossa - a -kohdan jälkeen. Kiitos.

Vastaa

Löysin tämän videon olla erittäin, erittäin hyödyllinen (se tarkentaa Mattin vastausta).

Tässä on joitain keskeisiä ideoita videosta:

  • Nollavaihe tulee olemaan ei aiheuta vaihevääristymiä, mutta johtaa ei-kausaaliseen suodattimeen. Tämä tarkoittaa, että jos tietoja suodatetaan keräämisen aikana, tämä ei ole vaihtoehto (koskee vain tallennettuja tietoja, jotka voimme jälkikäsitellä) . kirjoita kuvan kuvaus tähän
  • Kun otat käyttöön ei-kausaalisen suodattimen, transientit hämärtyvät eteenpäin ja taaksepäin (esim. jos haluamme 2dB: n aaltoilun, että aiomme tehdä eteenpäin ja taaksepäin ajon suodattimen avulla, tarkoittaa, että ”haluamme, että jokaisella näistä on 1dB). kirjoita kuvan kuvaus tähän
  • Käyttää diskreettiaikaisen Fourier-muunnoksen aika-käänteisominaisuutta. kirjoita kuvakuvaus tähän
  • FILTFILTin aiheuttama tehokas taajuusvaste on yhden suuntaisen neliön neliö. Otat tulosignaalin, x[n], suodatat sen, käännät tuloksen, suodatat sen uudelleen ja käännät sen takaisin (ajan kääntämisvaihe edellyttää, että kaikki tiedot ovat käytettävissä). kirjoita kuvan kuvaus tähän

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *