Thursday 2 November 2017

Støy Filtrering Av N Punkt Moving Average


Dokumentasjon Dette eksemplet viser hvordan du bruker glidende gjennomsnittsfiltre og resampling for å isolere effekten av periodiske komponenter på tidspunktet for klokkeslett på timelastetemperatur, samt fjerne uønsket støy fra en åpen spenningsmåling. Eksemplet viser også hvordan du kan glatte nivået på et klokke signal mens du beholder kantene ved å bruke et medianfilter. Eksemplet viser også hvordan man bruker et Hampel filter for å fjerne store utjevninger. Motivasjonsutjevning er hvordan vi oppdager viktige mønstre i våre data mens du utelater ting som er ubetydelige (dvs. støy). Vi bruker filtrering for å utføre denne utjevningen. Målet med utjevning er å produsere lave verdiendringer, slik at det er enklere å se trender i våre data. Noen ganger når du undersøker inndata, kan det hende du ønsker å glatte dataene for å se en trend i signalet. I vårt eksempel har vi et sett med temperaturmålinger i Celsius tatt hver time på Logan flyplass for hele januar måned 2011. Merk at vi visuelt kan se effekten som tiden på dagen har på temperaturavlesningene. Hvis du bare er interessert i den daglige temperaturvariasjonen i løpet av måneden, bidrar timelengsfluktene bare med støy, noe som kan gjøre det vanskelig å skille dagens variasjoner. For å fjerne effekten av tidspunktet på dagen, vil vi nå glatte ut dataene våre ved å bruke et glidende gjennomsnittsfilter. Et flytende gjennomsnittsfilter I sin enkleste form tar et glidende gjennomsnittlig filter med lengde N gjennomsnittet av hver N påfølgende bølgeform. For å bruke et glidende gjennomsnittsfilter til hvert datapunkt, konstruerer vi våre koeffisienter for filteret vårt slik at hvert punkt er likevektet og bidrar 124 til det totale gjennomsnittet. Dette gir oss gjennomsnittstemperaturen over hver 24-timers periode. Filterforsinkelse Merk at filtrert utgang forsinkes med ca. tolv timer. Dette skyldes det faktum at vårt bevegelige gjennomsnittlige filter har en forsinkelse. Ethvert symmetrisk filter med lengde N vil ha en forsinkelse på (N-1) 2 prøver. Vi kan rapportere denne forsinkelsen manuelt. Utvinning av gjennomsnittlige forskjeller Alternativt kan vi også bruke det bevegelige gjennomsnittlige filteret for å få et bedre estimat av hvordan tidspunktet på dagen påvirker den totale temperaturen. For å gjøre dette, må du først trekke ut glatte data fra timetemperaturmålingene. Deretter segmenter de forskjellige dataene i dager og tar gjennomsnittet over alle 31 dager i måneden. Utvinning av toppkuvert Noen ganger vil vi også ha et jevnt varierende estimat av hvordan høyde og nedturer av temperatursignalet endres daglig. For å gjøre dette kan vi bruke konvoluttfunksjonen til å koble til ekstreme høyder og nedturer oppdaget over en delmengde av 24-timersperioden. I dette eksemplet sikrer vi at det er minst 16 timer mellom hver ekstrem høy og ekstrem lav. Vi kan også få en følelse av hvordan høyder og nedturer er trending ved å ta gjennomsnittet mellom de to ytterpunktene. Veidede Flytte gjennomsnittlige filtre Andre typer bevegelige gjennomsnittlige filtre veier ikke hver prøve like mye. Et annet vanlig filter følger binomial utvidelsen av (12,12) n Denne typen filter tilnærmer en normal kurve for store verdier på n. Det er nyttig for å filtrere ut høyfrekvent støy for små n. For å finne koeffisientene for binomialfilteret, konvolver 12 12 med seg selv og deretter iterativt konvolver utgangen med 12 12 et foreskrevet antall ganger. I dette eksemplet bruker du fem totale iterasjoner. Et annet filter som ligner på det gaussiske ekspansjonsfilteret er eksponentiell glidende gjennomsnittsfilter. Denne typen vektet glidende gjennomsnittsfilter er enkelt å konstruere og krever ikke en stor vindusstørrelse. Du justerer et eksponentielt vektet glidende gjennomsnittlig filter med en alfaparameter mellom null og en. En høyere verdi av alpha vil ha mindre utjevning. Zoom inn på avlesningene i en dag. Velg ditt CountryMoving Average Filter (MA filter) Laster inn. 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 sidebjelke Flytende gjennomsnitt 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 anvendelser 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å Jeg trenger å designe et glidende gjennomsnittlig filter som har en avskjæringsfrekvens på 7,8 Hz. Jeg har brukt glidende gjennomsnittlige filtre før, men så vidt jeg er klar over, er den eneste parameteren som kan mates inn, antall poeng som skal gjennomsnittes. Hvordan kan dette forholde seg til en avskjæringsfrekvens Den inverse av 7,8 Hz er 130 ms, og jeg jobber med data som samples ved 1000 Hz. Betyr dette at jeg burde bruke et bevegelige gjennomsnittlig filtervinduestørrelse på 130 prøver, eller er det noe annet jeg savner her, spurte Jul 18 13 klokken 9:52 Det glidende gjennomsnittsfilteret er filteret som brukes i tidsdomene for å fjerne støyen er lagt til og også for utjevningsformålet, men hvis du bruker det samme bevegelige gjennomsnittsfilteret i frekvensområdet for frekvensseparasjon, vil ytelsen være verst. så i så fall bruk frekvensdomener filtre ndash user19373 Feb 3 16 at 5:53 Det glidende gjennomsnittsfilteret (noen ganger kjent som en boxcar filter) har en rektangulær impulsrespons: Eller, oppgitt annerledes: Husk at en diskret tidssystemfrekvensrespons er lik den diskrete tiden Fourier-transformasjonen av impulsresponsen, kan vi beregne det som følger: Det som var mest interessert i for ditt tilfelle er størrelsesresponsen til filteret, H (omega). Ved hjelp av et par enkle manipulasjoner kan vi få det på en enklere måte: Dette ser kanskje ikke ut til å være lettere å forstå. Men på grunn av Eulers identitet. husk det: Derfor kan vi skrive ovenstående som: Som jeg sa før, hva du virkelig bekymret for, er størrelsen på frekvensresponsen. Så, vi kan ta størrelsen på det ovennevnte for å forenkle det videre: Merk: Vi kan slippe de eksponentielle betingelsene ut fordi de ikke påvirker størrelsen på resultatet e 1 for alle verdier av omega. Siden xy xy for to todelige komplekse tall x og y, kan vi konkludere med at tilstedeværelsen av eksponentielle termer ikke påvirker den generelle størrelsesresponsen (i stedet påvirker de systemfasesponsen). Den resulterende funksjonen inne i størrelsesbeslagene er en form for Dirichlet-kjernen. Det kalles noen ganger en periodisk sinc-funksjon, fordi den ligner sinc-funksjonen noe i utseende, men er periodisk i stedet. Uansett, siden definisjonen av cutoff-frekvensen er noe underspecified (-3 dB punkt -6 dB poeng første sidelobe null), kan du bruke ovennevnte ligning for å løse alt du trenger. Spesifikt kan du gjøre følgende: Sett H (omega) til verdien som svarer til filterresponsen du vil ha ved cutoff-frekvensen. Sett omega lik til cutoff frekvensen. For å kartlegge en kontinuerlig tidsfrekvens til diskretidsdomenet, husk at omega 2pi frac, hvor fs er samplingsfrekvensen. Finn verdien av N som gir deg den beste avtalen mellom venstre og høyre side av ligningen. Det skal være lengden på det bevegelige gjennomsnittet. Hvis N er lengden på det bevegelige gjennomsnittet, er en omtrentlig avskjæringsfrekvens F (gyldig for N gt 2) i normalisert frekvens Fffs: Den inverse av denne er Denne formel er asymptotisk riktig for stor N og har om lag 2 feil for N2 og mindre enn 0,5 for N4. PS! Etter to år, her endelig hva var tilnærmingen fulgt. Resultatet ble basert på tilnærming av MA-amplitudespektret rundt f0 som en parabola (2. rekkefølge Serie) i henhold til MA (Omega) ca. 1 frac - frac Omega2 som kan gjøres mer nøyaktig nær nullkryssing av MA (Omega) - frac ved å multiplisere Omega med en koeffisient som oppnår MA (Omega) ca. 10.907523 (frac - frac) Omega2 Oppløsningen av MA (Omega) - frac 0 gir resultatene ovenfor, hvor 2pi F Omega. Alt ovenfor gjelder 3 dB cutoff frekvensen, emnet for dette innlegget. Noen ganger, selv om det er interessant å oppnå en dempingsprofil i stoppbånd som er sammenlignbar med en 1-ords IIR Low Pass Filter (single pole LPF) med en gitt -3dB cut-off frekvens (en slik LPF kalles også leaky integrator, å ha en stolpe ikke akkurat ved likestrøm men nær det). Faktisk har både MA og den første rekkefølgen IIR LPF -20dBdecade-skråningen i stoppbåndet (en trenger en større N enn den som brukes i figuren, N32, for å se dette), men mens MA har spektrale nuller ved FkN og en 1f evelope, har IIR filteret bare en 1f profil. Hvis man ønsker å skaffe et MA-filter med lignende støyfiltreringsegenskaper som dette IIR-filteret, og samsvarer med 3dB-kuttfrekvensene for å være det samme, ved å sammenligne de to spektrene, ville han innse at stoppbåndets rippel av MA-filteret ender opp 3dB under det av IIR-filteret. For å få det samme stoppbåndet ripple (dvs. samme støydempning) som IIR-filteret, kan formlene modifiseres som følger: Jeg fant tilbake Mathematica-skriptet der jeg beregnet kuttet av for flere filtre, inkludert MA-en. Resultatet ble basert på tilnærming av MA-spektret rundt f0 som en parabola ifølge MA (Omega) Sin (OmegaN2) Sin (Omega2) Omega 2piF MA (F) ca. N16F2 (N-N3) pi2. Og dermed krysse med 1sqrt derfra. ndash Massimo Jan 17 16 kl 2:08

No comments:

Post a Comment