Saturday, 21 October 2017

Med Bevegelig Gjennomsnitt Matlab Ved Hjelp Av Filter


Laget på onsdag 08 oktober 2008 20:04 Sist oppdatert torsdag 14. mars 2013 01:29 Skrevet av Batuhan Osmanoglu Hits: 41398 Flytende gjennomsnitt I Matlab Ofte finner jeg meg selv i behov av å gjennomsnittsgjøre dataene jeg må redusere støyen litt bit. Jeg skrev noen funksjoner for å gjøre akkurat det jeg vil, men matlabs innebygd filterfunksjon fungerer også bra 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. Filteret var 4 piksler bredt i rekkevidde og 16 piksler bredt i Azimuth. Moving Average Filter (MA filter) Loading. Det bevegelige gjennomsnittsfilteret er et enkelt Low Pass FIR-filter (Finite Impulse Response) som vanligvis brukes til å utjevne en rekke samplede datasignaler. Det tar M prøver av inngang av gangen og tar gjennomsnittet av disse M-prøvene og produserer et enkelt utgangspunkt. Det er en veldig enkel LPF-struktur (Low Pass Filter) som er nyttig for forskere og ingeniører å filtrere uønsket støyende komponent fra de tiltenkte dataene. Når filterlengden øker (parameteren M), øker utgangens glatthet, mens de skarpe overgangene i dataene blir stadig stumpere. Dette innebærer at dette filteret har utmerket tidsdomene respons, men en dårlig frekvensrespons. MA-filteret utfører tre viktige funksjoner: 1) Det tar M-inngangspunkter, beregner gjennomsnittet av disse M-punktene og produserer et enkelt utgangspunkt 2) På grunn av beregnede beregninger. filteret introduserer en bestemt mengde forsinkelse 3) Filteret fungerer som et lavpassfilter (med dårlig frekvensdomenerespons og et godt domenerespons). Matlab-kode: Følgende matlab-kode simulerer tidsdomæneresponsen til et M-punkts-flytende gjennomsnittfilter, og viser også frekvensresponsen for forskjellige filterlengder. Time Domain Response: På den første plottet har vi inngangen som går inn i det bevegelige gjennomsnittsfilteret. Inngangen er støyende og målet vårt er å redusere støyen. Neste figur er utgangsresponsen til et 3-punkts Moving Average-filter. Det kan utledes fra figuren at 3-punkts Flytende Gjennomsnitt-filteret ikke har gjort mye for å filtrere ut støyen. Vi øker filterkranene til 51 poeng, og vi kan se at støyen i utgangen har redusert mye, som er avbildet i neste figur. Vi øker kranen videre til 101 og 501, og vi kan observere at selv om støyen er nesten null, blir overgangene slått ut drastisk (observere skråningen på hver side av signalet og sammenligne dem med den ideelle murveggovergangen i vår innsats). Frekvensrespons: Fra frekvensresponsen kan det hevdes at avrullingen er veldig treg og stoppbåndet demper er ikke bra. Gitt dette stoppbåndet demping, klart, det bevegelige gjennomsnittlige filteret kan ikke skille ett bånd med frekvenser fra en annen. Som vi vet at en god ytelse i tidsdomene resulterer i dårlig ytelse i frekvensdomene, og omvendt. Kort sagt er det bevegelige gjennomsnittet et eksepsjonelt godt utjevningsfilter (handlingen i tidsdomene), men et uvanlig dårlig lavpassfilter (handlingen i frekvensdomenet) Eksterne lenker: Anbefalte bøker: Primær sidebjelMåle Gjennomsnittlig Funksjon ResultatmovendeMen (data , vindu, dim, alternativ) beregner et sentrert glidende gjennomsnitt av datamatrisedataene ved hjelp av en vindusstørrelse angitt i vinduet i dim dimensjon, ved hjelp av algoritmen spesifisert i alternativet. Dim og valg er valgfrie innganger og vil standard til 1. Dim og valgfrie valgfrie innganger kan hoppes over helt eller kan erstattes med a. For eksempel vil flyttemåte (data, vindu) gi de samme resultatene som movingmean (data, vindu, 1,1) eller movingmean (data, vindu ,, 1). Inngangsdataformatstørrelsen og dimensjonen er bare begrenset av maksimal matrisestørrelse for plattformen. Vinduet må være et helt tall og skal være rart. Hvis vinduet er jevnt, er det avrundet til neste lavere odde tall. Funksjonen beregner det bevegelige gjennomsnittet som inkorporerer et senterpunkt og (vindu 1) 2 elementer før og etter i den angitte dimensjonen. Ved kantene av matrisen reduseres antall elementer før eller etter slik at den faktiske vindustørrelsen er mindre enn det angitte vinduet. Funksjonen er delt inn i to deler, en 1d-2d-algoritme og en 3d-algoritme. Dette ble gjort for å optimalisere løsningshastigheten, spesielt i mindre matriser (dvs. 1000 x 1). Videre er flere forskjellige algoritmer til 1d-2d og 3d-problemet gitt som i visse tilfeller er standardalgoritmen ikke den raskeste. Dette skjer vanligvis når matrisen er svært bred (dvs. 100 x 100000 eller 10 x 1000 x 1000) og det bevegelige gjennomsnittet beregnes i kortere dimensjon. Størrelsen der standardalgoritmen er tregere vil avhenge av datamaskinen. MATLAB 7.8 (R2009a) Merker for denne filen Vennligst logg inn for å tagge filer. Vennligst logg inn for å legge til en kommentar eller vurdering. Kommentarer og rangeringer (8) Funksjonen omhandler ender ved å klippe den bakre eller ledende delen av vinduet og overgang til et ledende eller etterfølgende glidende gjennomsnitt i stedet for en sentrert. For å gå med eksemplet du ga i kommentaren din hvis vinduets størrelse er 3, da i midten av 1, blir dataene fra punktene 1 og 2 ved et senter på 2 poeng 1, 2 og 3 i gjennomsnitt på et midtpunkt på 9 poeng 8, 9 og 10 er i gjennomsnitt og i et senter på 10 (la oss anta at vektoren har 10 oppføringer) er poeng 9 og 10 i gjennomsnitt. Hvordan går det med å håndtere endene Skal det begynne med en vindustørrelse som bare omfatter punkt 1 ved 1, deretter 3 poeng ved punkt 2, og øker i vinduets størrelse til vinduets størrelse er det som er angitt i funksjonsinngangen Takk. Hyggelig og enkel. Takk skal du ha. God jobb Veldig nyttig som Stephan Wolf sa. Bare det jeg var ute etter. Sentrert glidende gjennomsnitt som kan fungere i en tomt over hele bredden, uten å måtte lete etter filterstørrelsen på filteret og flytte begynnelsen. Great Accelerating tempoet i engineering og vitenskap MathWorks er den ledende utvikleren av matematisk databehandling programvare for ingeniører og forskere.

No comments:

Post a Comment