Thursday 23 November 2017

Flytting Gjennomsnitt Filter Forsinkelse


FIR-filtergrunnleggende 1.1 Hva er kvadratfiltrene QuFIR filtersquot FIR-filtre er en av to primære typer digitale filtre som brukes i DSP-programmer (Digital Signal Processing), den andre typen er IIR. 1.2 Hva betyr quotFIRquot betyr quotFIRquot quotFinite Impulse Responsequot. Hvis du legger inn en impuls, det vil si en enkelt quot1quot-prøve etterfulgt av mange quot0quot-prøver, vil nuller komme ut etter at quot1quot-prøven har gått gjennom filterets forsinkelseslinje. 1.3 Hvorfor er impulsresponsen quotfinitequot I det vanlige tilfellet er impulsresponsen endelig fordi det ikke er tilbakemelding i FIR. Manglende tilbakemelding garanterer at impulsresponsen vil være endelig. Derfor er uttrykket quotfinite impulse responsequot nesten synonymt med quotno feedbackquot. Men hvis tilbakemeldingen er ansatt, er impulsresponsen endelig, men filteret er fortsatt en FIR. Et eksempel er det bevegelige gjennomsnittsfilteret, hvor den Nth-forhåndseksempler trekkes tilbake (hver gang en ny prøve kommer inn). Dette filteret har en endelig impulsrespons, selv om den bruker tilbakemelding: etter N prøver av en impuls, vil utgangen vil alltid være null. 1.4 Hvordan uttaler jeg quotFIRquot Noen sier at bokstavene F-I-R andre uttaler som om det var en type tre. Vi foretrekker treet. (Forskjellen er om du snakker om et F-I-R-filter eller et FIR-filter.) 1.5 Hva er alternativet til FIR-filtre DSP-filtre kan også være quotInfinite Impulse Responsequot (IIR). (Se dspGurus IIR FAQ.) IIR-filtre bruker tilbakemelding, så når du skriver inn en impuls, ringer utgangen teoretisk på ubestemt tid. 1.6 Hvordan sammenligner FIR-filtre med IIR-filtre Hver har fordeler og ulemper. Samlet sett er fordelene ved FIR-filter større enn ulempene, så de brukes mye mer enn IIR. 1.6.1 Hva er fordelene med FIR-filter (sammenlignet med IIR-filtre) Sammenlignet med IIR-filtre, tilbyr FIR-filtre følgende fordeler: De kan enkelt utformes for å være kvadratlinjefase (og vanligvis er). Enkelt sagt, linjeskiftfiltre forsinker inngangssignalet, men donrsquot forvrenger sin fase. De er enkle å implementere. På de fleste DSP-mikroprosessorer kan FIR-beregningen gjøres ved å løse en enkelt instruksjon. De er egnet til multi-rate applikasjoner. Med multi-rate mener vi enten quotdecimationquot (redusere samplingsfrekvensen), quotinterpolationquot (øke samplingsfrekvensen), eller begge deler. Uansett om deimerer eller interpolerer, gjør bruk av FIR-filtre det mulig å utelate noen av beregningene, og gir dermed en viktig beregningseffektivitet. I motsetning dersom IIR-filtre brukes, må hver utgang beregnes individuelt, selv om den utgangen vil kasseres (slik at tilbakemeldingen vil bli innlemmet i filteret). De har ønskelige numeriske egenskaper. I praksis må alle DSP-filtre implementeres ved å bruke finite-presis aritmetikk, det vil si et begrenset antall biter. Bruk av finite-presisjon aritmetikk i IIR-filtre kan forårsake betydelige problemer på grunn av bruk av tilbakemelding, men FIR-filtre uten tilbakemelding kan vanligvis implementeres med færre biter, og designeren har færre praktiske problemer å løse i forbindelse med ikke-ideell aritmetikk. De kan implementeres ved hjelp av fraksjonal aritmetikk. I motsetning til IIR-filtre, er det alltid mulig å implementere et FIR-filter ved hjelp av koeffisienter med størrelsen mindre enn 1,0. (Den samlede gevinsten til FIR-filteret kan justeres ved utgang, hvis ønskelig.) Dette er et viktig hensyn når du bruker fastpunkts-DSP, fordi det gjør implementeringen mye enklere. 1.6.2 Hva er ulempene med FIR-filter (sammenlignet med IIR-filtre) Sammenlignet med IIR-filtre, har FIR-filtre noen ganger den ulempen at de trenger mer minne og eller annen beregning for å oppnå en bestemt filterresponskarakteristikk. Også enkelte svar er ikke praktiske å implementere med FIR-filtre. 1.7 Hvilke begreper brukes til å beskrive FIR-filter Impulsrespons - Quimpulsresponsequot av et FIR-filter er faktisk bare settet med FIR-koeffisienter. (Hvis du legger et kvoteprotokvot i et FIR-filter som består av en quot1quot-prøve etterfulgt av mange quot0quot-prøver, vil filterets utgang være settet av koeffisienter, da den ene prøven beveger seg forbi hver koeffisient i sin tur for å danne utgangen.) Trykk - En FIR quottapquot er bare et koeffisientpar. Antallet FIR-kraner, ofte angitt som quotNquot, er en indikasjon på 1) mengden minne som kreves for å implementere filteret, 2) antall kalkulasjoner som kreves, og 3) mengden av kvoteringskvoten som filteret kan utføre, flere kraner betyr mer stoppbånddemping, mindre krusninger, smalere filtre, etc. Multiply-Accumulate (MAC) - I en FIR-sammenheng er en quotMACquot drift av å multiplisere en koeffisient av den tilsvarende forsinkede dataprøven og akkumulere resultatet. FIRs krever vanligvis en MAC per trykk. De fleste DSP mikroprosessorer implementerer MAC-operasjonen i en enkelt instruksjons syklus. Overgangsbånd - Båndet mellom frekvenser mellom passbånd og stoppbåndskanter. Jo smalere overgangsbåndet, desto flere kraner er nødvendig for å implementere filteret. (Et quotsmallquot overgangsbånd resulterer i et quotsharpquot filter.) Delay Line - Settet av minneelementer som implementerer quZ-1quot forsinkelseselementene i FIR-beregningen. Sirkulær buffer - En spesiell buffer som er quotcircularquot fordi inkrementering på slutten fører til at den vikles rundt til begynnelsen, eller fordi dekrementering fra begynnelsen fører til at den vikles rundt til slutten. Sirkulære buffere leveres ofte av DSP mikroprosessorer for å implementere kvoteringskvoten av prøvene gjennom FIR-forsinkelseslinjen uten å måtte bokstavelig talt flytte dataene i minnet. Når en ny prøve legges til bufferen, erstatter den automatisk den eldste. Flytte gjennomsnittet som et filter Det bevegelige gjennomsnittet brukes ofte til å utjevne data i nærvær av støy. Det enkle glidende gjennomsnittet blir ikke alltid gjenkjent som FIT-filteret (Finite Impulse Response), det er det, men det er faktisk et av de vanligste filtre i signalbehandling. Ved å behandle det som et filter, kan det sammenlignes med f. eks. Windowed-sinc filtre (se artiklene på lavpass, høypass og bandpass og bandavvisningsfiltre for eksempler på dem). Den store forskjellen med de filtre er at det bevegelige gjennomsnittet er egnet for signaler som den nyttige informasjonen er inneholdt i tidsdomene. hvorav utjevningsmålinger ved gjennomsnittsverdi er et godt eksempel. Windowed-sinc filtre, derimot, er sterke utøvere i frekvensdomene. med utjevning i lydbehandling som et typisk eksempel. Det er en mer detaljert sammenligning av begge typer filtre i Time Domain vs Frekvensdomenes ytelse av filtre. Hvis du har data som både tid og frekvensdomene er viktige for, kan du kanskje se på Variasjoner på Moving Average. som presenterer en rekke vektede versjoner av det bevegelige gjennomsnittet som er bedre på det. Det bevegelige gjennomsnittet av lengden (N) kan defineres som skrevet som det typisk blir implementert, med den nåværende utgangsprøven som gjennomsnittet av de tidligere (N) - prøver. Sett som et filter, utfører det bevegelige gjennomsnitt en konvolusjon av inngangssekvensen (xn) med en rektangulær puls av lengde (N) og høyde (1N) (for å gjøre området for pulsen, og dermed forsterkningen av filteret , en ). I praksis er det best å ta (N) merkelig. Selv om et glidende gjennomsnitt kan også beregnes ved å bruke et jevnt antall prøver, har det en fordel at forsinkelsen av filteret vil være et heltall antall prøver ved bruk av en merkelig verdi for (N) siden forsinkelsen av et filter med (N) prøvene er nøyaktig ((N-1) 2). Det bevegelige gjennomsnittet kan deretter justeres nøyaktig med de opprinnelige dataene ved å skifte det med et heltall antall prøver. Time Domain Siden det bevegelige gjennomsnittet er en konvolusjon med en rektangulær puls, er frekvensresponsen en sinc-funksjon. Dette gjør det noe som det dobbelte av windowed-sinc filteret, siden det er en konvolusjon med en sinc puls som resulterer i en rektangulær frekvensrespons. Det er denne sync frekvensrespons som gjør det bevegelige gjennomsnittet en dårlig utøver i frekvensdomenet. Det virker imidlertid veldig bra i tidsdomene. Derfor er det perfekt å glatte data for å fjerne støy mens du samtidig holder et raskt trinnsvar (Figur 1). For den typiske Additive White Gaussian Noise (AWGN) som ofte antas, har gjennomsnittlige (N) prøver effekten av å øke SNR med en faktor (sqrt N). Siden støyen for de enkelte prøvene er ukorrelert, er det ingen grunn til å behandle hver prøve forskjellig. Derfor vil det bevegelige gjennomsnittet, som gir hver prøve samme vekt, bli kvitt den maksimale mengden støy for en gitt trinnresponsskarphet. Gjennomføring Fordi det er et FIR-filter, kan det bevegelige gjennomsnittet implementeres gjennom konvolusjon. Det vil da ha samme effektivitet (eller mangel på det) som alle andre FIR-filter. Det kan imidlertid også implementeres rekursivt, på en svært effektiv måte. Det følger direkte fra definisjonen at denne formelen er resultatet av uttrykkene for (yn) og (yn1), det vil si hvor vi legger merke til at forandringen mellom (yn1) og (yn) er at et ekstra uttrykk (xn1N) vises på slutten, mens uttrykket (xn-N1N) er fjernet fra begynnelsen. I praktiske applikasjoner er det ofte mulig å utelate divisjonen med (N) for hvert begrep ved å kompensere for den resulterende gevinsten av (N) på et annet sted. Denne rekursive gjennomføringen vil bli mye raskere enn konvolusjon. Hver ny verdi av (y) kan beregnes med bare to tillegg, i stedet for (N) tilleggene som ville være nødvendige for en enkel implementering av definisjonen. En ting å se etter med en rekursiv implementering er at avrundingsfeil vil samle seg. Dette kan eller ikke kan være et problem for søknaden din, men det innebærer også at denne rekursive implementeringen faktisk vil fungere bedre med et heltall implementering enn med flytende punktnumre. Dette er ganske uvanlig, siden en flytende punktimplementering vanligvis er enklere. Konklusjonen av alt dette må være at du aldri bør undervurdere bruken av det enkle glidende gjennomsnittsfilteret i signalbehandlingsprogrammer. Filter designverktøy Denne artikkelen er utfylt med et filterdesignverktøy. Eksperimenter med forskjellige verdier for (N) og visualiser de resulterende filtrene. Prøv det nåDokumentasjon Beskrivelse gd, w grpdelay (b, a) returnerer gruppeforsinkelsesresponsen, gd. av diskret-tidsfilteret spesifisert av inngangsvektorene, b og a. Inngangvektorene er koeffisientene for telleren, b. og nevner, a. polynomene i z -1. Z-transformasjonen av det diskrete tidsfilteret er H (z) B (z) A (z) x2211 l 0 N x2212 1 b (n 1) z x2212 l x2211 l 0 M x2212 1 a (l 1) z x2212 l. Filterforsinkelsesponsen er evaluert ved 512 like fordelte punkter i intervallet 0, 960) på enhetens sirkel. Evalueringspoengene på enhetssirkelen returneres i w. gd, w grpdelay (b, a, n) returnerer gruppforsinkelsesresponsen av diskretidsfilteret evaluert ved n like fordelte punkter på enhetssirkelen i intervallet 0, 960). n er et positivt heltall. For best resultat, sett n til en verdi som er større enn filterbestillingen. gd, w grpdelay (sos, n) returnerer gruppforsinkelsesresponsen for andreordsseksjonen matrisen, sos. sos er en K-by-6 matrise, hvor antall seksjoner, K. må være større enn eller lik 2. Hvis antall seksjoner er mindre enn 2, vurderer grpdelay inngangen til å være tellervektoren, b. Hver rad av sos korresponderer med koeffisientene til et andre-ordens (biquad) filter. Den første rad av sos-matrisen tilsvarer bi (1) bi (2) bi (3) ai (1) ai (2) ai (3). gd, w grpdelay (d, n) returnerer gruppeforsinkelsesresponsen for det digitale filteret, d. Bruk designfilt til å generere d basert på frekvensresponsspesifikasjoner. gd, f grpdelay (.n, fs) spesifiserer en positiv samplingsfrekvens fs i hertz. Den returnerer en lengde-vektor, f. inneholde frekvenspoengene i Hertz hvor gruppforsinkelsesresponsen blir evaluert. f inneholder n poeng mellom 0 og fs2. gd, w grpdelay (.n, hel) og gd, f grpdelay (.n, hel, fs) bruk n poeng rundt hele enheten sirkelen (fra 0 til 2 960 eller fra 0 til fs). gd grpdelay (.w) og gd grpdelay (.f, fs) returnerer gruppforsinkelsesresponsen evaluert ved vinkelfrekvensene i w (i radianprøve) eller i f (i cyclesunit tid), hvor fs er samplingsfrekvensen. w og f er vektorer med minst to elementer. grpdelay (.) uten utgangsargumenter oppfatter gruppens forsinkelsesrespons versus frekvens. grpdelay fungerer for både ekte og komplekse filtre. Merk: Hvis inngangen til grpdelay er enkel presisjon, beregnes gruppforsinkelsen ved hjelp av en-presis aritmetikk. Utgangen, gd. er enkel presisjon. Velg ditt land

No comments:

Post a Comment