Monday 9 October 2017

5 Punkts Moving Average Filter Matlab


Ved hjelp av MATLAB, hvordan kan jeg finne tre-dagers glidende gjennomsnitt av en bestemt kolonne i en matrise og legge til glidende gjennomsnitt i den matrisen jeg prøver å beregne 3-dagers glidende gjennomsnitt fra bunnen til toppen av matrisen jeg har gitt min code. Given følgende matrise a og mask. I har prøvd å implementere conv kommandoen, men jeg mottar en feil. Her er conv kommandoen jeg har prøvd å bruke på den andre kolonnen av matrise a. Den utgang jeg ønsker er gitt i Følgende matrise. Hvis du har noen forslag, vil jeg sterkt sette pris på det. Takk for kolonne 2 av matrise a, beregner jeg 3-dagers glidende gjennomsnitt som følger og plasserer resultatet i kolonne 4 av matrise a jeg omdøpt matrise a som ønsket Utgang bare for å illustrere 3-dagers gjennomsnittet av 17, 14, 11 er 14 det 3-dagers gjennomsnittet av 14, 11, 8 er 11 3-dagers gjennomsnittet av 11, 8, 5 er 8 og 3-dagers gjennomsnittet av 8, 5, 2 er 5 Det er ingen verdi i de nederste 2 radene for fjerde kolonne fordi beregningen for 3-dagers glidende gjennomsnitt starter ved bunnen Den gyldige utgangen vil ikke bli vist før minst 17, 14 og 11 Forhåpentligvis er dette fornuftig Aaron 12. juni kl. 13 på 28. 28. Generelt vil det hjelpe hvis du vil vise feilen I dette tilfellet gjør du to ting feil . Først må konvolusjonen deles opp med tre eller lengden på det bevegelige gjennomsnittet. Andre, merk størrelsen på c Du kan ikke bare passe c til en Den typiske måten å få et bevegelig gjennomsnitts ville være å bruke samme. Men det gjør det ikke se ut som du vil. I stedet er du tvunget til å bruke et par linjer. Frekvensrespons av det kjørende gjennomsnittsfilter. Frekvensresponsen til et LTI-system er DTFT av impulsresponsen. Impulsresponsen av et L-prøves glidende gjennomsnitt er. Since det bevegelige gjennomsnittlige filteret er FIR, reduserer frekvensresponsen til den endelige summen. Vi kan bruke den svært nyttige identiteten. for å skrive frekvensresponsen som. som vi har gitt aej N 0 og ML 1 Vi kan være interessert i størrelsen på denne funksjonen for å bestemme hvilke frekvenser ge t gjennom filteret unattuated og som er dempet Nedenfor er et plott av størrelsen på denne funksjonen for L 4 rød, 8 grønn og 16 blå Den horisontale aksen varierer fra null til radianer per prøve. Merk at i alle tre tilfeller er frekvensen svaret har lavpass karakteristikk En konstant komponent nullfrekvens i inngangspassene gjennom filtret unattuated Visse høyere frekvenser, som 2, er helt eliminert av filteret. Men hvis hensikten var å designe et lavpassfilter, har vi ikke gjort det veldig vel Noen av de høyere frekvensene blir dempet bare med en faktor på ca. 1 10 for 16 punktets glidende gjennomsnitt eller 1 3 for firepunkts glidende gjennomsnitt. Vi kan gjøre mye bedre enn det. Ovennevnte tegning ble opprettet av følgende Matlab-kode. omega 0 pi 400 pi H4 1 4 1-exp - i omega 4 1-exp - i omega H8 1 8 1-exp - i omega 8 1-exp - i omega H16 1 16 1-exp - i omega 16 1-exp - i omega plot omega, abs H4 abs H8 abs H16 akse 0, pi, 0, 1.Copyright 2000- - University av California, Berkeley. Jeg trenger å beregne et bevegelige gjennomsnitt over en dataserie, innen en for-løkke må jeg få det bevegelige gjennomsnittet over N 9 dager. Arrayet jeg m beregner inn er 4 serier av 365 verdier M, som i seg selv er betydelige verdier av et annet sett med data Jeg vil plotte gjennomsnittverdiene av dataene mine med det bevegelige gjennomsnittet i ett plot. Jeg googled litt om å flytte gjennomsnitt og conv-kommandoen og fant noe som jeg prøvde å implementere i koden min. Så egentlig, jeg beregne min gjennomsnitt og plotte den med et feil glidende gjennomsnitt Jeg valgte 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 vekter av verdiene som er ugyldige i dette tilfellet Alle verdier er vektet det samme. Og hvis jeg gjør dette helt feil, kan jeg få litt hjelp med det. Min oppriktige takk. Skrevet 23. september kl 14 på 19 05. Bruke samle er en utmerket måte å implementere et glidende gjennomsnitt på i koden du er 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 størrelse N-bevegelig filter så vil du gjøre. Bruk gyldig argument i conv 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 som . Du 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 det løpende gjennomsnittet av en 16-elementvektor, ved hjelp av en vindustørrelse på 5.2 glatt som en del av kurvefittingverktøyskassen som er tilgjengelig i de fleste tilfeller. yy glatt y glatter dataene i kolonnevektoren y ved hjelp av et glidende gjennomsnittfilter. Resultatene returneres i kolonnevektoren. Standardverdien for glidende gjennomsnitt er 5.

No comments:

Post a Comment