Wednesday 8 November 2017

Eksponensiell Veide Moving Average Filter Matlab


Eksponentielt filter Denne siden beskriver eksponensiell filtrering, det enkleste og mest populære filteret. Dette er en del av avsnittet Filtrering som er en del av En veiledning til feilsøking og diagnose. Oversikt, tidskonstant og analoge ekvivalenter Det enkleste filteret er eksponensielt filter. Den har bare en innstillingsparameter (annet enn prøveintervallet). Det krever lagring av bare én variabel - den forrige utgangen. Det er et IIR (autoregressivt) filter - virkningene av en inngangsendring forfall eksponentielt inntil grensene for skjermer eller dataregning skjuler det. I ulike discipliner benyttes også dette filteret som 8220exponential smoothing8221. I noen disipliner som investeringsanalyse kalles eksponentielt filter en 8220Exponentielt vektet Flytende Gjennomsnitt8221 (EWMA), eller bare 8220Exponential Moving Average8221 (EMA). Dette misbruker den tradisjonelle ARMA 8220moving average8221 terminologien av tidsserieanalyse, siden det ikke er noen innloggingshistorikk som brukes - bare gjeldende inngang. Det er den diskrete tidsekvivalenten til 8220 første orden lag8221 som vanligvis brukes i analog modellering av kontinuerlig kontrollsystemer. I elektriske kretser er et RC-filter (filter med en motstand og en kondensator) en førsteordringsforsinkelse. Når man understreker analogien til analoge kretser, er single tuning parameteren 8220time constant8221, vanligvis skrevet som små bokstaver gresk bokstav Tau (). Faktisk stemmer verdiene på de diskrete prøvetidene nøyaktig overens med ekvivalent kontinuerlig tidsforsinkelse med samme tidskonstant. Forholdet mellom digital implementering og tidskonstanten er vist i ligningene under. Eksponentielle filterligninger og initialisering Det eksponensielle filteret er en vektet kombinasjon av det forrige estimatet (utgang) med de nyeste inntastingsdataene, med summen av vektene lik 1 slik at utgangen stemmer overens med inngangen ved steady state. Følgende filternotasjon er allerede innført: y (k) ay (k-1) (1-a) x (k) hvor x (k) er den råinngangen på tidspunktet trinn ky (k) er den filtrerte utgangen på tidspunktet trinn ka er en konstant mellom 0 og 1, vanligvis mellom 0,8 og 0,99. (a-1) eller a kalles noen ganger 8220smoothing constant8221. For systemer med et fast tidssteg T mellom prøver blir konstanten 8220a8221 beregnet og lagret for enkelhets skyld bare når applikasjonsutvikleren spesifiserer en ny verdi av ønsket tidskonstant. For systemer med datasampling i uregelmessige intervaller, må den eksponensielle funksjonen ovenfor brukes med hvert trinn, hvor T er tiden siden forrige prøve. Filterutgangen blir vanligvis initialisert for å matche den første inngangen. Når tidskonstanten nærmer seg 0, går a til null, så det er ingen filtrering 8211 utgangen er lik den nye inngangen. Som tidskonsentrasjonen blir veldig stor, en tilnærming 1, slik at ny inngang nesten ignoreres 8211 veldig tung filtrering. Filter-ligningen ovenfor kan omarrangeres til følgende prediktor-korrigerende ekvivalent: Dette skjemaet gjør det mer tydelig at variabelestimatet (utgang av filteret) er forutsatt som uendret fra forrige estimat y (k-1) pluss en korreksjonsperiode basert på den uventede 8220innovation8221 - forskjellen mellom den nye inngangen x (k) og prediksjonen y (k-1). Dette skjemaet er også et resultat av å avlede det eksponensielle filteret som et enkelt spesielt tilfelle av et Kalman-filter. som er den optimale løsningen på et estimeringsproblem med et bestemt sett av antagelser. Trinnrespons En måte å visualisere driften av eksponensielt filter på er å plotte sitt svar over tid til en trinninngang. Det vil si, med utgangspunkt i filterinngang og - utgang ved 0, endres inngangsverdien plutselig til 1. De resulterende verdiene er plottet under: I det ovennevnte tegnet deles tiden med filtertidskonstanten tau slik at du lettere kan forutsi Resultatene for en hvilken som helst tidsperiode, for en hvilken som helst verdi av filtertidskonstanten. Etter en tid som er lik tidskonstanten, øker filterutgangen til 63,21 av den endelige verdien. Etter en tid lik 2 tidskonstanter, øker verdien til 86,47 av sin endelige verdi. Utgangene etter tidene lik 3,4 og 5 tidskonstanter er henholdsvis 95,02, 98,17 og 99,33 av sluttverdien. Siden filteret er lineært betyr dette at disse prosentene kan brukes til hvilken som helst størrelsesorden av trinnendringen, ikke bare for verdien av 1 som brukes her. Selv om trinnresponsen i teorien tar en uendelig tid, tenker det fra det praktiske synspunkt på det eksponensielle filteret som 98 til 99 8220done8221 som svarer etter en tid lik 4 til 5 filtertidskonstanter. Variasjoner på det eksponensielle filteret Det er en variasjon av det eksponensielle filteret som kalles et 8220 ikke-lineært eksponensielt filter8221 Weber, 1980. ment å sterkt filtrere støy innenfor en bestemt 8220typical8221 amplitude, men deretter reagere raskere på større endringer. Copyright 2010 - 2013, Greg Stanley Del denne siden: FIR-filtre, IIR-filtre og den lineære konstant-koeffisient-differanse-ligningen Causal Moving Average (FIR) - filtre Vi har diskutert systemer der hver prøve av utgangen er en vektet sum av (visse av de) prøvene på 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 med 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 må du gjøre det til et andreordfilter, slik at anropet til filteret vil være av skjemaet. La oss sette 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 multiplikasjons-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å det z transformerte eksponentielt vektede glidende gjennomsnittet. Du kan tenke på tittellisten din som tråder du har bokmerket. Du kan legge til koder, forfattere, tråder, og til og med søkeresultater til tittelisten din. På denne måten kan du lett holde styr på emner som du er interessert i. Hvis du vil se tittelisten din, klikker du på linken Quotere Newsreaderquot. Hvis du vil legge til elementer i oversiktelisten din, klikker du på kvoten for å se listekjennelinken nederst på en side. Hvordan legger jeg til et element i ventelisten For å legge til søkekriterier i urlisten din, søk etter ønsket uttrykk i søkeboksen. Klikk på quotAdd dette søket til min watch listquot link på søkeresultatsiden. Du kan også legge til en etikett i oversiktelisten din ved å søke etter taggen med direktivet quottag: tagnamequot hvor tagname er navnet på taggen du vil se. Hvis du vil legge til en forfatter i tittelisten din, går du til forfatterens profilside og klikker på quotAddis denne forfatteren til klokken min på listen over klikklister øverst på siden. Du kan også legge til en forfatter til tittelisten din ved å gå til en tråd som forfatteren har lagt ut på og klikk på quotAdd denne forfatteren til min watch listquot link. Du vil bli varslet når forfatteren lager et innlegg. Hvis du vil legge til en tråd i oversiktelisten din, går du til trådsiden og klikker på quotAdd denne tråden til kollisjonslisten-linken øverst på siden. Om nyhetsgrupper, nyhetslesere og MATLAB Central Hva er nyhetsgrupper Nyhetsgruppene er et verdensomspennende forum som er åpent for alle. Nyhetsgrupper brukes til å diskutere et stort spekter av emner, lage meldinger og handelsfiler. Diskusjoner blir gjengitt eller gruppert på en måte som lar deg lese en utgitt melding og alle svarene i kronologisk rekkefølge. Dette gjør det enkelt å følge tråden i samtalen, og for å se hva du allerede har sagt før du legger inn ditt eget svar eller foreta et nytt innlegg. Nyhetsgruppens innhold distribueres av servere som er vert for ulike organisasjoner på Internett. Meldinger utveksles og administreres ved hjelp av åpne standardprotokoller. Ingen enkelt enhet ldquoownsrdquo nyhetsgruppene. Det er tusenvis av nyhetsgrupper som hver adresserer et enkelt emne eller område av interesse. MATLAB Central Newsreader poster og viser meldinger i comp. soft-sys. matlab nyhetsgruppen. Hvordan leser eller poster jeg til nyhetsgruppene Du kan bruke den integrerte nyhetsleseren på MATLAB Central-nettstedet til å lese og legge inn meldinger i denne nyhetsgruppen. MATLAB Central er vert for MathWorks. Meldinger sendt via MATLAB Central Newsreader er sett av alle som bruker nyhetsgruppene, uansett hvordan de får tilgang til nyhetsgruppene. Det er flere fordeler med å bruke MATLAB Central. En konto Din MATLAB Central-konto er knyttet til din MathWorks-konto for enkel tilgang. Bruk e-postadressen til ditt valg MATLAB Central Newsreader lar deg definere en alternativ e-postadresse som din postadresse, unngå rot i din primære postkasse og redusere spam. Spam kontroll De fleste nyhetsgruppespam blir filtrert ut av MATLAB Central Newsreader. Merking Meldinger kan merkes med en relevant etikett av en pålogget bruker. Etiketter kan brukes som nøkkelord for å finne bestemte filer av interesse, eller som en måte å kategorisere dine bokmerkede innlegg på. Du kan velge å tillate andre å se kodene dine, og du kan se eller søke på andrersquo-koder, så vel som de i fellesskapet som helhet. Tagging gir en måte å se både de store trendene og de mindre, mer uklare ideene og applikasjonene. Vaktlister Ved å sette opp lister kan du bli varslet om oppdateringer gjort til innlegg som er valgt av forfatter, tråd eller en hvilken som helst søkevariabel. Varselmeldingene dine kan sendes via e-post (daglig fordøyelse eller umiddelbar), vises i Min nyhetsleser, eller sendes via RSS-feed. Andre måter å få tilgang til nyhetsgruppene Bruk en nyhetsleser gjennom din skole, arbeidsgiver eller internettleverandør Betal for nyhetsgruppe tilgang fra en kommersiell leverandør Bruk Google Grupper Mathforum. org gir en nyhetsleser med tilgang til comp. soft sys. matlab nyhetsgruppe Kjør din egen server. For typiske instruksjoner, se: slyckng. phppage2 Velg ditt landsdokumentasjon Dette eksemplet viser hvordan du bruker glidende gjennomsnittsfiltre og resampling for å isolere effekten av periodiske komponenter på tidspunktet for klokkeslett på timetemperatur, samt fjerne uønsket linjestø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 land

No comments:

Post a Comment