Sunday, 1 October 2017

Matlab Flytting Gjennomsnittet Opplæringen


29 september 2013 Flytte gjennomsnitt ved konvolusjon Hva er glidende gjennomsnitt og hva er det bra for Hvordan flytter gjennomsnittet gjort ved å bruke convolution Flytte gjennomsnitt er en enkel operasjon som vanligvis brukes til å undertrykke støy av et signal: vi setter verdien av hvert punkt til gjennomsnitt av verdiene i nabolaget. Med en formel: Her er x inngangen, og y er utgangssignalet, mens størrelsen på vinduet er w, skulle være merkelig. Formelen ovenfor beskriver en symmetrisk operasjon: prøvene tas fra begge sider av det aktuelle punktet. Nedenfor er et virkelighetseksempel. Det punktet som vinduet ligger faktisk er rødt. Verdier utenfor x skal være nuller: For å spille rundt og se effekten av glidende gjennomsnitt, ta en titt på denne interaktive demonstrasjonen. Slik gjøres det ved konvolusjon Som du kanskje har gjenkjent, beregner det enkle glidende gjennomsnittet likningen: i begge tilfeller skyves et vindu langs signalet og elementene i vinduet oppsummeres. Så, prøv å gjøre det samme ved å bruke konvolusjon. Bruk følgende parametre: Ønsket utgang 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 oppsummeringen av de tre elementene i vinduet. Det er fordi under konvolusjonen glir vinduet langs, 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 for y. Utgangen skal deles med 3: Ved en formel som inkluderer divisjonen: Men ville det ikke være optimal å gjøre avdelingen under konvolusjonen. Her kommer ideen ved å omplassere ligningen: Så vi skal bruke følgende k-kjerne: På denne måten vil vi få ønsket utdata: Generelt: hvis vi ønsker å gjøre bevegelige gjennomsnitt ved konvolusjon som har en vindusstørrelse på w. vi skal bruke følgende k-kjerne: En enkel funksjon som gjør det bevegelige gjennomsnittet er: Et eksempelbruk er: 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 bunn til toppen av matrisen. Jeg har oppgitt koden min: Gitt følgende matrise a og maske: Jeg har prøvd å implementere conv kommandoen, men jeg mottar en feil. Her er conv kommandoen jeg har prøvd å bruke på 2. kolonne av matrise a: Utgangen jeg ønsker er gitt i følgende matrise: Hvis du har noen forslag, vil jeg sette stor pris på det. Takk for kolonne 2 i matrisen a, beregner jeg 3-dagers glidende gjennomsnitt som følger og plasserer resultatet i kolonne 4 i matrise a (jeg omdøpt matrise a som 39desiredOutput39 bare for illustrasjon). 3-dagers gjennomsnittet av 17, 14, 11 er 14 det 3-dagers gjennomsnittet på 14, 11, 8 er 11 3-dagers gjennomsnittet av 11, 8, 5 er 8 og 3-dagers gjennomsnittet på 8, 5, 2 er 5. Det er ingen verdi i de nederste 2 radene for fjerde kolonne fordi beregningen for 3-dagers glidende gjennomsnitt begynner nederst. Den 39 ugyldige 39-utgangen vil ikke bli vist før minst 17, 14 og 11. Forhåpentligvis er dette fornuftig ndash Aaron 12. juni kl 13:28 Generelt vil det hjelpe hvis du vil vise feilen. I dette tilfellet gjør du to ting feil: Først må fellingen din deles med tre (eller lengden på det bevegelige gjennomsnittet). For det andre, merk størrelsen på c. Du kan ikke bare passe inn i en. Den typiske måten å få et bevegelige gjennomsnitt på, ville være å bruke samme: men det ser ikke ut som du vil. I stedet blir du tvunget til å bruke et par linjer: Laget på onsdag 8. oktober 2008 20:04 Sist oppdatert torsdag 14. mars 2013 01:29 Skrevet av Batuhan Osmanoglu Hits: 41497 Flytende Gjennomsnitt I Matlab Ofte finner jeg meg selv i nød av gjennomsnittlig dataene jeg må redusere støyen litt. Jeg skrev noen funksjoner for å gjøre akkurat det jeg vil, men matlabs innebygd filterfunksjon fungerer også ganske bra. Her skriver jeg om 1D og 2D-gjennomsnittsdata. 1D filter kan realiseres ved hjelp av filterfunksjonen. Filterfunksjonen krever minst tre inngangsparametre: tellerkoeffisienten for filteret (b), nevnte koeffisient for filteret (a) og dataene (X) selvfølgelig. Et løpende gjennomsnittfilter kan defineres enkelt ved: For 2D-data kan vi bruke Matlabs filter2-funksjonen. For mer informasjon om hvordan filteret fungerer, kan du skrive: Her er en rask og skitten implementering av et 16 til 16 glidende gjennomsnittsfilter. Først må vi definere filteret. Siden alt vi vil ha er like bidrag fra alle naboer, kan vi bare bruke de funksjonene. Vi deler alt med 256 (1616) siden vi ikke vil endre det generelle nivået (amplitude) av signalet. For å bruke filteret kan vi bare si følgende Nedenfor er resultatene for fase av et SAR interferogram. I dette tilfellet er Range i Y-aksen, og Azimuth er kartlagt på X-aksen. Filtret var 4 piksler bredt i rekkevidde og 16 piksler bredt i Azimuth. Et enkelt flyttpunkts gjennomsnitt i Matlab Et enkelt flyttpunkts gjennomsnitt i MATLAB. Et glidende gjennomsnitt eller et rullende gjennomsnitt er en av de vanligste utjevningsteknikkene som brukes til å trekke ut et godt signal ut av et meget tilfeldig støyende signal. Denne teknikken brukes vanligvis til å se oppførselen til en funksjon eller et signal når de fysiske parametrene og miljøet har en feilaktig effekt på det målte signalet. Gitt en rekke tall og en fast delmengde, blir det første elementet i det bevegelige gjennomsnittet oppnådd ved å ta gjennomsnittet av den første faste delmengde av tallserien. Derefter blir delmengden endret ved å bytte fremover8221, det vil si, unntatt det første nummeret i serien og inkludere det neste nummeret som følger med den opprinnelige delmengden i serien. Dette skaper en ny delmengde av tall, som er i gjennomsnitt. Denne prosessen gjentas over hele dataserien. Plotlinjen som forbinder alle (faste) gjennomsnitt er det bevegelige gjennomsnittet. Et glidende gjennomsnitt er et sett med tall, som hver er gjennomsnittet av den tilsvarende delmengde av et større sett med datapunkter. Et glidende gjennomsnitt kan også bruke ujevne vekter for hver dataværdi i delmengden for å understreke bestemte verdier i delmengden. Den generelle teknikken innebærer å finne gjennomsnittet fra et like antall data på hver side av en sentral verdi. Dette sikrer at variasjoner i gjennomsnittet er justert med variasjonene i dataene, i stedet for å bli skiftet i tid. Det kan være noen anomalier når variasjonen ikke er ensartet også, men dette vil ikke bli diskutert her. Det kan være forskjellige typer bevegelige punktverdier som Kumulativ glidende gjennomsnitt Vektet glidende gjennomsnitt Eksponentielt glidende gjennomsnitt Modifisert glidende gjennomsnitt og Regressive glidende gjennomsnittlige metoder I dette innlegget har jeg vedlagt en MATLAB-kode for å gjøre et enkelt glidende gjennomsnitt. Denne koden kan brukes til å glatte et signal med litt fin funksjon, men med liten bakgrunnsstøy uten å gå på kompromiss med dataverdien. Men vær forsiktig på vinduets gjennomsnittsnivå for dine egne data.

No comments:

Post a Comment