MATLAB «s filtfilt gjør en forover-bakover-filtrering, dvs. filtrerer, reverserer signalet, filtrerer igjen og deretter reverserer igjen. Tilsynelatende er dette gjort for å redusere faseforsinkelser? Hva er fordelene / ulempene ved å bruke en slik filtrering i en effektiv økning i filterrekkefølgen).

Ville det være å foretrekke å bruke filtfilt alltid i stedet for filter ( dvs. bare fremoverfiltrering)? Er det noen applikasjoner der det er nødvendig å bruke dette og hvor det ikke skal brukes?

Kommentarer

Svar

Du kan best se på det i frekvensdomenet. Hvis $ x [n] $ er inngangssekvensen og $ h [n] $ er filterets impulsrespons, er resultatet av det første filterpasset

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

med $ X (e ^ {j \ omega}) $ og $ H (e ^ {j \ omega}) $ the Fourier-transformasjoner på henholdsvis $ x [n] $ og $ h [n] $. Tidsreversjon tilsvarer å erstatte $ \ omega $ med $ – \ omega $ i frekvensdomenet, så etter tidsreversering får vi

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

Det andre filterpasset tilsvarer en annen multiplikasjon med $ H (e ^ {j \ omega}) $:

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

som etter tidsreversering endelig gir for spekteret av utgangssignalet

$$ 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 virkelige filterkoeffisienter har $ H (e ^ {- j \ omega}) = H ^ {*} (e ^ {j \ omega}) $. Ligning (1) viser at utgangsspektret oppnås ved å filtrere med et filter med frekvensrespons $ | H (e ^ {j \ omega}) | ^ 2 $, whi ch er rent virkelig verdsatt, dvs. fasen er null og følgelig er det ingen faseforvrengninger.

Dette er teorien. I sanntidsbehandling er det selvfølgelig ganske stor forsinkelse fordi tidsreversering bare fungerer hvis du tillater en latens som tilsvarer lengden på inngangsblokken. Men dette endrer ikke det faktum at det ikke er noen faseforvrengninger, det er bare en ekstra forsinkelse av utdataene. For FIR-filtrering er denne tilnærmingen ikke spesielt nyttig fordi du like gjerne kan definere et nytt filter $ \ hat {h } [n] = h [n] * h [-n] $ og få det samme resultatet med vanlig filtrering. Det er mer interessant å bruke denne metoden med IIR-filtre, fordi de ikke kan ha null-fase (eller lineær fase, dvs. en ren forsinkelse).

I sum:

  • hvis du har eller trenger et IIR-filter og du vil ha null faseforvrengning, OG behandlingsforsinkelse er ikke noe problem da denne metoden er nyttig

  • hvis behandlingsforsinkelse er et problem, bør du ikke bruke den

  • hvis du har et FIR-filter , kan du enkelt beregne et nytt FIR-filterrespons som tilsvarer å bruke denne metoden. Merk at med FIR-filtre kan en nøyaktig lineær fase alltid realiseres.

Kommentarer

  • Jeg opprettet en tagg med navnet maximum-aposteriori-estimation. Kan du endre navn på den til maximum-a-posteriori-estimation? Ved en feil glemte jeg - etter a. Takk.

Svar

Jeg fant denne videoen for å være veldig, veldig nyttig (det utdyper Matt sitt svar).

Her er noen viktige ideer fra videoen:

  • Zero-phase will resultere i ingen faseforvrengning, men vil resultere i et filter uten årsak. Dette betyr at hvis dataene blir filtrert når de er samlet, vil dette ikke være et alternativ (bare gyldig for lagrede data som vi kan etterbehandle) . skriv inn bildebeskrivelse her
  • Når du implementerer et ikke-kausalt filter, blir transienter uskarpe fremover og bakover (f.eks. hvis vi vil ha en 2dB krusning, blir fakta at vi skal kjøre fremover og bakover ved hjelp av filteret, betyr at vi vil at hver av disse skal ha 1 dB). skriv inn bildebeskrivelse her
  • Bruker tidsendringsegenskapen til den diskrete Fourier-transformasjonen. skriv inn bildebeskrivelse her
  • Den effektive frekvensresponsen forårsaket av FILTFILT er størrelsen på den i en retning, i kvadrat. Du tar inngangssignalet, x[n], filtrerer det, reverserer resultatet, filtrerer det igjen, og reverserer det igjen (tidssnurringstrinnet krever at alle data er tilgjengelige). skriv inn bildebeskrivelse her

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *