Eksponentiaalinen Liikkuva Keskiarvo Simulink


Dokumentaatio Tässä esimerkissä kuvataan, kuinka liikkuvaa keskimääräistä suodatinta ja resamplinga käytetään eristämään ajanjaksoaikojen vaikutukset tunneittain lämpötilalukemiin sekä poistamaan ei-toivottua linjamelua avoimen silmukan jännitteen mittauksesta. Esimerkissä on myös esimerkki siitä, miten kellosignaalin tasot tasoitetaan säilyttäen reunat käyttämällä mediaanisuodatinta. Esimerkki osoittaa myös, kuinka Hampelin suodatinta käytetään suurien poikkeamien poistamiseksi. Motivaation tasoittaminen on, miten 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 tietojen kehitystä on helpompi nähdä. Joskus tarkastellessasi tulodataa, saatat haluta suoda dataa nähdäksesi trendin signaalissa. Esimerkissämme meillä on lämpötilalukema Celsiuksessa joka tunti Loganin lentokentällä koko tammikuun 2011 ajan. Huomaa, että voimme nähdä visuaalisesti sen vaikutuksen, että kellonaika on lämpötilamittauksissa. Jos olet kiinnostunut vain päivittäisestä lämpötilavaihtelusta kuukauden aikana, tuntivaihtelut vaikuttavat vain melua, mikä voi vaikeuttaa päivittäisten vaihteluiden havaitsemista. Jos haluat poistaa päivän vaikutuksen, haluaisimme tasoittaa tietomme käyttämällä liikkuvaa keskimääräistä suodatinta. Moving Average Filter Yksinkertaisimmassa muodossaan liikkuvan keskimääräisen pituuden N suodatin ottaa jokaisen N peräkkäisen aaltomuodon näytteen keskiarvon. Jokaisen datapisteen liikkuvan keskiarvosuodattimen käyttämiseksi rakennamme suodattimen 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. Suodattimen viive Huomaa, että suodatettu lähtö viivästyy noin kaksitoista tuntia. Tämä johtuu siitä, että liikkuvan keskimääräisen suodattimemme on viivästynyt. Kaikkien N-pituisten symmetristen suodattimien viive on (N-1) 2 näytettä. Voimme ottaa huomioon tämän viiveen manuaalisesti. Keskimääräisten erotusten erottaminen Vaihtoehtoisesti voimme myös käyttää liukuvaa keskimääräistä suodatinta, jotta saisimme 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ä, kuinka lämpötilasignaalin korkeudet ja alamäet muuttuvat päivittäin. Tätä varten voimme käyttää kirjekuoritoimintoa ääri - ja alamäkien 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 painotus ei paina yhtä paljon näytteitä. Toinen yleinen suodatin seuraa (12,12): n binomimaalista laajentamista. Tämän tyyppinen suodatin lähentää normaalia käyrää n suurille arvoille. Se on hyödyllistä suodattaa suuri taajuusmelu 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 liukuvan keskiarvosuodatin 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 oma maaDokumentaatio Keskimääräinen keskimääräinen menetelmä 8212 Keskustelumalli Liukuikkuna (oletus) Eksponentiaalipainotus Liukuikkuna 8212 Pituusikkuna Pituusikkuna kulkee jokaisen kanavan kautta. Jokaisesta näytteestä ikkuna siirtyy, blokki laskee keskimääräisen ikkunan tietojen yli. Eksponentiaalipainotus 8212 Lohko kertoo näytteet joukko painotuskertoimia. Painotuskertoimien suuruus laskee eksponentiaalisesti tietojen iän kasvaessa, eikä koskaan ylitä nollaa. Keskiarvon laskemiseksi algoritmi summaa painotetut tiedot. Määritä ikkunan pituus 8212 Lippu määrittää ikkunan pituuden päällä (oletus) pois päältä Kun valitset tämän valintaruudun, liukuikkunan pituus on sama kuin ikkunan pituuden määrittämä arvo. Kun poistat tämän valintaruudun, liukuikkunan pituus on ääretön. Tässä tilassa lohko laskee nykyisen näytteen ja kanavan kaikkien aiempien näytteiden keskiarvon. Ikkunan pituus 8212 Liukuikkunan pituus 4 (oletus) positiivinen skalaarinen kokonaisluku Ikkunan pituus määrittää liukuikkunan pituuden. Tämä parametri näkyy, kun valitset Määritä ikkunan pituus - valintaruudun. Unohtumiskerroin 8212 Eksponentiaalinen painotuskerroin 0,9 (oletus) positiivinen todellinen skalaari alueella (0,1 Tämä parametri koskee, kun asetat Menetelmän eksponentiaalipainotukseen. Unohintatekijä 0,9 antaa enemmän painoa vanhemmille tiedoille kuin unohtamisen tekijä 0,1 , Joka tarkoittaa, että unohdat tekijä 1,0 tarkoittaa ääretöntä muistia Kaikkien aikaisempien näytteiden annetaan sama paino Tämä parametri on viritettävissä Voit muuttaa sen arvoa myös simulaation aikana Simuloi 8212: n avulla Simulointityyppi suoritetaan Koodin muodostus (oletus) Tulkittu suorittaminen Simuloida mallia käyttäen generoidun C-koodin. Kun ensimmäistä kertaa simulointia, Simulink x00AE luo C-koodin lohkolle. C-koodia käytetään uudelleen myöhempiin simulaatioihin, kunhan malli ei muutu. Tämä vaihtoehto vaatii lisää käynnistysaikaa mutta tarjoaa nopeamman Simuloi mallia MATLAB x00AE-tulkilla. Tämä vaihtoehto lyhentää käynnistysaikaa, mutta sillä on hidas simulointinopeus kuin koodi sukupolvi. Lisätietoa algoritmeista Liukuva ikkuna - menetelmä Liukuikkumenetelmässä kullekin tulonäytteelle annettava tulos on nykyisen näytteen ja Len-1: n edellisten näytteiden keskiarvo. Len on ikkunan pituus. Ensimmäisten Len-1-ulostulojen laskemiseksi, kun ikkunassa ei vielä ole tarpeeksi tietoa, algoritmi täyttää ikkunan nollilla. Esimerkkinä, kun lasketaan keskiarvo, kun toinen panosnäyte tulee sisään, algoritmi täyttää ikkunan Len-2-nollilla. Tietovektori, x. on sitten kaksi datanäytettä, jota seuraa Len - 2 nolla. Kun määrität SpecifyWindowLength-ominaisuuden vääriksi. algoritmi valitsee ääretön ikkunan pituuden. Tässä tilassa lähtö on nykyisen näytteen liikkumaton keskiarvo ja kaikki kanavassa olevat edelliset näytteet. Eksponentiaalinen painotusmenetelmä Eksponentiaalipainotusmenetelmässä liikkuva keskiarvo lasketaan rekursiivisesti käyttäen näitä kaavoja: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1 w x x3BB) x x00AF N x2212 1. x03BB (1 w No x03BB) xN x x00AF N. x03BB 8212 Keskimääräinen keskiarvo nykyisellä näytteellä x N 8212 Virtaustietojen otto näyte x x00AF N x2212 1. x03BB 8212 Keskimääräinen liike edellisellä näytteellä 955 8212 Unohtumistekijä w N. x03BB 8212 Nykyiseen datanäytteeseen (1 x 2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Edellisen datan vaikutus keskimäärään Ensimmäisessä näytteessä, jossa N 1, algoritmi valitsee w N. x03BB 1. Seuraavasta näytteestä päivitetään painotuskerrointa ja lasketaan keskiarvo rekursiivisen yhtälön mukaisesti. Kun tietojen ikä nousee, painotuskertoimen suuruus laskee eksponentiaalisesti eikä koskaan saavuta nollaa. Toisin sanoen, viimeaikaisilla tiedoilla on enemmän vaikutusta nykyiseen keskiarvoon kuin vanhemmat tiedot. Unohoituskertoimen arvo määrittää painotuskertoimien muutosnopeuden. Unohoituskerroin 0,9 antaa vanhemmille tiedoille enemmän painoa kuin unohtamisen tekijä on 0,1. Unohoituskerroin 1,0 osoittaa ääretöntä muistia. Kaikilla aiemmilla näytteillä on sama paino. Järjestelmäobjekteja Valitse maaDokumentaatio dsp. MovingAverage Järjestelmäobjekti Kuvaus dsp. MovingAverage System objectx2122 laskee sisääntulosignaalin liukuvan keskiarvon pitkin kustakin kanavasta itsenäisesti ajan myötä. Objektissa käytetään liukuvan ikkunan menetelmää tai eksponentiaalipainotusmenetelmää liukuvan keskiarvon laskemiseksi. Liukuikkumenetelmässä siirretään tietyn pituisen ikkunan dataa, näytettä näytteestä ja keskiarvo lasketaan ikkunan tietojen yli. Eksponentiaalipainotusmenetelmässä kohde kertoo datanäytteet joukolla painotuskertoimia. Keskimäärin lasketaan summaamalla painotetut tiedot. Lisätietoja näistä menetelmistä on algoritmeja. Objekti hyväksyy monikanavaiset tulot, eli m-bn-kokoiset panokset, joissa m 8805 1 ja n gt 1. Objekti myös hyväksyy muuttujan kokoiset panokset. Kun objekti on lukittu, voit muuttaa kunkin sisääntulokanavan kokoa. Kanavien määrä ei kuitenkaan voi muuttua. Tämä objekti tukee C - ja C-koodin muodostusta. Laske tulon liikkuva keskiarvo: Luo dsp. MovingAverage-objekti ja määritä objektin ominaisuudet. Soita vaiheen avulla liukuvan keskiarvon laskemiseksi. Huomaa: Vaihtoehtoisesti, sen sijaan, että käytit askelmenetelmää Järjestelmäobjektin määrittelemän operaation suorittamiseksi, voit kutsua objektin argumentteilla, kuten jos se olisi toiminto. Esimerkiksi y-vaihe (obj, x) ja y obj (x) suorittavat vastaavia toimenpiteitä. Rakentaminen movAvg dsp. MovingAverage palauttaa liikkuvan keskiarvon, movAvg. käyttäen oletusominaisuuksia. movAvg dsp. MovingAverage (Len) asettaa WindowLength - ominaisuuden Lenille. movAvg dsp. MovingAverage (Name, Value) määrittää lisäominaisuudet käyttämällä Name, Value paria. Määrittelemättömillä ominaisuuksilla on oletusarvot. Valitse oma maaDokumentaatio Keskimääräinen keskimääräinen menetelmä 8212 Keskustelumalli Liukuikkuna (oletus) Eksponentiaalipainotus Liukuikkuna 8212 Pituusikkuna Pituusikkuna kulkee jokaisen kanavan kautta. Jokaisesta näytteestä ikkuna siirtyy, blokki laskee keskimääräisen ikkunan tietojen yli. Eksponentiaalipainotus 8212 Lohko kertoo näytteet joukko painotuskertoimia. Painotuskertoimien suuruus laskee eksponentiaalisesti tietojen iän kasvaessa, eikä koskaan ylitä nollaa. Keskiarvon laskemiseksi algoritmi summaa painotetut tiedot. Määritä ikkunan pituus 8212 Lippu määrittää ikkunan pituuden päällä (oletus) pois päältä Kun valitset tämän valintaruudun, liukuikkunan pituus on sama kuin ikkunan pituuden määrittämä arvo. Kun poistat tämän valintaruudun, liukuikkunan pituus on ääretön. Tässä tilassa lohko laskee nykyisen näytteen ja kanavan kaikkien aiempien näytteiden keskiarvon. Ikkunan pituus 8212 Liukuikkunan pituus 4 (oletus) positiivinen skalaarinen kokonaisluku Ikkunan pituus määrittää liukuikkunan pituuden. Tämä parametri näkyy, kun valitset Määritä ikkunan pituus - valintaruudun. Unohtumiskerroin 8212 Eksponentiaalinen painotuskerroin 0,9 (oletus) positiivinen todellinen skalaari alueella (0,1 Tämä parametri koskee, kun asetat Menetelmän eksponentiaalipainotukseen. Unohintatekijä 0,9 antaa enemmän painoa vanhemmille tiedoille kuin unohtamisen tekijä 0,1 , Joka tarkoittaa, että unohdat tekijä 1,0 tarkoittaa ääretöntä muistia Kaikkien aikaisempien näytteiden annetaan sama paino Tämä parametri on viritettävissä Voit muuttaa sen arvoa myös simulaation aikana Simuloi 8212: n avulla Simulointityyppi suoritetaan Koodin muodostus (oletus) Tulkittu suorittaminen Simuloida mallia käyttäen generoidun C-koodin. Kun ensimmäistä kertaa simulointia, Simulink x00AE luo C-koodin lohkolle. C-koodia käytetään uudelleen myöhempiin simulaatioihin, kunhan malli ei muutu. Tämä vaihtoehto vaatii lisää käynnistysaikaa mutta tarjoaa nopeamman Simuloi mallia MATLAB x00AE-tulkilla. Tämä vaihtoehto lyhentää käynnistysaikaa, mutta sillä on hidas simulointinopeus kuin koodi sukupolvi. Lisätietoa algoritmeista Liukuva ikkuna - menetelmä Liukuikkumenetelmässä kullekin tulonäytteelle annettava tulos on nykyisen näytteen ja Len-1: n edellisten näytteiden keskiarvo. Len on ikkunan pituus. Ensimmäisten Len-1-ulostulojen laskemiseksi, kun ikkunassa ei vielä ole tarpeeksi tietoa, algoritmi täyttää ikkunan nollilla. Esimerkkinä, kun lasketaan keskiarvo, kun toinen panosnäyte tulee sisään, algoritmi täyttää ikkunan Len-2-nollilla. Tietovektori, x. on sitten kaksi datanäytettä, jota seuraa Len - 2 nolla. Kun määrität SpecifyWindowLength-ominaisuuden vääriksi. algoritmi valitsee ääretön ikkunan pituuden. Tässä tilassa lähtö on nykyisen näytteen liikkumaton keskiarvo ja kaikki kanavassa olevat edelliset näytteet. Eksponentiaalinen painotusmenetelmä Eksponentiaalipainotusmenetelmässä liikkuva keskiarvo lasketaan rekursiivisesti käyttäen näitä kaavoja: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1 w x x3BB) x x00AF N x2212 1. x03BB (1 w No x03BB) xN x x00AF N. x03BB 8212 Keskimääräinen keskiarvo nykyisellä näytteellä x N 8212 Virtaustietojen otto näyte x x00AF N x2212 1. x03BB 8212 Keskimääräinen liike edellisellä näytteellä 955 8212 Unohtumistekijä w N. x03BB 8212 Nykyiseen datanäytteeseen (1 x 2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Edellisen datan vaikutus keskimäärään Ensimmäisessä näytteessä, jossa N 1, algoritmi valitsee w N. x03BB 1. Seuraavasta näytteestä päivitetään painotuskerrointa ja lasketaan keskiarvo rekursiivisen yhtälön mukaisesti. Kun tietojen ikä nousee, painotuskertoimen suuruus laskee eksponentiaalisesti eikä koskaan saavuta nollaa. Toisin sanoen, viimeaikaisilla tiedoilla on enemmän vaikutusta nykyiseen keskiarvoon kuin vanhemmat tiedot. Unohoituskertoimen arvo määrittää painotuskertoimien muutosnopeuden. Unohoituskerroin 0,9 antaa vanhemmille tiedoille enemmän painoa kuin unohtamisen tekijä on 0,1. Unohoituskerroin 1,0 osoittaa ääretöntä muistia. Kaikilla aiemmilla näytteillä on sama paino. Järjestelmäobjekteja Valitse maa

Comments

Popular Posts