Wednesday 22 November 2017

Matlab Bevegelig Gjennomsnitt Matrise


Jeg har en vektor og jeg vil beregne det bevegelige gjennomsnittet av det ved hjelp av et vindu med bredde 5.For eksempel, om vektoren i spørsmålet er 1,2,3,4,5,6,7,8 then. the første oppføring av den resulterende vektoren skal være summen av alle oppføringene i 1,2,3,4,5 ie 15. den andre oppføringen av den resulterende vektoren skal være summen av alle oppføringene i 2,3,4,5,6 dvs. 20. Til slutt skal den resulterende vektoren være 15,20,25,30. Hvordan kan jeg gjøre det? Konverteringsfunksjonen er rett opp i smuget ditt. Tre svar, tre forskjellige metoder Her er en rask referanse forskjellige inngangsstørrelser, fast vindu bredde på 5 ved hjelp av timeit kan du kaste hull i den i kommentarene hvis du tror det må bli refined. conv dukker opp som den raskeste tilnærmingen det er omtrent dobbelt så fort som myntens tilnærming ved hjelp av filter og omtrent fire ganger så fort som Luis Mendo s tilnærming med cumsum. Here er en annen referanse fast innspillstørrelse på 1e4 forskjellige vindusbredder. Luis Mendo s cumsum-tilnærming fremstår som den klare vinneren, fordi dens kompleksitet først og fremst er styrt av lengden på inngangen og er ufølsom for bredden av vinduet. For å oppsummere, bør du bruke conv-tilnærmingen hvis vinduet ditt er relativt lite. bruk cumsum-tilnærmingen hvis vinduet ditt er relativt stort. Kode for benchmarks. I trenger å beregne et bevegelige gjennomsnitt over en dataserie, innenfor en for-løkke må jeg få det bevegelige gjennomsnittet over N 9 dager. Arrayet jeg beregner er 4 serie 365 verdier M, som i seg selv er gjennomsnittlige verdier for et annet sett med data Jeg vil plotte gjennomsnittverdiene av dataene mine med det bevegelige gjennomsnittet i ett plot. Jeg googlede litt om å flytte gjennomsnitt og conv-kommandoen og fant noe som jeg prøvde å implementere i koden min. Så i utgangspunktet beregner jeg mitt gjennomsnitt og plott det med et feil glidende gjennomsnitt, valgte jeg wts-verdien rett utenfor mathworks-siden, så det er feil kilde. Mitt problem er at jeg ikke forstår hva dette wts er. Kan noen forklare om det har noe å gjøre med verdiene av verdiene Det er ugyldig i dette tilfellet Alle verdier es er veid det samme. Og hvis jeg gjør dette helt feil, kan jeg få litt hjelp med det. Min oppriktige takk. Skrevet 23. september 14 på 19 05. Bruke conv er en utmerket måte å implementere et bevegelig gjennomsnitts i koden du bruker, wts er hvor mye du veier hver verdi som du gjettet summen av den vektoren skal alltid være lik en Hvis du ønsker å vekt hver verdi jevnt og gjør et stort N-bevegelig filter, vil du gjøre det. Bruk av gyldig argument i samtalen vil resultere i å ha færre verdier i Ms enn du har i M Bruk det samme hvis du ikke har tenkt på effekten av nullpolstring Hvis du har signalbehandlingsverktøyskassen, kan du bruke cconv hvis du vil prøve et sirkulært glidende gjennomsnitt. Noe like. You bør lese conv and cconv dokumentasjonen for mer informasjon hvis du allerede har t. You kan bruke filter for å finne et løpende gjennomsnitt uten å bruke en for loop Dette eksemplet finner løpende gjennomsnitt av en 16-element vektor, ved hjelp av en vindu størrelse av 5.2 glatt som en del av kurvfesteverktøyet som er tilgjengelig i de fleste tilfeller. yy glatt y glatter dataene i kolonnevektoren y ved hjelp av et bevegelige gjennomsnittsfilter Resultatene returneres i kolonnevektoren yy Standardverdien for det bevegelige gjennomsnittet er 5,29 september, 2013. Gjennomsnittlig gjennomsnitt etter convolution. What flytter gjennomsnittet og hva er det bra for. Hvordan flytter gjennomsnittet gjort ved bruk av convolution. Moving gjennomsnitt er en enkel operasjon som vanligvis brukes til å undertrykke støy av et signal vi setter verdien av hvert punkt til gjennomsnittet av verdiene i nabolaget Av en formel. Her x er inngangen, og y er utgangssignalet, mens størrelsen på vinduet er w, skal være merkelig. Formelen ovenfor beskriver en symmetrisk operasjon, prøvene tas fra begge sider av det aktuelle punktet. virkelighetseksempel Det punktet som vinduet legges faktisk er rødt Verdier utenfor x skal være nuller. For å spille rundt og se effektene av glidende gjennomsnitt, ta en titt på denne interaktive demonstrasjonen. Hvordan gjør du det ved convolution. As du kan ha Jeg har anerkjent, beregning av det enkle glidende gjennomsnittet er lik konvolusjonen i begge tilfeller et vindu glides langs signalet og elementene i vinduet er oppsummert. Så prøv å gjøre det samme ved å bruke konvolusjon. Bruk følgende parametere. Den ønskede utgangen er. Som første tilnærming, la oss prøve det vi får ved å samle x-signalet med følgende k-kjerne. Utgangen er nøyaktig tre ganger større enn den forventede. Det kan også ses at utgangsvurderingene er sammendraget av de tre elementene i vinduet Det er fordi under konvolusjonen glir vinduet sammen, alle elementene i det blir multiplisert med en og deretter oppsummert. yk 1 cdot x 1 cdot x 1 cdot x. For å få de ønskede verdiene av y, skal utgangen divideres med 3. Med en formel inkludert divisjonen. Men det ville ikke være optimalt å gjøre avdelingen under konvolusjon. Her kommer ideen av omarrangere ligningen. Så skal vi bruke følgende k-kjerne. På denne måten vil vi få den ønskede utdata. I generell hvis vi vil flytte gjennomsnittet ved konvolusjon som har et vindu størrelse w, skal vi bruke følgende k-kjernen. A enkel Funksjonen gjør det bevegelige gjennomsnittet. Et eksempel er bruk.

No comments:

Post a Comment