Tuesday 14 November 2017

Impuls Respons Moving Average Filter Matlab


Frekvensrespons av det kjørende gjennomsnittsfiltret Frekvensresponsen til et LTI-system er DTFT av impulsresponsen. Impulsresponsen av et L-prøve-glidende gjennomsnitt er Siden det bevegelige gjennomsnittlige filteret er FIR, reduserer frekvensresponsen til den endelige summen Vi kan bruke den svært nyttige identiteten til å skrive frekvensresponsen som hvor vi har sluppet minus jomega. N 0 og M L minus 1. Vi kan være interessert i størrelsen på denne funksjonen for å avgjøre hvilke frekvenser som kommer gjennom filteret som ikke er overvåket og som er dempet. Nedenfor er et plott av størrelsen på denne funksjonen for L 4 (rød), 8 (grønn) og 16 (blå). Den horisontale aksen varierer fra null til pi radianer per prøve. Legg merke til at frekvensresponsen i alle tre tilfeller har en lowpass-karakteristikk. En konstant komponent (nullfrekvens) i inngangen passerer gjennom filteret uopprettholdt. Visse høyere frekvenser, som pi 2, elimineres helt av filteret. Men hvis hensikten var å designe et lavpassfilter, har vi ikke gjort det veldig bra. Noen av de høyere frekvensene dempes bare med en faktor på ca 110 (for 16 poeng glidende gjennomsnitt) eller 13 (for firepunkts glidende gjennomsnitt). Vi kan gjøre mye bedre enn det. Ovennevnte tegning ble opprettet av følgende Matlab-kode: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)). (1-exp (-iomega)) H8 (18) iomega8)). (1-exp (-iomega)) H16 (116) (1-exp (-iomega16)) (1-exp (-iomega)) plot (omega, abs (H4) abs H16)) akse (0, pi, 0, 1) Opphavsretts kopi 2000- - University of California, BerkeleyMoving Gjennomsnittlig Filter (MA filter) Loading. Det bevegelige gjennomsnittsfilteret er et enkelt Low Pass FIR-filter (Finite Impulse Response) som vanligvis brukes til å utjevne en rekke samplede datasignaler. Det tar M prøver av inngang av gangen og tar gjennomsnittet av disse M-prøvene og produserer et enkelt utgangspunkt. Det er en veldig enkel LPF-struktur (Low Pass Filter) som er nyttig for forskere og ingeniører å filtrere uønsket støyende komponent fra de tiltenkte dataene. Når filterlengden øker (parameteren M), øker utgangens glatthet, mens de skarpe overgangene i dataene blir stadig stumpere. Dette innebærer at dette filteret har utmerket tidsdomene respons, men en dårlig frekvensrespons. MA-filteret utfører tre viktige funksjoner: 1) Det tar M-inngangspunkter, beregner gjennomsnittet av disse M-punktene og produserer et enkelt utgangspunkt 2) På grunn av beregnede beregninger. filteret introduserer en bestemt mengde forsinkelse 3) Filteret fungerer som et lavpassfilter (med dårlig frekvensdomenerespons og et godt domenerespons). Matlab-kode: Følgende matlab-kode simulerer tidsdomæneresponsen til et M-punkts-flytende gjennomsnittfilter, og viser også frekvensresponsen for forskjellige filterlengder. Time Domain Response: På den første plottet har vi inngangen som går inn i det bevegelige gjennomsnittsfilteret. Inngangen er støyende og målet vårt er å redusere støyen. Neste figur er utgangsresponsen til et 3-punkts Moving Average-filter. Det kan utledes fra figuren at 3-punkts Flytende Gjennomsnitt-filteret ikke har gjort mye for å filtrere ut støyen. Vi øker filterkranene til 51 poeng, og vi kan se at støyen i utgangen har redusert mye, som er avbildet i neste figur. Vi øker kranen videre til 101 og 501, og vi kan observere at selv om støyen er nesten null, blir overgangene slått ut drastisk (observere skråningen på hver side av signalet og sammenligne dem med den ideelle murveggovergangen i vår innsats). Frekvensrespons: Fra frekvensresponsen kan det hevdes at avrullingen er veldig treg og stoppbåndet demper er ikke bra. Gitt dette stoppbåndet demping, klart, det bevegelige gjennomsnittlige filteret kan ikke skille ett bånd med frekvenser fra en annen. Som vi vet at en god ytelse i tidsdomene resulterer i dårlig ytelse i frekvensdomene, og omvendt. Kort sagt, det bevegelige gjennomsnittet er et usedvanlig godt utjevningsfilter (handlingen i tidsdomene), men et uvanlig dårlig lavpassfilter (handlingen i frekvensdomenet) Eksterne lenker: Anbefalte bøker: Primær SidebarFIR-filtre, IIR-filtre, og de lineære konstant-koeffisient differens-likning Causal Moving Average (FIR) - filtrene Weve diskuterte systemer der hver prøve av utgangen er en vektet sum av (visse av) prøvene av inngangen. La oss ta et årsaksvektet sumssystem, hvor årsakssammenheng betyr at en gitt utgangsprøve bare avhenger av gjeldende inngangseksempel og andre innganger tidligere i sekvensen. Verken lineære systemer generelt, og heller ikke finite impulsresponsystemer, må være årsakssammenhengende. Kausalitet er imidlertid praktisk for en slags analyse som skulle undersøke snart. Hvis vi symboliserer inngangene som verdier av en vektor x. og utgangene som tilsvarende verdier av en vektor y. så kan et slikt system skrives som hvor b-verdiene er quotweightsquot brukt på de nåværende og tidligere inngangssamplene for å få den nåværende utgangsprøven. Vi kan tenke på uttrykket som en ligning, med likestillingsbetegnelsen betyr lik, eller som en prosedyreinstruksjon, med likestillingsbetegnelsen. Lar oss skrive uttrykket for hver utgangseksempel som en MATLAB-sløyfe med oppgaveoppgavene, hvor x er en N-lengdevektor av inngangsprøver, og b er en M-lengdevektor av vekt. For å håndtere det spesielle tilfellet ved starten, vil vi legge inn x i en lengre vektor xhat hvis første M-1-prøver er null. Vi vil skrive den veide summasjonen for hver y (n) som et indre produkt, og vil gjøre noen manipulasjoner av inngangene (som reversering b) til dette formål. Denne typen system kalles ofte et bevegelig gjennomsnittsfilter av åpenbare årsaker. Fra våre tidligere diskusjoner bør det være åpenbart at et slikt system er lineært og skift-invariant. Selvfølgelig vil det være mye raskere å bruke MATLAB convolution-funksjonen conv () i stedet for vår mafilt (). I stedet for å vurdere de første M-1-prøvene av inngangen til å være null, kan vi betrakte dem til å være de samme som de siste M-1-prøvene. Dette er det samme som å behandle inngangen som periodisk. Vel bruk cmafilt () som navnet på funksjonen, en liten modifikasjon av den tidligere mafilt () - funksjonen. Ved å bestemme impulsresponsen til et system er det vanligvis ingen forskjell mellom disse to, siden alle ikke-første prøver av inngangen er null: Siden et slikt system er lineært og skift-invariant, vet vi at dets effekt på alle sinusoid vil bare være å skalere og skifte den. Her er det viktig at vi bruker den sirkulære versjonen Den sirkulært-konvolverte versjonen skiftes og skaleres litt, mens versjonen med vanlig konvolusjon er forvrengt i starten. Lar se hva den eksakte skaleringen og skiftingen er ved å bruke en fft: Både inngang og utgang har amplitude bare ved frekvenser 1 og -1, som er som det burde være, gitt at inngangen var en sinusformet og systemet var lineært. Utgangsverdiene er større med et forhold på 10,62518 1,3281. Dette er gevinsten til systemet. Hva med fasen Vi trenger bare å se hvor amplitude er ikke-null: Inngangen har en fase av pi2, som vi ba om. Utgangsfasen skiftes med ytterligere 1,0594 (med motsatt tegn for negativ frekvens), eller ca. 16 av en syklus til høyre, som vi kan se på grafen. Nå kan vi prøve en sinusoid med samme frekvens (1), men i stedet for amplitude 1 og fase pi2, kan vi prøve amplitude 1.5 og fase 0. Vi vet at bare frekvens 1 og -1 vil ha null null amplitude, så vi kan bare se på dem: Igjen er amplitudeforholdet (15.937712.0000) 1.3281 - og for fasen blir det igjen skiftet med 1.0594 Hvis disse eksemplene er typiske, kan vi forutsi effekten av vårt system (impulsrespons .1 .2 .3 .4 .5) på hvilken som helst sinusoid med frekvens 1 - amplituden vil bli økt med en faktor på 1,3281 og den (positive frekvens) fase vil bli forskyvet med 1,0594. Vi kunne fortsette å beregne effekten av dette systemet på sinusoider av andre frekvenser med samme metoder. Men det er en mye enklere måte, og en som etablerer det generelle punktet. Siden (sirkulær) konvolusjon i tidsdomenet betyr multiplikasjon i frekvensdomenet, følger det med at DFT av impulsresponsen med andre ord er forholdet mellom DFT for utgangen og DFT på inngangen. I dette forholdet er DFT-koeffisientene komplekse tall. Siden abs (c1c2) abs (c1) abs (c2) for alle komplekse tall c1, c2, forteller denne ligningen oss at amplitudespektret for impulsresponsen alltid vil være forholdet mellom amplitudespektret for utgangen og inngangen til inngangen . I tilfelle av fasespektret er vinkel (c1c2) vinkel (c1) - vinkel (c2) for alle c1, c2 (med den forutsetning at faser som er forskjellige med n2pi regnes like). Fasespektret for impulsresponsen vil derfor alltid være forskjellen mellom fasespekteret for utgangen og inngangen (med hvilke korrigeringer med 2pi som er nødvendig for å holde resultatet mellom - pi og pi). Vi kan se fasevirkningene tydeligere hvis vi pakker ut representasjonen av fase, dvs. hvis vi legger til flere multipler på 2pi etter behov for å minimere hoppene som er produsert av periodisk karakter av vinkelen () - funksjonen. Selv om amplitude og fase vanligvis brukes til grafisk og jevn tabellpresentasjon, da de er en intuitiv måte å tenke på effekten av et system på de forskjellige frekvenskomponentene i inngangen, er de komplekse Fourier-koeffisientene mer nyttige algebraisk, siden de tillater det enkle uttrykket for forholdet Den generelle tilnærmingen vi nettopp har sett vil fungere med vilkårlig filtre av typen skissert, hvor hver utgangseksempel er en vektet sum av et sett av inngangssampler. Som nevnt tidligere kalles disse ofte Finite Impulse Response-filtre, fordi impulsresponsen er av fin størrelse, eller noen ganger Flyttende gjennomsnittlig filtre. Vi kan bestemme frekvensresponsegenskapene til et slikt filter fra FFT av impulsresponsen, og vi kan også designe nye filtre med ønskede egenskaper ved IFFT fra en spesifikasjon av frekvensresponsen. Autoregressive (IIR) - filtre Det ville være lite poeng å ha navn på FIR-filtre, med mindre det var noe annet å skille dem fra, og så de som har studert pragmatikk, vil ikke bli overrasket over at det er en annen stor art av lineært tidsinvariant filter. Disse filtrene kalles noen ganger rekursive fordi verdien av tidligere utganger (samt tidligere innganger) betyr noe, selv om algoritmene generelt skrives ved hjelp av iterative konstruksjoner. De kalles også Infinite Impulse Response (IIR) filtre, fordi deres respons på impulser generelt går for alltid. De kalles også noen ganger autoregressive filtre, fordi koeffisientene kan tenkes som følge av å foreta lineær regresjon for å uttrykke signalverdier som en funksjon av tidligere signalverdier. Forholdet mellom FIR og IIR-filtre kan ses tydelig i en lineær konstant-koeffisientforskjellekvasjon, dvs. å sette en vektet sum av utganger som er lik en vektet sum av innganger. Dette er som ligningen som vi ga tidligere for årsakssystemet FIR-filter, bortsett fra at i tillegg til den vektede summen av innganger, har vi også en vektet sum av utganger. Hvis vi ønsker å tenke på dette som en prosedyre for å generere utgangseksempler, må vi omorganisere ligningen for å få et uttrykk for gjeldende utgangssprøve y (n), Vedta konvensjonen at a (1) 1 (f. eks. Ved å skalere andre som og bs), kan vi kvitte seg med 1a (1) termen: y (n) b (1) x (n) b (2) x (n-1). b (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Hvis alle a (n) annet enn a (1) er null, reduseres dette til vår gamle venn, det kausale FIR-filteret. Dette er det generelle tilfellet av et (kausal) LTI filter, og implementeres av MATLAB-funksjonsfilteret. La oss se på tilfellet der b-koeffisientene bortsett fra b (1) er null (i stedet for FIR-tilfellet, hvor a (n) er null): I dette tilfellet beregnes nåværende utgangsprøve y (n) som en vektet kombinasjon av gjeldende inngangseksempel x (n) og tidligere utgangsprøver y (n-1), y (n-2) osv. For å få en ide om hva som skjer med slike filtre, kan vi starte med tilfellet hvor: Det vil si at den nåværende utgangsprøven er summen av gjeldende inngangseksempel og halvparten av den forrige utgangsprøven. Vel ta en inngangspuls gjennom noen få skritt, en om gangen. Det skal være klart på dette punktet at vi enkelt kan skrive et uttrykk for nth utgangsprøveverdien: det er bare (Hvis MATLAB telles fra 0, ville dette bare være .5n). Siden det vi beregner er impulsresponsen til systemet, har vi vist ved eksempel at impulsresponsen faktisk kan ha uendelig mange ikke-nullprøver. For å implementere dette trivielle førstegangsfilteret i MATLAB kunne vi bruke filter. Samtalen vil se slik ut: og resultatet er: Er denne virksomheten virkelig fortsatt lineær? Vi kan se på dette empirisk: For en mer generell tilnærming, vurder verdien av en utgangseksempel y (n). Ved suksessiv substitusjon kan vi skrive dette som: Dette er akkurat som vår gamle venn, sammenkallings-summen av et FIR-filter, med impulsresponsen gitt av uttrykket .5k. og lengden på impulsresponsen er uendelig. Dermed de samme argumentene som vi pleide å vise at FIR-filtre var lineære, vil nå gjelde her. Så langt kan dette virke som mye oppstyr om ikke mye. Hva er denne hele undersøkelsesgruppen god for Vel, svar på dette spørsmålet i faser, med utgangspunkt i et eksempel. Det er ikke en stor overraskelse at vi kan beregne en samplet eksponensiell ved rekursiv multiplikasjon. La oss se på et rekursivt filter som gjør noe mindre tydelig. Denne gangen gjør du det til et andreordfilter, slik at anropet til filteret vil være av skjemaet. Lets angi den andre utgangskoeffisienten a2 til -2cos (2pi40), og den tredje utgangskoeffisienten a3 til 1, og se på impulsen respons. Ikke veldig nyttig som et filter, men det genererer en samplet sinusbølge (fra en impuls) med tre multipliser-adds per prøve. For å forstå hvordan og hvorfor det gjør dette, og hvordan rekursive filtre kan utformes og analyseres i Jo mer generelt, vi må gå tilbake og ta en titt på noen andre egenskaper av komplekse tall, på vei til å forstå z transformasjonen.

No comments:

Post a Comment