Ekvationen Of Glidande-Medelvärde Filter


FIR-filter, IIR-filter och den linjära konstant-koefficientskillnadsekvationen Causal Moving Average (FIR) - filtret Weve diskuterade system där varje prov av utmatningen är en viktad summa av (vissa av) proven av ingången. Låt oss ta ett kausalt vägt sumssystem, där orsakssamband innebär att ett givet utprov endast beror på det aktuella ingångsprovet och andra ingångar tidigare i sekvensen. Varken linjära system i allmänhet, eller särskilt begränsade impulsresponssystem, måste vara kausal. Kausalitet är dock lämplig för en typ av analys som snart skulle undersökas. Om vi ​​symboliserar ingångarna som värden för en vektor x. och utgångarna som motsvarande värden för en vektor y. då kan ett sådant system skrivas som där b-värdena är quotweightsquot applicerad på nuvarande och tidigare inmatningssampler för att få det aktuella utgångsprovet. Vi kan tänka på uttrycket som en ekvation, med lika teckenbetydande lika, eller som en procedurinstruktion, med jämställdhetsbeteckningen. Låt skriva uttrycket för varje utmatningsprov som en MATLAB-slinga av uppdragsdeklarationer, där x är en N-längdsvektor av ingångsprover och b är en M-längdsvektor av vikter. För att hantera det speciella fallet i början lägger vi in ​​x i en längre vektor xhat vars första M-1-prov är noll. Vi kommer att skriva den vägda summeringen för varje y (n) som en inre produkt, och kommer att göra vissa manipuleringar av ingångarna (som omvänd b) för detta ändamål. Denna typ av system kallas ofta ett glidande medelfilter av uppenbara skäl. Från våra tidigare diskussioner bör det vara uppenbart att ett sådant system är linjärt och växelverkande. Naturligtvis skulle det vara mycket snabbare att använda MATLAB convolution funktionen conv () istället för vår mafilt (). I stället för att överväga de första M-1-proverna av ingången att vara noll, kan vi betrakta dem som de sista M-1-proverna. Detta är detsamma som att behandla inmatningen som periodisk. Använd väl cmafilt () som namnet på funktionen, en liten ändring av den tidigare mafilt () - funktionen. Vid bestämning av impulsresponsen hos ett system är det vanligen ingen skillnad mellan dessa två eftersom alla icke-initiala prover av ingången är noll: Eftersom ett system av detta slag är linjärt och skift-invariant vet vi att dess effekt på alla sinusoid kommer bara att skala och flytta den. Här är det viktigt att vi använder den cirkulära versionen Den cirkulärkonvolverade versionen skiftas och skalas lite, medan versionen med vanlig konvolvering snedvrids i början. Låt oss se vad exakt skalering och skiftning är med hjälp av en fft: Både ingång och utgång har endast amplitud vid frekvenserna 1 och -1, vilket är som det borde vara, eftersom ingången var en sinusoid och systemet var linjärt. Utgångsvärdena är större med ett förhållande av 10,62518 1,3281. Detta är förstärkningen av systemet. Vad sägs om fasen Vi behöver bara se var amplitude är noll: Inmatningen har en fas av pi2, som vi begärde. Utgångsfasen skiftas med ytterligare 1,0594 (med motsatt tecken på negativ frekvens), eller cirka 16 av en cykel till höger, som vi kan se på grafen. Nu kan vi prova en sinusoid med samma frekvens (1), men istället för amplitud 1 och fas pi2 kan vi prova amplitud 1,5 och fas 0. Vi vet att endast frekvens 1 och -1 kommer att ha en nollamplitude, så vi kan bara titta på dem: Återigen är amplitudförhållandet (15.937712.0000) 1.3281 - och för fas är det igen skiftat med 1.0594 Om dessa exempel är typiska kan vi förutsäga effekten av vårt system (impulsrespons .1 .2 .3 .4 .5) på någon sinusoid med frekvens 1 - amplituden ökas med en faktor 1,3281 och den (positiva frekvensen) - fasen kommer att flyttas med 1,0594. Vi kunde fortsätta att beräkna effekten av detta system på sinusoider av andra frekvenser med samma metoder. Men det finns ett mycket enklare sätt, och en som fastställer den allmänna punkten. Eftersom (cirkulär) konvolvering i tidsdomänen betyder multiplikation i frekvensdomänen följer det att med andra ord är DFT för impulsresponset förhållandet mellan DFT för utgången och DFT på ingången. I detta förhållande är DFT-koefficienterna komplexa tal. Eftersom abs (c1c2) abs (c1) abs (c2) för alla komplexa tal c1, c2, berättar denna ekvation oss att impulsresponsens amplitudspektrum alltid är förhållandet mellan utgångens amplitudspektrum och ingångens . När det gäller fasspektret, vinkeln (c1c2) vinkeln (c1) - vinkeln (c2) för alla c1, c2 (med förbehåll att faserna skiljer sig åt med n2pi anses vara lika). Därför är fasspektrumet för impulssvaret alltid skillnaden mellan fasspektra av utgången och ingången (med vilka korrigeringar med 2pi som behövs för att hålla resultatet mellan - pi och pi). Vi kan se faseffekterna tydligare om vi avvecklar representationen av fas, dvs om vi lägger till flera multiplar av 2pi efter behov för att minimera de hopp som produceras av den periodiska karaktären av vinkeln () - funktionen. Även om amplituden och fasen vanligtvis används för grafisk och jämn tabulär presentation, eftersom de är ett intuitivt sätt att tänka på effekterna av ett system på de olika frekvenskomponenterna av dess ingång, är de komplexa Fourier-koefficienterna mer användbara algebraiskt, eftersom de tillåter det enkla uttrycket för förhållandet Det allmänna tillvägagångssättet vi just har sett kommer att fungera med godtyckliga filter av den skissade typen, där varje utmatningsprov är en viktad summa av en uppsättning ingångsprover. Som nämnts tidigare kallas de ofta Finite Impulse Response-filter, eftersom impulssvaret är av finitstorlek, eller ibland Flytta genomsnittliga filter. Vi kan bestämma frekvensresponsegenskaperna hos ett sådant filter från FFT av dess impulsrespons, och vi kan även designa nya filter med önskade egenskaper av IFFT från en specifikation av frekvensresponsen. Autoregressiva (IIR) - filter Det skulle vara litet att ha namn på FIR-filter om det inte fanns några andra slag att skilja dem från, och så de som har studerat pragmatik kommer inte att förvåna sig för att lära sig att det verkligen finns ett annat stort slag av linjärt tidsinvarianskt filter. Dessa filter kallas ibland rekursiva eftersom värdet av tidigare utdata (liksom tidigare ingångar) betyder att även om algoritmerna generellt skrivs med iterativa konstruktioner. De kallas också Infinite Impulse Response (IIR) - filter, eftersom deras svar på impulser i allmänhet fortsätter för alltid. De kallas även ibland autogegrativa filter, eftersom koefficienterna kan anses som resultat av att linjär regression utförs för att uttrycka signalvärden som en funktion av tidigare signalvärden. Förhållandet mellan FIR - och IIR-filter kan tydligt ses i en linjär konstant-koefficientskillnadsekvation, dvs att ange en viktad summa av utgångar som är lika med en viktad summa av ingångar. Detta är som ekvationen som vi gav tidigare för orsakssystemet FIR-filter, förutom att förutom den viktade summan av ingångar, har vi också en viktad summa av utgångar. Om vi ​​vill tänka på detta som ett förfarande för att generera produktionsprover behöver vi omordna ekvationen för att få ett uttryck för det aktuella utgångsprovet y (n), Adoptera konventionen att a (1) 1 (t. ex. genom att skala andra som och bs) kan vi bli av med 1a (1) termen: y (n) b (1) x (n) b (2) x (n-1). b (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Om alla a (n) andra än a (1) är noll, minskar detta till vår gamla vän det kausal FIR-filtret. Detta är det allmänna fallet med ett (kausal) LTI-filter och implementeras av MATLAB-funktionsfiltret. Låt oss se på fallet där b-koefficienterna utom b (1) är noll (i stället för FIR-fallet, där a (n) är noll): I det här fallet beräknas det aktuella utgångsprovet y (n) som en viktad kombination av det aktuella ingångsprovet x (n) och de tidigare utgångsproverna y (n-1), y (n-2) osv. För att få en uppfattning om vad som händer med sådana filter kan vi börja med fallet där Det vill säga det aktuella utgångsprovet är summan av det aktuella ingångsprovet och hälften av det föregående utgångsprovet. Tja, ta en insatsimpuls genom några steg, en åt gången. Det borde vara tydligt vid denna punkt att vi enkelt kan skriva ett uttryck för nth-utmatningsprovvärdet: det är bara (Om MATLAB räknas från 0, skulle det bara vara .5n). Eftersom det vi beräknar är systemets impulsrespons, har vi visat genom exempel att impulsresponset faktiskt kan få oändligt många icke-nollprover. För att implementera detta triviella första ordningens filter i MATLAB kunde vi använda filter. Samtalet kommer att se ut så här: och resultatet är: Är denna verksamhet verkligen fortfarande linjär? Vi kan se på detta empiriskt: För en mer allmän metod, överväga värdet av ett utmatningsprov y (n). Genom successiv substitution kan vi skriva detta eftersom det här är precis som vår gamla vän sammanfogningsformen för ett FIR-filter, med impulssvaret från uttrycket .5k. och längden på impulssvaret är oändligt. De samma argumenten som vi brukade visa att FIR-filter var linjära kommer nu att tillämpas här. Hittills kan det verka som mycket väsen om inte mycket. Vad är den här hela undersökningsgruppen bra för Tja, svara på den här frågan i steg, med ett exempel. Det är inte en stor överraskning att vi kan beräkna en samplad exponentiell genom rekursiv multiplikation. Låt oss titta på ett rekursivt filter som gör något mindre uppenbart. Den här gången gör det bra till ett andra ordningens filter, så att samtalet till filtret kommer att vara av formen. Låt oss ange den andra utmatningskoefficienten a2 till -2cos (2pi40) och den tredje utgångskoefficienten a3 till 1 och titta på impulsen svar. Inte särskilt användbar som ett filter, men det genererar en samplad sinusvåg (från en impuls) med tre multiplikat-adds per prov. För att förstå hur och varför det gör det, och hur rekursiva filter kan utformas och analyseras i Det mer generella fallet måste vi gå tillbaka och ta en titt på några andra egenskaper av komplexa tal, på vägen till att förstå z-transformen. Ett enkelt rörligt medelvärde är ett medelvärde av data beräknad över en tidsperiod. Det rörliga genomsnittet är den mest populära prisindikatorn som används i tekniska analyser. Detta medel kan användas med alla priser inklusive Hi, Low, Open eller Close, och kan även tillämpas på andra indikatorer. Ett glidande medel släpper ut en dataserie, vilket är mycket viktigt på en volatil marknad, eftersom det bidrar till att identifiera betydande trender. Dundas Diagram för ASP har fyra typer av rörliga medelvärden inklusive Simple, Exponential. Trekantiga. och vägd. Den viktigaste skillnaden mellan ovanstående glidande medelvärden är hur de viktar sina datapoäng. Vi rekommenderar att du läser Använda finansiella formulär innan du fortsätter. Använda Financial Formulas ger en detaljerad förklaring om hur man använder formuleringar och förklarar också de olika alternativen som är tillgängliga för dig när du använder en formel. Ett linjediagram är ett bra val när du visar ett enkelt glidande medelvärde. Finansiell tolkning: Det rörliga genomsnittet används för att jämföra en säkerhetspris med sitt glidande medelvärde. Det viktigaste elementet som används vid beräkning av glidande medelvärde är en tidsperiod, som borde vara lika med den observerade marknadscykeln. Det glidande medelvärdet är en nedslagsindikator och kommer alltid att ligga bakom priset. När priset följer en trend är det rörliga genomsnittet mycket nära säkerhetspriset. När ett pris går upp, kommer det rörliga genomsnittet troligen att stanna nere på grund av de historiska dataens inflytande. Beräkning: Det rörliga genomsnittet beräknas med följande formel: I föregående formel representerar n-värdet en tidsperiod. De vanligaste tidsperioderna är: 10 dagar, 50 dagar och 200 dagar. Ett glidande medel flyttas eftersom varje äldsta datapunkt läggs till, den äldsta datapunkten släpps. Ett enkelt glidande medel ger samma vikt till varje datapunktspris. I det här exemplet visas hur man beräknar ett 20-dagars rörande medelvärde med formel-metoden. Flyttande medelfilter för trafikdata I det här exemplet visas hur man släpper trafikflödesdata med ett glidande medelfilter med ett 4-timmars glidfönster. Följande skillnadsekvation beskriver ett filter som medeltar den aktuella timmen och de tre föregående timmarna av data. Importera trafikdata och tilldela den första kolumnen av fordonstäkter till vektorn x. Skapa filterkoefficientvektorerna. Beräkna det 4-timmars glidande medlet av data och avbilda både originaldata och filtrerade data. MATLAB och Simulink är registrerade varumärken som tillhör The MathWorks, Inc. Vänligen se mathworkstrademarks för en lista över andra varumärken som ägs av The MathWorks, Inc. Övriga produkt - eller varumärken är varumärken eller registrerade varumärken som tillhör respektive ägare. Välj din CountryThe Scientist and Engineers Guide till Digital Signal Processing av Steven W. Smith, Ph. D. Som namnet antyder verkar 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: Var är ingångssignalen, utsignalen och M är antalet punkter i medelvärdet. Till exempel, i ett 5-punkts glidande medelfilter, anges punkt 80 i utsignalen av: Som ett alternativ kan gruppen av punkter från ingångssignalen väljas symmetriskt runt utgångspunkten: Detta motsvarar att ändra summeringen i ekvation . 15-1 från: j 0 till M-1, till: j - (M-1) 2 till (M-1) 2. Till exempel, i ett 10-punkts glidande medelfilter, indexet, j. kan springa från 0 till 11 (ensidans medelvärde) eller -5 till 5 (symmetrisk medelvärde). Symmetrisk medelvärde kräver att M är ett udda tal. Programmeringen är lite lättare med punkterna på endast en sida, men det ger en relativ växling mellan ingångs - och utsignalen. Du bör känna igen att det glidande medelfiltret är en konvolvering med en mycket enkel filterkärna. Ett 5-punktsfilter har till exempel filterkärnan: 82300, 0, 15, 15, 15, 15, 15, 0, 08230. Dvs. det rörliga medelfiltret är en konvolvering av ingångssignalen med en rektangulär puls som har en område av en. Tabell 15-1 visar ett program för att genomföra det glidande medelfiltret.

Comments