Thursday 28 September 2017

Eksponentiaalinen Liikkuvan Keskiarvon Suodatin Suunnittelu


Eksponentti-suodatin Tässä sivulla kuvataan eksponentiaalinen suodatus, yksinkertaisin ja suosituin suodatin. Tämä on osa osaa Suodatus, joka on osa Vianhavaitsemis - ja diagnoositietoutta .. Yleiskuva, aikavakio ja analoginen vastaava Yksinkertaisin suodatin on eksponentiaalisuodatin. Siinä on vain yksi viritysparametri (muu kuin näytteenväli). Se edellyttää vain yhden muuttujan - edellisen tuotoksen tallentamista. Se on IIR (autoregressiivinen) suodatin - tulon muutoksen hajoaminen eksponentiaalisesti, kunnes näytön tai tietokoneen aritmeettisten rajojen piilotus. Eri tieteenaloilla tämän suodattimen käyttöä kutsutaan myös 8220exponential smoothing8221: ksi. Joissakin tieteenaloissa, kuten sijoitusanalyysissä, eksponentiaalisuotinta kutsutaan 8220Exponential Weighted Moving Average8221 (EWMA) eli vain 8220Exponential Moving Average8221 (EMA). Tämä vääristää perinteisen ARMA 8220: n siirtävän keskiarvon 8221 terminologiaa aikasarjojen analyysissä, koska syöttöhistoriaa ei ole käytetty - vain nykyinen syöte. Se on diskreetti aikaekvivalentti 8282 ensimmäisestä järjestyksestä lag8221, jota käytetään yleisesti jatkuvatoimisten ohjausjärjestelmien analogisessa mallinnuksessa. Sähköpiireissä RC-suodatin (suodatin yhdellä vastuksella ja yksi kondensaattori) on ensimmäisen kertaluvun viive. Analogipiirejä analogisesti korostamalla yksittäinen viritysparametri on 8220-ajan vakio8221, joka tavallisesti on kirjoitettu pienikokoiseksi kreikkalaiseksi kirjaimeksi Tau (). Itse asiassa erillisillä näytteillä olevat arvot täsmäävät täsmälleen vastaavan jatkuvan viiveajan kanssa samaan aikavakioon. Digitaalisen toteutuksen ja aikavakion välinen suhde on esitetty alla olevissa yhtälöissä. Eksponentiaalisuodatinyhtälöt ja alustus Eksponentti-suodatin on edellisen arvion (ulostulo) painotettu yhdistelmä uusimman tulodatan kanssa, joiden painojen summa on yhtä suuri kuin 1 siten, että ulostulo vastaa tuloa vakaan tilan mukaan. Seuraavassa esitetyn suodatusmerkinnän jälkeen: y (k) ay (k-1) (1-a) x (k) missä x (k) on raakapäätös ajankohtana ky (k) on vakio välillä 0 ja 1, tavallisesti välillä 0,8-0,99. (a-1) tai a on joskus kutsuttu 8220smoothing constant8221: ksi. Järjestelmissä, joissa on kiinteä aika-askel T näytteiden välillä, vakio 8220a8221 lasketaan ja tallennetaan sopivaksi vain, kun sovelluskehittäjä määrittää uuden halutun aikavakion arvon. Järjestelmissä, joissa on datanäytteitä epäsäännöllisin väliajoin, käytetään edellä mainittua eksponenttifunktiota jokaisen ajanjakson ajan, missä T on aika, joka kuluu edellisen näytteen kuluttua. Suodatinlähtö alustetaan yleensä vastaamaan ensimmäistä tuloa. Kun aikavakio lähestyy 0, a menee nollaan, joten suodatus 8211 ei ole yhtä suuri kuin uusi tulo. Koska aikavakio on erittäin suuri, lähestymistapoja 1, niin että uusi tulo jää lähes huomiotta 8211 erittäin raskas suodatus. Edellä esitetty suodatusyhtälö voidaan järjestää uudelleen seuraaviin ennustaja-korjaimen ekvivalentiksi: Tämä muoto tekee selväksi, että muuttujan estimaatti (suodattimen lähtö) ennustetaan muuttumattomana edellisestä arviosta y (k-1) odottamattoman 8220 innovaation 8221 avulla - uuden tulon x (k) ja ennusteen y (k-1) välinen ero. Tämä muoto on myös seurausta eksponentiaalisuodattimen muodostamisesta Kalman-suodattimen yksinkertaisena erikoistapauksena. joka on optimaalinen ratkaisu estimointiongelmaan tietyn oletusryhmän kanssa. Vaihevalvonta Eksponentiaalisuodattimen toiminnan havainnollistaminen on piirtää vastaus ajan kuluessa vaiheen sisääntuloon. Toisin sanoen alkaen suodatinpanoksesta ja lähdöstä 0: ssä, tuloarvo muuttuu yhtäkkiä arvoon 1. Tuloksena olevat arvot on piirretty alla: Edellä olevasta kuvaajasta aika jaetaan suodattimen aikavakiona tau, jotta voitte helposti ennustaa tuloksia mille tahansa ajanjaksolle suodattimen aikavakion arvon suhteen. Aikavakion suuruisen ajan jälkeen suodattimen lähtö nousee 63,21: een lopullisesta arvostaan. Kun aika on kaksi kertaa vakio, arvo nousee sen lopulliseen arvoon 86,47. Lähtökerrat 3,4 ja 5 aikavakojen jälkeen ovat 95,02, 98,17 ja lopullisen arvon 99,33. Koska suodatin on lineaarinen, tämä tarkoittaa, että näitä prosenttiosuuksia voidaan käyttää minkä tahansa muutoksen suuruuteen, ei pelkästään tässä käytettyyn arvoon 1. Vaikka askelvaste on teoriassa äärettömän ajan käytännön näkökulmasta, ajattele eksponentiaalisuotinta 98: sta 99: n 8220: een 8221: een vastaten aikaa, joka on yhtä suuri kuin 4-5 suodatusajan vakioita. Eksponentiaalisuodattimen vaihtelut Eksponentiaalisuodattimella 8220 ei-lineaarinen eksponentti-suodatin 8221 Weber, 1980, jonka tarkoituksena on suodattaa voimakkaasti tietty 8220typical8221-amplitudi, mutta vastata nopeammin suurempaan muutokseen. Copyright 2010 - 2013, Greg Stanley Jaa tämän sivun: Dokumentaatio Tässä esimerkissä näytetään, miten liikkuvaa keskimääräistä suodatinta ja resamplinga käytetään eristämään ajanjaksoaikaisten komponenttien vaikutusta tuntilämpötilan lukemiin sekä poistaa ei-toivottua linjamelua auki - jännitteen mittaus. Esimerkissä on myös esimerkki siitä, miten kellosignaalin tasot tasoitetaan ja reunat säilytetään käyttämällä mediaanisuodatinta. Esimerkki osoittaa myös, kuinka Hampelin suodatinta käytetään suurien poikkeamien poistamiseksi. Motivaation tasoittaminen on, kuinka löydämme tärkeitä kuvioita tietomme jättäessä pois asioita, jotka ovat merkityksettömiä (eli melua). Käytämme suodatusta tämän tasoituksen suorittamiseen. Tasoituksen tavoite on tuottaa hitaita arvonmuutoksia niin, että sen tietomuutokset ovat helpommin nähtävissä. Joskus tarkastellessasi sisääntulotietoja, saatat haluta suoda dataa, jotta signaali voi kehittyä. Esimerkissämme meillä on lämpötilalukema Celsiuksessa joka tunti Loganin lentokentällä koko tammikuun 2011 ajan. Huomaa, että voimme nähdä visuaalisesti sen vaikutelman, että kellonaika on lämpötilan lukemissa. Jos olet kiinnostunut vain päivittäisestä lämpötilan vaihtelusta kuukauden aikana, tuntivaihtelut aiheuttavat vain melua, jolloin päivittäiset vaihtelut ovat vaikeasti havaittavissa. Jos haluat poistaa päivän vaikutuksen, haluamme nyt tasoittaa tietoja käyttämällä liikkuvaa keskimääräistä suodatinta. Siirrettävä keskimääräinen suodatin Yksinkertaisimmalla muodollaan pituussuunnassa N liikkuva keskimääräinen suodatin ottaa jokaisen N peräkkäisen aaltomuodon näytteen keskiarvon. Jokaisen datapisteen liukuvan keskimääräisen suodattimen käyttämiseksi rakennamme suodattimemme kertoimet siten, että jokainen piste on yhtä painotettu ja vastaa 124: tä keskimääräiseen keskiarvoon. Tämä antaa meille keskimääräisen lämpötilan 24 tunnin aikana. Suodinviive Huomaa, että suodatettu lähtö viivästyy noin kaksitoista tuntia. Tämä johtuu siitä, että liikkuvan keskimääräisen suodattimemme on viivästynyt. Jokaisella N-pituisella symmetrisellä suodattimella on viive (N-1) 2 näytettä. Voimme ottaa huomioon tämän viiveen manuaalisesti. Keskimääräisten erotusten erottaminen Vaihtoehtoisesti voimme käyttää myös liukuvaa keskimääräistä suodatinta saadaksesi paremman arvion siitä, miten kellonaika vaikuttaa yleiseen lämpötilaan. Tätä varten vähennetään ensin tasoitetut tiedot tuntilämpötilan mittauksista. Sitten segmentoi eriytetyt tiedot päiviin ja kestää keskimäärin kuukauden kaikkien 31 päivän aikana. Peak-kirjekuoren purkaminen Joskus haluamme myös olla sujuvasti vaihteleva arvio siitä, miten lämpötilasignaalin nousu ja lasku muuttuvat päivittäin. Tätä varten voimme käyttää kirjekuoritoimintoa ääri - ja alamomenttien yhdistämiseen yli 24 tunnin jakson osajoukossa. Tässä esimerkissä varmistetaan, että kunkin äärimmäisen korkean ja äärimmäisen alhaisen välillä on vähintään 16 tuntia. Voimme myös saada tunteen siitä, kuinka korkeimmat ja alhaiset ovat kehittymässä ottamalla keskiarvon kahden ääripään välillä. Painotetut keskimääräiset suodattimet Muiden liikkuvien keskimääräisten suotimien paino ei näytä yhtä painoa. Toinen yleinen suodatin seuraa (12,12): n binomiomaista laajentamista. Tämän tyyppinen suodatin lähentää normaalia käyrää n suurille arvoille. Se on hyödyllistä suodattaa suurtaajuusmelu pienelle n: lle. Binomi-suodattimen kertoimien löytämiseksi konvolvoidaan 12 12 itsensä kanssa ja sitten iteratiivisesti konvolvoidaan ulostulo 12 12: llä määrätyllä määrällä kertaa. Tässä esimerkissä käytä viittä täydellistä iteraatiota. Toinen suodatin, joka on hieman samanlainen kuin Gaussian laajennussuodatin, on eksponentiaalinen liukuva keskimääräinen suodatin. Tämäntyyppinen painotettu liikkuva keskimääräinen suodatin on helppo rakentaa eikä vaadi suurta ikkunan kokoa. Säädä eksponentiaalisesti painotettua liikkuvaa keskimääräistä suodatinta alfa-parametrilla nollan ja yhden välillä. Alfa-arvon suurempi arvo on vähemmän tasoittava. Suurenna lukemaa yhden päivän ajan. Valitse maasi, jos pystyt tekemään liikkuvan keskiarvon C: ssä ilman näytteiden ikkunaa. Olen havainnut, että voin optimoida hieman, valitsemalla ikkunan koon, jonka voimakkuus on kaksi, jotta siirrettäisiin bitin sijaan jakamista. ei tarvitsisi puskuria olisi mukavaa. Onko olemassa keino ilmaista uutta liikkuvaa keskimääräistä tulosta vain vanhan tuloksen ja uuden mallin funktiona Määritä esimerkki liikkuvasta keskiarvosta neljän näytteen ikkunassa: Lisää uusi näyte e: Liikkuva keskiarvo voidaan toteuttaa rekursiivisesti , mutta liikkuvan keskiarvon täsmällisen laskemisen vuoksi sinun on muistettava summasta vanhin tulonäytte (esim. a esimerkissasi). Laskettaessa pituutta N liikkuvaa keskiarvoa: missä yn on lähtösignaali ja xn on tulosignaali. Eq. (1) voidaan kirjoittaa rekursiivisesti siten, että sinun on aina muistettava otos xn-N laskemiseksi (2). Kuten Conrad Turner huomautti, voit käyttää (äärettömän pitkää) eksponentiaalista ikkunaa, jonka avulla voit laskea tuotoksen vain aiemmasta lähdöstä ja nykyisestä syötteestä. Mutta tämä ei ole vakio (painottamaton) liikkuva keskiarvo vaan eksponentiaalinen painotettu liukuva keskiarvo, jossa näytteet aiemmin saivat pienemmän painon, mutta (ainakin teoriassa) et unohda koskaan mitään (painot vain pienemmät ja pienemmät näytteitä aikaisemmin). Panin täytäntöön liikkuvan keskiarvon ilman yksittäistä muistimateriaalia GPS-seurantaohjelmaan, jonka kirjoitin. Aloitan yhdellä näytteellä ja jakamalla 1: llä saadaksesi nykyisen keskiarvon. Sitten lisäät anothe näyte ja jakaa 2 nykyiseen avg. Tämä jatkuu, kunnes pääsen keskimääräiseen pituuteen. Joka kerta lisään uuteen otokseen, saan keskiarvon ja poistan sen keskiarvon kokonaismäärästä. En ole matemaatikko, mutta tämä tuntui olevan hyvä tapa tehdä se. Ajattelin, että se muuttuisi todellisen matemaattisen kaverin vatsasta, mutta osoittautuu, että se on yksi hyväksytty tavoista tehdä se. Ja se toimii hyvin. Muista vain, että mitä korkeampi pituus on, sitä hitaammin seuraa mitä haluat seurata. Tämä ei ole väliä suurimman osan ajasta, mutta kun seuraavat satelliitit, jos olet hidas, polku saattaa olla kaukana todellisesta sijainnista ja se näyttää huonolta. Sinulla voi olla ero satun ja jälkipisteen välillä. Valitsin pituuden 15 päivitettyä 6 kertaa minuutissa, jotta saataisiin riittävä tasoitus ja ei liian kaukana varsinaisesta istumapaikasta tasoitettujen reittipisteiden kanssa. vastattu 16.11. 16 kello 23:03 alusta yhteensä 0, count0 (joka kerta kun uusi arvo näkyy Sitten yksi syöte (scanf), yksi lisätään totalvewValue, yksi lisäys (count), yksi jakaa keskiarvo (totalcount) Tämä olisi liukuva keskiarvo yli kaikki tulot Keskimääräisen laskemisen vain viimeisten neljän tulon osalta vaatisi 4 tulomuuttujaa, jotka ehkä kopioivat jokaisen tulon vanhemmalle inputvariable - muuttujalle ja laski sitten uuden liukuvan keskiarvon. Neljä tulomuuttujan summaa jaettuna 4: lla (oikea siirtymä 2 olisi hyvä, jos kaikki panokset olivat positiivisia, jotta keskimääräinen laskutoimitus saataisiin vastaamaan 3. helmikuuta klo 4:06, joka todella laskee keskimääräisen keskiarvon ja EI liikkuvan keskiarvon. Kun laskenta kasvaa, uuden tulonäytteen vaikutus muuttuu vähäiseksi. 3 15 klo 13:53 Vastauksesi 2017 Stack Exchange, IncPrequency Response of käynnissä keskimääräinen suodatin LTI-järjestelmän taajuusvaste on impulssivasteen DTFT, L-mallin liukuvan keskiarvon impulssivaste. liikkuva keskimääräinen suodatin on FIR, taajuusvaste pienenee äärelliseen summaan. Voimme käyttää erittäin hyödyllistä identiteettiä kirjoittaa taajuusvaste, kun olemme antaneet e minus jomega. N 0 ja M L miinus 1. Saatat olla kiinnostunut tämän toiminnon suuruudesta sen määrittämiseksi, mitkä taajuudet tulevat suodattimen läpi heikentymättä ja heikennetään. Alla on tämän toiminnon suuruusluokka L 4 (punainen), 8 (vihreä) ja 16 (sininen). Vaaka-akseli vaihtelee nollasta pi-radiaaniin näytettä kohden. Huomaa, että kaikissa kolmessa tapauksessa taajuusvaste on alipäästöominaisuus. Vakiokomponentti (nolla taajuus) syötteessä kulkee suodattimen läpi heikentämättä. Tietyt korkeammat taajuudet, kuten pi 2, poistetaan kokonaan suodattimesta. Kuitenkin, jos tarkoituksena oli suunnitella alipäästösuodatin, niin emme ole tehneet kovinkaan hyvin. Jotkut korkeammista taajuuksista heikentävät vain kerroin noin 110 (16 pisteen liukuva keskiarvo) tai 13 (neljän pisteen liukuva keskiarvo). Voimme tehdä paljon parempaa. Yllä oleva tontti luotiin seuraavalla Matlab-koodilla: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) (1-exp (-iomega)) (1-exp (-iomega)) H16 (116) (1-exp (-iomega16) H16)) akseli (0, pi, 0, 1) Copyright copy 2000- - Kalifornian yliopisto, Berkeley

No comments:

Post a Comment