Wednesday 23 August 2017

5 Punkts Glidande-Medelvärde Filter Matlab


Jag behöver beräkna ett glidande medelvärde över en dataserie, inom en för loop. Jag måste få det glidande genomsnittet över N9 dagar. Array Im computing in är 4 serier av 365 värden (M), som i sig är medelvärden för en annan uppsättning data. Jag vill räkna ut medelvärdena för mina data med glidande medelvärde i en plot. Jag googled lite om glidande medelvärden och conv kommandot och hittade något som jag försökte implementera i min kod .: Så i princip beräknar jag mitt medelvärde och plottar det med ett (fel) glidande medelvärde. Jag valde wts-värdet direkt utanför mathworks webbplats, så det är felaktigt. (källa: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mitt problem är dock att jag inte förstår vad det här är. Kan någon förklara om det har något att göra med värdena på värdena: det är ogiltigt i det här fallet. Alla värden är viktade samma. Och om jag gör det här helt fel, kan jag få lite hjälp med det mitt uppriktiga tack. frågade 23 sep 14 kl 19:05 Använda conv är ett utmärkt sätt att genomföra ett glidande medelvärde. I koden du använder är wts hur mycket du väger varje värde (som du gissade). summan av den vektorn ska alltid vara lika med en. Om du vill vikta varje värde jämnt och göra ett N-rörligt filter, så skulle du vilja göra. Använda det giltiga argumentet i conv resulterar i att få färre värden i Ms än du har i M. Använd samma om du inte har något emot effekterna av noll padding. Om du har signalbehandlingsverktygslådan kan du använda cconv om du vill prova ett cirkulärt glidande medelvärde. Något som om du borde läsa dokumentet för conv och cconv för mer information om du inte redan har det. Frequency Response of the Running Average Filter. Ett LTI-systemets frekvensrespons är DTFS för impulsresponsen. Impulsresponsen av ett L-provets rörliga medelvärde är Eftersom det rörliga genomsnittliga filtret är FIR, minskar frekvensresponsen till den ändliga summan. Vi kan använda den mycket användbara identiteten för att skriva frekvensresponsen som där vi har låt oss minus jomega. N 0 och M L minus 1. Vi kan vara intresserade av storleken på denna funktion för att bestämma vilka frekvenser som går igenom filtret obetydligt och vilka dämpas. Nedan är en plot av storleken på denna funktion för L 4 (röd), 8 (grön) och 16 (blå). Den horisontella axeln varierar från noll till pi radianer per prov. Observera att frekvensresponsen i alla tre fall har en lowpass-egenskap. En konstant komponent (nollfrekvens) i ingången passerar genom filtret obetydligt. Vissa högre frekvenser, såsom pi 2, elimineras helt av filtret. Men om avsikt var att designa ett lågpassfilter, har vi inte gjort det bra. Några av de högre frekvenserna dämpas endast med en faktor på cirka 110 (för 16-punkts glidande medelvärdet) eller 13 (för det fyrapunkts glidande medlet). Vi kan göra mycket bättre än det. Ovanstående plot skapades av följande Matlab-kod: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) iomega8)) (1-exp (-iomega)) H16 (116) (1-exp (-iomega16)) (1-exp (-iomega)) plot (omega, abs (H4) H16)) axel (0, pi, 0, 1) Copyright kopia 2000- - University of California, BerkeleyAs namnet antyder, arbetar det glidande medelfiltret genom att medelvärda ett antal punkter från ingångssignalen för att producera varje punkt i utsignalen . I ekvationsformen skrivs detta: När x är ingångssignalen är y utsignalen och M är antalet punkter i medelvärdet. Till exempel, i ett 5-punkts glidande medelfilter anges punkt 80 i utsignalen av: Figur 15-1 visar ett exempel på hur detta fungerar. Signalen i (a) är en puls begravd i slumpmässigt brus. I (b) och (c) minskar utjämningsverkan hos det glidande medelfiltret amplituden för det slumpmässiga bruset (bra), men reducerar även skärmens skarpa (dåliga). Av alla möjliga linjära filter som kan användas, ger det glidande medelvärdet det lägsta bruset för en given kantskärpa. Mängden brusreducering är lika med kvadratroten av antalet punkter i medelvärdet. Ett 100-punkts glidande medelfilter reducerar exempelvis bruset med en faktor på 10. För att förstå varför glidande medelvärde om den bästa lösningen, tänk oss att vi vill designa ett filter med en fast kantskärpa. Till exempel antar let8217s att vi fixar kantskärpan genom att ange att det finns elva poäng i stigningen av stegsvaret. Detta kräver att filterkärnan har elva poäng. Optimeringsfrågan är: hur väljer vi de elva värdena i filterkärnan för att minimera bruset på utsignalen Eftersom bruset vi försöker minska är slumpmässigt, ingen av ingångspunkterna är speciella var och en är lika bullriga som sin granne . Därför är det värdelöst att ge preferensbehandling till någon av ingångspunkterna genom att tilldela den en större koefficient i filterkärnan. Det lägsta bruset erhålls när alla insamlingsprover behandlas lika, dvs det glidande medelfiltret. (Senare i det här kapitlet visar vi att andra filter är väsentligen lika bra. Poängen är att inget filter är bättre än det enkla glidande medlet). Följande är ett hårdkodat 3-punktsviktat symmetriskt glidande medelfilter: Så mina antaganden om hur ett n-punktsviktssymmetriskt glidande medelfilter skulle fungera som följer: Mitt slutmål är att skapa ett viktat symmetriskt glidande medelfilter som har ett modulärt antal punkter över vilka det kan vara genomsnittligt. Den del som verkligen får mig är vikten själv, och medan jag är säker på att en nestad slinga av något slag skulle göra tricket, kan jag inte se hur jag ens skulle börja något sådant. Tack för att du har tagit dig tid att inspektera min fråga, vilken feedback som helst skulle uppskattas. Välj ditt land

No comments:

Post a Comment