MATLAB “s filtfilt gør en fremad-bagud filtrering, dvs. filtrere, vende signalet, filtrere igen og derefter bakke igen. Tilsyneladende gjort for at reducere faseforsinkelser? Hvad er fordele / ulemper ved at bruge en sådan filtrering (jeg tror det ville resultere i en effektiv stigning i filterrækkefølgen).

Ville det være at foretrække at bruge filtfilt altid i stedet for filter ( dvs. kun fremadfiltrering)? Er der nogen applikationer, hvor det er nødvendigt at bruge dette, og hvor det ikke skal bruges?

Kommentarer

Svar

Du kan bedst se på det i frekvensdomænet. Hvis $ x [n] $ er indgangssekvensen, og $ h [n] $ er filterets impulsrespons, er resultatet af det første filterpas

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

med $ X (e ^ {j \ omega}) $ og $ H (e ^ {j \ omega}) $ den Fouriertransformationer på henholdsvis $ x [n] $ og $ h [n] $. Tidsrevers svarer til at erstatte $ \ omega $ med $ – \ omega $ i frekvensdomænet, så efter time-reversering får vi

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

Det andet filterpas svarer til en anden multiplikation med $ H (e ^ {j \ omega}) $:

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

som efter tidsomdannelse endelig giver spektret af udgangssignalet

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

fordi vi for ægteværdige filterkoefficienter har $ H (e ^ {- j \ omega}) = H ^ {*} (e ^ {j \ omega}) $. Ligning (1) viser, at output-spektret opnås ved at filtrere med et filter med frekvensrespons $ | H (e ^ {j \ omega}) | ^ 2 $, whi ch er rent reelt værdsat, dvs. dens fase er nul, og der er derfor ingen faseforvrængninger.

Dette er teorien. I realtidsbehandling er der selvfølgelig en ganske stor forsinkelse, fordi tidsreversering kun fungerer, hvis du tillader en latens svarende til længden af inputblokken. Men dette ændrer ikke det faktum, at der ikke er faseforvrængninger, det er bare en ekstra forsinkelse af outputdataene. For FIR-filtrering er denne tilgang ikke særlig nyttig, fordi du lige så godt kan definere et nyt filter $ \ hat {h } [n] = h [n] * h [-n] $ og få det samme resultat med almindelig filtrering. Det er mere interessant at bruge denne metode med IIR-filtre, fordi de ikke kan have nul-fase (eller lineær fase, dvs. en ren forsinkelse).

I sum:

  • hvis du har eller har brug for et IIR-filter, og du vil have nul faseforvrængning, OG behandlingsforsinkelse er ikke noget problem så denne metode er nyttig

  • hvis behandlingsforsinkelse er et problem, skal du ikke bruge den

  • hvis du har et FIR-filter , kan du nemt beregne et nyt FIR-filterrespons, der svarer til at bruge denne metode. Bemærk, at med FIR-filtre kan en nøjagtig lineær fase altid realiseres.

Kommentarer

  • Jeg oprettede et tag med navnet maximum-aposteriori-estimation. Kan du venligst omdøbe det til maximum-a-posteriori-estimation? Ved en fejltagelse glemte jeg - efter a. Tak.

Svar

Jeg fandt denne video for at være meget, meget hjælpsom (det uddyber Matts svar).

Her er nogle nøgleideer fra videoen:

  • Nul-fase vil resulterer i ingen faseforvrængning, men vil resultere i et ikke-kausalt filter. Dette betyder, at hvis dataene filtreres, når de indsamles, vil dette ikke være en mulighed (kun gyldig for lagrede data, som vi kan efterbehandle) . indtast billedebeskrivelse her
  • Når du implementerer et ikke-kausalt filter, bliver transienter slørede frem og tilbage (f.eks. hvis vi ønsker en 2dB krusning, er det faktum at vi kører fremad og bagud ved hjælp af filteret betyder, at vi vil have, at hver af disse skal have 1 dB). indtast billedbeskrivelse her
  • Bruger egenskaben tidsomvendelse af den diskrete Fourier-transformation. indtast billedebeskrivelse her
  • Det effektive frekvensrespons forårsaget af FILTFILT er størrelsen af det i en retning i kvadrat. Du tager dit indgangssignal, x[n], filtrerer det, vender resultatet, filtrerer det igen og vender det igen (tidsomvendt trin kræver, at alle data er tilgængelige). indtast billedebeskrivelse her

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *