Sunday 19 November 2017

On Liikkuva Keskiarvo A Low Pass Suodattimen


Olen m koodaus jotain hetkellä, jossa olen ottaa joukko arvoja ajan mittaan laitteiston kompassin Tämä kompassi on erittäin tarkka ja päivitykset hyvin usein, joten jos se jiggles hieman, päädyin outoa arvoa, joka s villi epäjohdonmukainen naapureiden kanssa Haluan tasoittaa nämä arvot ulos. Kun olin lukenut jonkin verran, näyttäisi siltä, ​​että haluan pääpassisuodattimen, alipäästösuodattimen tai liukuvan keskiarvon. Liikkuvat keskiarvot voin päästä alas, vain pidä historiaa viimeisistä viidestä arvosta tai mitä tahansa, ja käytä näiden arvojen keskiarvoa myötävirtaan minun koodini, jossa olin kerran käyttänyt vain viimeisintä arvoa. Tämä pitäisi mielestäni tasoittaa nämä jiggles hienosti, mutta se iskee minulle, että se on luultavasti melko tehottomana, ja tämä on luultavasti yksi niistä tunnetuista ongelmista oikeisiin ohjelmoijia kohtaan, joilla on todella siisti Clever Math - ratkaisu. Olen kuitenkin yksi niistä kauheista itsetietoisista ohjelmoijista, joilla ei ole muodollista koulutusta missään epäsuorasti liittyvä CompSci tai matemaattinen lukeminen noin hieman viittaa siihen, että tämä voi olla korkea tai alipäästösuodin, mutta en voi löytää mitään, joka selittää ymmärtävästi hakata minulle, mitä näiden algoritmien vaikutus olisi arvoryhmässä, anna yksin kuinka matemaattinen toimii. Esimerkiksi täällä annettu vastaus teknisesti vastaa kysymykseeni, mutta vain ymmärrettävästi niille, jotka todennäköisesti tietäisivät, miten ratkaista ongelma. Olisi todella ihana ja älykäs henkilö, joka voisi selittää mikä on ongelma ja miten ratkaisut toimivat, kuten ymmärrettäväksi taiteen loppututkinnon suorittaneelle. Toukokuu 21 10 klo 13 01.Jos liikkuva keskiarvo on pitkä, jotta saavutetaan tarvittava tasoittaminen, etkä todellakaan tarvitse jokin erityinen ytimen muoto, niin voit paremmin, jos käytät eksponentiaalisesti hajoavaa liikkuvaa keskiarvoa. Jos valitset pienen olevan sopiva vakio, esim. jos valitset pienen 1- 1 N: n, sillä on sama keskiarvo kuin ikkunassa kokoa N, mutta jakautuu eri tavoin vanhempien pisteiden mukaan. Koska liikkuvan keskiarvon seuraava arvo riippuu vain edellisestä ja tietojasi, sinun ei tarvitse pitää jonoa tai mitään ja voit ajatella tätä tekemästä jotain. Minulla on uusi piste, mutta en suhtaudu siihen kovin luotettavasti, joten aion pitää 80-luvun vanhasta arviointini mittauksesta ja luotan vain tähän uusiin datapisteeseen. 20 Se on melko sama kuin sanomalla: No, minä luotan vain tähän uuteen pisteeseen 20 ja käytän 4 muuta pistettä, jotka luottavat samaan summaan, paitsi että 4 muuta pistettä nimenomaisen ottamisen sijasta olette olettaen, että keskiarvo, jonka olet tehnyt viime kerralla, oli järkevä, jotta voit käyttää edellistä work. vastattu Sep 21 10 at 14 27. Hei, tiedän, että tämä on viisi vuotta myöhässä, mutta kiitos mahtavasta vastauksesta työskentelen pelin kohdalla, jossa ääni muuttuu nopeutesi perusteella, mutta koska pelin suorittaminen on hidasta - tietokone, nopeus vaihtelee villinä, mikä sopi hyvin ohjaukseen, mutta äärimmäisen ärsyttävää ms ääntä Tämä oli todella yksinkertainen ja halpa ratkaisu jotain, jonka ajattelin olevan todella monimutkainen ongelma Adam Mar 16 15 20 20. Jos yrität poistaa satunnaisen outoa arvoa, alipäästösuodatin on paras kolme vaihtoehtoa, jotka olet määrittänyt Alipäästösuodattimet mahdollistavat pienen nopeuden muutokset, kuten esimerkiksi pyörivän kompassin käsin tekemät muutokset, mutta hylkäävät nopeita muutoksia, kuten esimerkiksi kaatumisten aiheuttamia muutoksia. Liikkuvan keskiarvon ei todennäköisesti riitä, koska yksittäisen kopion vaikutukset tietojasi vaikuttavat useisiin myöhemmissä arvoissa riippuen liikkuvaa keskimääräistä ikkunaa. Jos parittomat arvot ovat helposti havaittavissa, saatat jopa olla parempi, poisto-algoritmi, joka jättää ne täysin huomiotta. Tässä on kuvio graafinen kuvaaja. Ensimmäinen kaavio on tulosignaali, jossa on yksi epämiellyttävä häiriö. Toinen kaavio kuvaa 10: n näytteen liukuvan keskiarvon vaikutusta. Lopullinen kaavio on yhdistelmä 10- näyte keskimäärin ja th e yksinkertainen glitch detection algorithm esitetty yllä Kun häiriö on havaittu, 10-näyte keskiarvo käytetään sen sijaan, että todellinen arvo. vastattu syyskuu 21 10 klo 13 38. Selkeästi selitetty ja bonus pistettä kuvaaja Henry Cooke syyskuu 22 10 klo 0 50.Wow Harvoin näki niin kiva vastaus Muis kesäkuu 4 13 klo 9 14. Liikkuva keskiarvo on alipäästösuodatin nomen lokakuu 21 13 klo 19 36. Koe juokseva streaming mediaani sijaan Garden 25. huhtikuuta 14 klo 22 09. Levyn keskiarvo I voi saada alas, mutta se iskee minulle, että se on luultavasti melko tehottomana. Ei todellakaan ole mitään syytä liikkumaton keskiarvo olisi tehottomampi. Pidä haluamasi datapisteiden määrä joissakin puskurissa, kuten pyöreä jono. Jokaiselle uudelle datapisteelle pop vanhin arvo ja vähennä se summasta ja työnnä uusin ja lisää se summaan Joten jokainen uusi datapiste todella sisältää vain pop-pushin, lisäyksen ja vähennyksen. Liikkuva keskiarvo on aina tämä siirrettävä summa jaettuna arvoja puskurissa. Se saa hieman hankalampaa, jos uudelleen vastaanottaa tietoja samanaikaisesti useista kierroksista, mutta koska tietosi tulevat laitteistosta, joka tuntuu erittäin epäilyttävältä minulle. Oh, ja myös kauheat itseopiskelevat ohjelmoijat yhdistyivät. Liikkuva keskiarvo tuntui tehottomalta minulle, koska sinun on tallennettava arvopuskuria - parempi tehdä vain joitain Clever Matematiiveja syöttöarvo ja nykyinen työarvo mielestäni s kuinka eksponentiaalinen liukuva keskiarvo toimii Optimointi, jonka olen nähnyt tämänkaltaiselle liikkuvalle keskiarvolle, edellyttää kiinteän pituisen jonon käyttämistä osoittimen, että jonossa, ja vain käärittämällä osoitin ympärillä tai jos Voila Ei kallis push pop Voimaa harrastajille, veli Henry Cooke syyskuu 22 10 klo 0 54. Henry Suoraan liikkuva keskiarvo tarvitset puskurin yksinkertaisesti niin, että tietävät, mitä arvoa tulee, kun seuraava arvo työnnetään. Se sanoi, että kiinteäpituinen jonossa osoittamasi osoitin on täsmälleen mitä tarkoitin pyöreällä jonolla. Siksi sanoin, että se ei ole tehoton. Mitä mieltä olette tarkoitti Ja jos vastauksesi on taulukko, joka siirtää arvojansa takaisin jokaisen indeksoidun poistoon kuten std vektori C: ssä, niin minä niin vahingoitan en halua edes puhua sinulle enää Dan Tao 22.10. 1 58. Henry En tiedä AS3: sta, mutta Java-ohjelmoija on saanut kokoelmia, kuten CircularQueue hänen käytettävissään, en ole Java-kehittäjä, joten olen varma, että siellä on parempia esimerkkejä siitä, mitä löysin nopeasta Google-hausta, joka toteuttaa juuri funktioita, joista puhumme, olen melko varma, että suurin osa keskikokoisista ja matalan tason kielistä, joilla on vakiokirjastoja, on jotain samanlaista, esim. s Queue T Anyway, olin itse filosofia, joten kaikki on anteeksi Dan Tao 22.10. 12 44. Liikkuvan keskiarvon eksponentiaalisesti hajoava voidaan laskea käsin vain trendin avulla, jos käytät oikeita arvoja. Katso ideasta, miten tämä voidaan tehdä nopeasti kynällä ja paperilla, jos etsit eksponentiaalisesti tasoitettua liukuvaa keskiarvoa 10 tasoittamalla Mutta koska olet hav ee tietokoneella, luultavasti haluat tehdä binääriasennon eikä desimaalinsiirtoa. Tällä tavalla tarvitset vain muuttujan nykyiselle arvolle ja yksi keskiarvolle Seuraavaan keskiarvoon voidaan sitten laskea siitä. vastattu 21 syyskuu klo 10 14 39. siellä on tekniikka, jota kutsutaan alue-portiksi, joka toimii hyvin alhaisen esiintymistiheyden kanssa, jos oletetaan yhden edellä mainitun suodatintekniikan käytön olevan liukas keskiarvo, eksponentiaalinen, kun sinulla on riittävä historia yhden Time Constantin avulla voit testata uuden, tulevan ennen kuin se lisätään laskentaan. jotain tietämystä signaalin maksimaalisesta kohtuullisesta vaihtumisnopeudesta vaaditaan, että raakanäytettä verrataan viimeiseen tasoitettuun arvoon ja jos kyseisen eron absoluuttinen arvo on suurempi kuin sallittu alue, näyte heitetään pois tai korvataan muulla heuristisella, esim. ennuste perustuu kaltevuuseroon tai trendin ennustevirhearvoon kaksinkertaisesta eksponenttien tasaamisesta. 16 at 6 56. Siirrä keskimääräinen suodatin. MovingAverageFilter toteuttaa alipäästösuuntaisen keskimääräisen suodattimen MovingAverageFilter on osa esikäsittelytekniikkaa. Esimerkki signaalin siniaallon satunnaisesta melusta suodatetaan liikkuva keskimääräinen suodatin Punainen signaali on alkuperäinen signaalin kohina , vihreä signaali on suodatettu signaali käyttämällä liikkuvaa keskimääräistä suodatinta, jonka ikkunan koko on 5 ja sinisignaali on suodatettu signaali käyttämällä liikkuvaa keskimääräistä suodatinta, jonka ikkuna on kooltaan 20. MovingAverageFilter on hyvä poistaa pieni määrä suurtaajuusmelu N-mittasignaalista. MovingAverageFilterin tärkein haitta on se, että suodattimen ikkunakerroksen on oltava suuri suurtaajuusmelun suodattamiseksi. Suuri suodinikkunan ongelma on se, että se aiheuttaa suuri latenssi missään signaalissa, joka kulkee suodattimen läpi, mikä ei ehkä ole edullista reaaliaikaisille sovelluksille. Jos huomaat, että tarvitset suuren suodatusikkunan f korkean taajuuden häiriö ja tämän ikkunan koon aiheuttamat viiveet eivät sovellu reaaliaikaiseen sovellukseen, sinun kannattaa kokeilla joko Double Moving Average - suodatinta tai alipäästösuodatinta. Esimerkkikoodi. GRT MovingAverageFilter Esimerkki Tässä esimerkissä kuvataan GRT MovingAverageFilter PreProcessing Module: n luominen ja käyttäminen. MovingAverageFilter toteuttaa alipäästösuuntaisen liikkuvan keskimääräisen suodattimen. Tässä esimerkissä luodaan MovingAverageFilterin esimerkki ja käytämme tätä suodattamalla joitain sinimailan tietoja, aallon satunnaismelu Testisignaali ja suodatetut signaalit tallennetaan sitten tiedostoon, jotta voit piirtää tulokset Matlabin, Excelin jne. tarvittaessa. Tämä esimerkki näyttää - Miten luodaan uusi MovingAverageFilter - esimerkki, jossa on tietty ikkuna-koko 1 kolmiulotteinen signaali - Suodata joitain tietoja MovingAverageFilterin avulla - Tallenna MovingAverageFilter-asetukset tiedostoon - Lataa MovingAverageFilter-asetukset tiedostosta. Sisällytä GRT h nimeä käyttäen GRT. int pää int argc const char argv Luo uusi liikkuva keskimääräinen suodatin, jonka koko on 5, 1-ulotteinen signaali MovingAverageFilter-suodatin 5 1. Luo ja avaa tiedosto, tiedosto auki fstream ulos. Luo jonkin verran datan siniaallon kohinaa ja suodata se kaksinkertaiseksi x 0 const UINT M 1000 Satunnainen satunnainen UINT i 0 i M i kaksinkertainen signaali sin x satunnainen getRandomNumberUniform - 0 2 0 2.double filteredValue suodatinsuodatin signal. file signaali t filteredValue endl. x TWOPI double M 10. Sulje tiedostosi lähelle. Tallenna suodatinasetukset tiedostosuodattimeen saveSettingsToFile. Voimme sitten ladata asetukset myöhemmin tarvittaessa suodattaa loadSettingsFromFile. return EXITSUCCESS. The MovingAverageFilter toimii myös minkä tahansa N-mittasignaalin kanssa. Luo uusi MovingAverageFilter-ilmentymä 10-kertaisella ikkunalla kolmiulotteiselle signaalille MovingAverageFilter-suodatin 10 3. Arvo, jonka haluat suodattaa vektorin kaksoistiedot 3 data 0 0 Hanki arvo anturitiedoista 1 0 Hanki arvo anturitiedoista 2 0 Hanki arvo anturilta. Suodatetaan signaalivektori kaksinkertaistetun suodattimen arvosuodatinsuodatindatan. Koodin resursseja. Keskimääräisen suodattimen suorittaman taajuusvasteen taajuus. 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ä kirjoittamaan taajuusvaste niin, missä olemme antaneet aej N 0 ja ML 1 Saatat olla kiinnostuneita tämän suuruudesta toiminto sen määrittämiseksi, mitkä taajuudet tulevat suodattimen läpi heikentämättä ja heikennetään Alla on tämän toiminnon suuruusluokka L 4 punainen, 8 vihreä ja 16 sininen Vaaka-akseli vaihtelee nollasta radiaaseihin näytettä kohden. Huomaa, että kaikissa kolmessa tapauksessa taajuusvasteessa on alipäästökäyrä Vakiokomponentin nollafrekvenssi tulon kulkemisessa suodattimen läpi ei-aktivoidut Tietyt korkeammat taajuudet, kuten 2, eliminoidaan kokonaan Suodatin Jos kuitenkin tarkoituksena oli suunnitella alipäästösuodatin, niin emme ole tehneet kovin hyvää Jotkut korkeammista taajuuksista heikentävät vain kertoimella noin 1 10 16 pisteen liukuvalle keskiarvolle tai 1 3 neljän pisteen liikkuessa keskimäärin Voimme tehdä paljon paremmin kuin edellä. Edellä oleva tontti on luotu seuraavalla Matlab-koodilla. omega 0 pi 400 pi H4 1 4 1-exp-omega 4 1-exp-omega H8 1 8 1-exp - i omega 8 1-exp-omega H16 1 16 1-exp-omega 16 1-exp-omega omega, abs H4 abs H8 abs H16 akseli 0, pi, 0, 1.Copyright 2000- - Kalifornian yliopisto, Berkeley .

No comments:

Post a Comment