Friday 24 November 2017

Simulering of an m punkt glidande medelvärde filter


Flyttande medelfilter (MA filter) Laddar. Det rörliga genomsnittliga filtret är ett enkelt filter med lågt pass FIR (Finite Impulse Response) som vanligtvis används för att utjämna en rad samplade datasignaler. Det tar M prover av ingång i taget och tar medeltalet av de M-proverna och producerar en enda utgångspunkt. Det är en mycket enkel LPF (Low Pass Filter) struktur som kommer till nytta för forskare och ingenjörer att filtrera oönskade bullriga komponenter från de avsedda data. När filterlängden ökar (parametern M) ökar utjämnets jämnhet, medan de skarpa övergångarna i data görs alltmer stumma. Detta innebär att detta filter har utmärkt tidsdomänsvar men ett dåligt frekvenssvar. MA-filtret utför tre viktiga funktioner: 1) Det tar M-ingångspunkter, beräknar medelvärdet av de M-punkterna och producerar en enda utgångspunkt 2) På grund av beräknade beräkningskalkyler. filtret introducerar en bestämd mängd fördröjning 3) Filtret fungerar som ett lågpassfilter (med dåligt frekvensdomänsvar och ett bra domänsvar). Matlab-kod: Efter matlab-kod simuleras tidsdomänsvaret för ett M-punkts rörande medelfilter och avbildar även frekvensresponsen för olika filterlängder. Tid Domain Response: På den första tomten har vi inmatningen som går in i det glidande medelfiltret. Inmatningen är bullrig och vårt mål är att minska bruset. Nästa siffra är utgångsvaret för ett 3-punkts rörande medelfilter. Det kan härledas från figuren att 3-punkts rörande medelfilter inte har gjort mycket för att filtrera ut bruset. Vi ökar filterkranarna till 51-punkter och vi kan se att bruset i utmatningen har minskat mycket, vilket avbildas i nästa bild. Vi ökar kranarna vidare till 101 och 501 och vi kan observera att även om bullret är nästan noll övergår övergångarna drastiskt (observera lutningen på vardera sidan av signalen och jämföra dem med den ideala tegelväggsövergången i vår ingång). Frekvensrespons: Från frekvenssvaret kan man hävda att avrullningen är väldigt långsam och stoppbandets dämpning inte är bra. Med tanke på detta stoppband dämpning, klart, det rörliga genomsnittliga filtret kan inte separera ett band med frekvenser från en annan. Som vi vet att en bra prestanda i tidsdomänen leder till dålig prestanda i frekvensdomänen och vice versa. Kort sagt är det rörliga genomsnittet ett exceptionellt bra utjämningsfilter (åtgärden i tidsdomänen), men ett exceptionellt dåligt lågpassfilter (åtgärden i frekvensdomänen) Externa länkar: Rekommenderade böcker: Primär SidebarThesystemofeq 213isalsoknown som ett glidande medelvärde - pointsmoothingFIRplusmnlter. ThesystemofEq. (2.13) isalsoknown som ett glidande medelvärde. Vi illustrerar dess användning i plusmnltering högfrekvenskomponenter från en signal som består av en summa av flera sinusformade signaler. Denna förhandsvisning har avsiktligt suddiga avsnitt. Registrera dig för att se hela versionen. 20 Kapitel 2 Bull Diskretidssystem i Time Domain Programmet P21 Simulering av ett M-punkts Moving Average Filter Generera ingångssignalen n 0: 100 s1 cos (2pi0.05n) En lågfrekvent sinusoid s2 cos (2pi0,47n) A högfrekvent sinusoid x s1s2 Genomförande av det rörliga genomsnittsfiltret M-inmatning (rsquoDesired längd av filteret rsquo) num ene (1, M) y filter (num, 1, x) M Visa ingångs - och utsignalerna CLF-subplot (2,2 1) plot (n, s1) axel (0, 100, -2, 2) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoSignal 1rsquo) subplot (2,2,2) plot (n, s2) axel (0, 100, -2, 2) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoSignal 2rsquo) subplot (2,2,3) plot (n, x) axel (0, 100, -2, 2) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoInput Signalrsquo) subplot (2,2,4) plot (n, y) axel (0, 100, -2, 2) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoOutput Signalrsquo) axel Frågor: Q2.1 Kör ovanstående program m för M2 att generera utsignalen med xn s1n s2n som ingången. Vilken komponent av ingången xn är undertryckt av det diskreta tidssystemet som simuleras av detta program Q2.2 Om LTI-systemet ändras från yn 0,5 (xn xn - 1) till yn 0,5 (xn - xn - 1). vad skulle det ha på effekten på ingången xn s1n s2n. Q2.3 Kör Program P2 1 för andra värden på Flter längd M. och olika värden på frekvenserna hos de sinusformade signalerna s1n och s2n. Kommentera dina resultat. 2.4 Simulering av diskretidsystem 21 Q2.4 Ändra program P2 1 för att använda en sinusformad signal med svepfrekvens med längd 101, en minsta frekvens 0. och en maximal frekvens 0,5 som ingångssignal (se Program P1 7) och beräkna utsignal. Kan du förklara resultaten från frågorna Q2.1 och Q2.2 från svaret på detta system till den svepade frekvenssignalen. Projekt 2.2 Ett enkelt icke-linjärt diskret tidssystem (Valfritt) Låt y n vara en signal som genereras genom att tillämpa följande olinjära operationer på en signal x n. ynxn 2 minus xn minus 1 xn 1. (2.14) I det här projektet genererar du utgången yn för ovanstående system för olika typer av ingången xn med Program P2 2. Följande MATLAB-program kan användas för att generera en ingångssignal xn sammansatt av en summa av två sinusformiga sekvenser och simulerar LTI-systemet av Eq. (2.12) för att generera yn. Program P22 Generera en sinusformad ingångssignal clf n 0: 200 x cos (2pi0.05n) Beräkna utsignalen x1 x 0 x1n xn1 x2 0 x 0 x2n xn x3 0 0 x x3n xn-1 y x2.x2 - x1. x3 yy (2: 202) Plot inmatning och utsignal subplot (2,1,1) plot (n, x) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoInput Signalrsquo) subplot (2,1,2) plot (n, y) xlabel (rsquoTime index nrsquo) ylabel (rsquoAmplitudersquo) titel (rsquoOutput signalrsquo) Frågor: Q2.5 Använd sinusformiga signaler med olika frekvenser som ingångssignaler och beräkna utsignalen för varje ingång. Hur beror utsignalerna på frekvenserna på ingångssignalen Kan du verifiera din observation matematiskt Denna förhandsvisning har avsiktligt suddiga avsnitt. Anmäl dig för att se den fullständiga versionen. Svarresponsen för det löpande medelfiltret Frekvensresponsen hos ett LTI-system är DTFS för impulsresponset. Impulssvaret för ett L-provrörande medelvärde är Eftersom det rörliga genomsnittsfiltret är FIR, frekvensrespons minskar till det ä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 sträcker sig från noll till pi radianer per prov. Observera att frekvensresponsen i alla tre fallen 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å ca 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, Berkeley 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å vill du göra Att 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 Du borde läsa conv and cconv dokumentationen för mer information om du inte redan har. Du kan använda filter för att hitta ett löpande medelvärde utan att använda en för loop. I det här exemplet hittar du löpande medelvärdet för en vektor med 16 element, med en fönsterstorlek på 5. 2) Slät som en del av kurvanpassningsverktygslådan (som är tillgänglig i de flesta fall) yy släpper (y) data i kolumnvektorn y med ett glidande medelfilter. Resultat returneras i kolumnvektorn yy. Standardspänningen för det glidande medlet är 5.

No comments:

Post a Comment