Exponentiellt filter Denna sida beskriver exponentiell filtrering, det enklaste och mest populära filtret. Detta är en del av avsnittet Filtrering som ingår i En guide till feldetektering och diagnos. Översikt, tidskonstant och analog ekvivalent Det enklaste filtret är exponentiellt filter. Den har bara en inställningsparameter (annat än provintervallet). Det kräver att endast en variabel lagras - den tidigare utgången. Det är ett IIR (autoregressivt) filter - effekterna av en ingångsändring sönderfaller exponentialt tills gränserna för bildskärmar eller datorräkningstest döljer det. I olika discipliner benämns användningen av detta filter även som 8220exponentiell utjämning8221. I vissa discipliner, såsom investeringsanalys, kallas exponentiellt filter en 8220Exponentivt vägd rörlig Average8221 (EWMA), eller bara 8220Exponential Moving Average8221 (EMA). Detta missbrukar den traditionella ARMA 8220moving average8221-terminologin för tidsserieanalys, eftersom det inte finns någon inmatningshistorik som används - bara den aktuella ingången. Det är den diskreta tidsekvivalenten för 8220 första ordningens lag8221 som vanligtvis används i analog modellering av kontinuerliga styrsystem. I elektriska kretsar är ett RC-filter (filter med ett motstånd och en kondensator) en första ordningens fördröjning. När man betonar analogi med analoga kretsar, är enstämmande parameter 8220time constant8221, vanligtvis skrivet som små bokstäver grekiska bokstaven Tau (). Faktum är att värdena vid de enskilda provtiderna exakt matchar den ekvivalenta kontinuerliga tidsfördröjningen med samma tidskonstant. Förhållandet mellan det digitala genomförandet och tidskonstanten visas i ekvationerna nedan. Exponentiella filterekvationer och initialisering Det exponentiella filtret är en viktad kombination av föregående uppskattning (utgång) med den nyaste inmatningsdata, med summan av vikterna lika med 1 så att utmatningen matchar ingången vid steady state. Följande filternotering har redan införts: y (k) ay (k-1) (1-a) x (k) där x (k) är den råa ingången vid tidssteget ky (k) är den filtrerade utgången vid tidsträcka ka Är en konstant mellan 0 och 1, normalt mellan 0,8 och 0,99. (A-1) eller a kallas ibland 8220smonteringskonstanten8221. För system med ett bestämt tidssteg T mellan prover beräknas konstanten 8220a8221 och lagras endast för bekvämlighet när applikationsutvecklaren anger ett nytt värde av den önskade tidskonstanten. För system med dataprovtagning vid oregelbundna intervall måste exponentiell funktion ovan användas med varje tidsteg, där T är tiden sedan föregående prov. Filterutmatningen initieras vanligtvis för att matcha den första ingången. När tidskonstanten närmar sig 0, a går till noll, så det finns ingen filtrering 8211 utmatningen är lika med den nya ingången. Eftersom tidskonstanten blir väldigt stor, ett tillvägagångssätt 1, så att ny ingång nästan ignoreras 8211 mycket tung filtrering. Filterekvationen ovan kan omarrangeras till följande prediktorkorrigeringsekvivalent: Denna blankett gör det mer uppenbart att variabelestimationen (filterets utmatning) förutses som oförändrad från föregående uppskattning y (k-1) plus en korrigeringsperiod baserad på På den oväntade 8220innovationen8221 - skillnaden mellan den nya ingången x (k) och förutsägelsen y (k-1). Denna form är också resultatet av att det exponentiella filtret härledas som ett enkelt speciellt fall av ett Kalman-filter. Vilken är den optimala lösningen på ett uppskattningsproblem med en viss uppsättning antaganden. Stegsvar Ett sätt att visualisera driften av det exponentiella filtret är att plotta sitt svar över tiden till en stegingång. Det vill säga från och med filteringången och utgången vid 0, ändras ingångsvärdet plötsligt till 1. De resulterande värdena är plottade nedan: I ovanstående diagram delas tiden upp med filtertidskonstanten tau så att du lättare kan förutsäga Resultaten för vilken tidsperiod som helst, för varje värde av filtertidskonstanten. Efter en tid som är lika med tidskonstanten stiger filterutgången till 63,21 av sitt slutvärde. Efter en tid som motsvarar 2 tidskonstanter stiger värdet till 86,47 av sitt slutvärde. Utgångarna efter tider lika med 3,4 och 5 tidskonstanter är 95,02, 98,17 och 99,33 av det slutliga värdet. Eftersom filtret är linjärt innebär det att dessa procentandelar kan användas för någon storlek av stegändringen, inte bara för värdet av 1 som används här. Trots att stegsvaret i teorin tar en oändlig tid, från en praktisk synpunkt, tänk på det exponentiella filtret som 98 till 99 8220done8221 svarar efter en tid som motsvarar 4 till 5 filtertidskonstanter. Variationer i det exponentiella filtret Det finns en variation av det exponentiella filtret som kallas ett 8220-icke-linjärt exponentiellt filter8221 Weber, 1980. Avsett att tungt filtrera buller inom en viss amplitude 8220typical8221, men svara sedan snabbare på större förändringar. Copyright 2010 - 2013, Greg Stanley Dela den här sidan: FIR-filter, IIR-filter och den linjära konstant-koefficientskillnadsekvationen Causal Moving Average (FIR) - filter Vi har diskuterat system där varje prov av produktionen är en viktad summa av (vissa av De) proverna av ingången. Låt oss ta ett kausalt vägt sumssystem, där orsakssamband betyder 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 skulle undersöka snart. Om vi symboliserar ingångarna som värden för en vektor x. Och utsignalerna 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 jämställdhetsbeteckningen betyder 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-prover ä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 skift-invariant. 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 funktionens namn, en liten ändring av den tidigare mafilt () - funktionen. Vid bestämning av ett systems impulsrespons är det vanligtvis 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 hur exakt skalan och skiftningen ä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å den negativa frekvensen) 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 nollamplitud, så vi kan bara titta Vid 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 impulssvaret 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 amplitudspektrumet för utsignalen och den hos ingången . 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 lika). Därför kommer fasspänningsfas spektret alltid att vara skillnaden mellan fasspektra av utgången och ingången (med vilka korrigeringar 2pi 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 i 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 ändlig storlek, 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 tidsinvariant filter. Dessa filter kallas ibland rekursiva eftersom värdet av tidigare utdata (liksom tidigare ingångar) är viktiga, ä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 den ekvation som vi gav tidigare för orsakssystemet FIR, förutom att förutom den viktiga 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 ett par steg, en i taget. Det borde vara klart 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 titta empiriskt på det här: För en mer allmän inställning, ö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 sammanfallsuppsättningsformen 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 tyckas 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. Denna gång gör det väl 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-adder 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å det z transformerade exponentialt viktiga glidande medlet. Du kan tänka på din klocklista som trådar som du har bokmärkt. Du kan lägga till taggar, författare, trådar och till och med sökresultat till din bevakningslista. På så sätt kan du enkelt hålla reda på ämnen som du är intresserad av. För att se din tittellista, klicka på quotMy Newsreaderquot-länken. Om du vill lägga till objekt i din bevakningslista klickar du på citadeln för att titta på listotiklänk längst ner på en sida. Hur lägger jag till ett objekt i min vaktlista För att lägga till sökkriterier i din vaktlista, sök efter önskad term i sökrutan. Klicka på citatetLägg till den här sökningen i min larmlista-länk på sökresultatsidan. Du kan också lägga till en tagg i din bevakningslista genom att leta efter taggen med direktivet quottag: tagnamequot där tagname är namnet på den tagg du vill titta på. För att lägga till en författare till din bevakningslista, gå till författarens profilsida och klicka på quotAddjär den här författaren till min watch listquot-länk högst upp på sidan. Du kan också lägga till en författare till din bevakningslista genom att gå till en tråd som författaren har publicerat och klicka på quotAdd denna författare till min watch listquot-länk. Du kommer att bli underrättad när författaren gör ett inlägg. Om du vill lägga till en tråd i din bevakningslista går du till trådsidan och klickar på citatet Lägg till den här tråden i min larmlista-länk högst upp på sidan. Om nyhetsgrupper, nyhetsläsare och MATLAB Central Vad är nyhetsgrupper Nyhetsgrupperna är ett globalt forum som är öppet för alla. Nyhetsgrupper används för att diskutera ett stort antal ämnen, göra meddelanden och handelsfiler. Diskussionerna är gängade eller grupperade på ett sätt som låter dig läsa ett upplagd meddelande och alla dess svar i kronologisk ordning. Detta gör det enkelt att följa tråden i samtalet och för att se vad du redan har sagt innan du skickar ditt eget svar eller gör ett nytt inlägg. Nyhetsgruppens innehåll distribueras av servrar som är värd av olika organisationer på Internet. Meddelanden utbyts och hanteras med hjälp av öppna standardprotokoll. Ingen enskild enhet ldquoownsrdquo newsgroups. Det finns tusentals nyhetsgrupper som varje adresserar ett enda ämne eller intresseområde. MATLAB Central Newsreader inlägg och visar meddelanden i comp. soft-sys. matlab-nyhetsgruppen. Hur läser eller postar jag till nyhetsgrupperna Du kan använda den integrerade nyhetsläsaren på MATLAB Central webbplats för att läsa och skicka meddelanden i den här nyhetsgruppen. MATLAB Central är värd MathWorks. Meddelanden som skickas via MATLAB Central Newsreader ses av alla som använder nyhetsgrupper, oavsett hur de kommer åt nyhetsgrupperna. Det finns flera fördelar med att använda MATLAB Central. Ett konto Ditt MATLAB Central-konto är knutet till ditt MathWorks-konto för enkel åtkomst. Använd E-postadressen till ditt val MATLAB Central Newsreader gör att du kan definiera en alternativ e-postadress som din postadress, för att undvika röran i din primära brevlåda och minska spam. Spam Control De flesta nyhetsgruppspampp filtreras ut av MATLAB Central Newsreader. Taggningsmeddelanden kan märkas med en relevant etikett av någon inloggad användare. Taggar kan användas som nyckelord för att hitta specifika filer av intresse eller som ett sätt att kategorisera dina bokmärkta inlägg. Du kan välja att låta andra se dina taggar, och du kan visa eller söka otherrsquo-taggar såväl som de i samhället som helhet. Tagging ger ett sätt att se både de stora trenderna och de mindre, mer dunkla idéerna och applikationerna. Vaktlistor Med inställning av vallistor kan du få meddelande om uppdateringar gjorda till inlägg som valts av författare, tråd eller någon sökvariabel. Meddelandena om bevakningslistan kan skickas via e-post (dagligen digest eller omedelbar), visas i My Newsreader, eller skickas via RSS-flöde. Andra sätt att komma åt nyhetsgrupperna Använd en nyhetsläsare via din skola, arbetsgivare eller internetleverantör Betala för nyhetsgruppen tillgång från en kommersiell leverantör Använd Google Groups Mathforum. org ger en nyhetsläsare med tillgång till comp. soft sys. matlab-nyhetsgruppen Kör din egen server. För typiska instruktioner, se: slyckng. phppage2 Välj ditt landsdokumentation I det här exemplet visas hur man använder rörliga genomsnittsfilter och resampling för att isolera effekten av periodiska komponenter på tiden av timmen vid timme temperaturavläsningar, samt ta bort oönskat linjeljud från en öppen - spänningsmätning. Exemplet visar också hur man släpper nivån på en klocksignal samtidigt som du håller kanterna genom att använda ett medianfilter. Exemplet visar också hur man använder ett Hampel-filter för att ta bort stora avvikare. Motivationsutjämning är hur vi upptäcker viktiga mönster i våra data medan vi lämnar ut saker som är oväsentliga (dvs brus). Vi använder filtrering för att utföra denna utjämning. Målet med utjämning är att producera långsamma värdeförändringar så att det blir lättare att se trender i våra data. Ibland kan du, när du granskar inmatningsdata, glömma data för att se en trend i signalen. I vårt exempel har vi en uppsättning temperaturavläsningar i Celsius varje timme på Logans flygplats för hela januari månad 2011. Observera att vi visuellt kan se vilken effekt dagtid har på temperaturmätningarna. Om du bara är intresserad av den dagliga temperaturvariationen under månaden, bidrar de timliga fluktuationerna bara med ljud, vilket kan göra det svårt att skilja de dagliga variationerna. För att ta bort effekten av tiden på dagen skulle vi nu vilja släta våra data genom att använda ett glidande medelfilter. Ett rörligt medelfilter I sin enklaste form tar ett glidande medelfilter med längd N genomsnittet av varje N på varandra följande prover av vågformen. För att tillämpa ett glidande medelfilter till varje datapunkt konstruerar vi våra koefficienter i vårt filter så att varje punkt är lika viktad och bidrar 124 till det totala genomsnittet. Detta ger oss medeltemperaturen över varje 24-timmarsperiod. Filterfördröjning Observera att den filtrerade utsignalen är försenad med cirka tolv timmar. Detta beror på att vårt glidande medelfilter har en fördröjning. Varje symmetriskt filter med längd N kommer att ha en fördröjning av (N-1) 2 prover. Vi kan betala förseningen manuellt. Extraherande medelskillnader Alternativt kan vi också använda det glidande medelfiltret för att få en bättre uppskattning av hur tidpunkten för dagen påverkar den totala temperaturen. För att göra detta först, dra av de jämnda data från timmars temperaturmätningar. Därefter segmentera de olika uppgifterna i dagar och ta medeltalet över alla 31 dagar i månaden. Utdragning av toppkuvert Ibland vill vi också ha en jämn varierande uppskattning av hur höga och låga av vår temperatursignal ändras dagligen. För att göra detta kan vi använda kuvertfunktionen för att ansluta extrema höjder och lågor som detekteras över en delmängd av 24-timmarsperioden. I det här exemplet ser vi till att det finns minst 16 timmar mellan varje extremt hög och extrem låg. Vi kan också få en känsla av hur höga och låga trender är genom att ta medeltalet mellan de två ytterligheterna. Viktiga rörliga genomsnittsfiltre Andra typer av rörliga genomsnittliga filter viktar inte varje prov lika. Ett annat vanligt filter följer binomial expansion av (12,12) n Denna typ av filter approximerar en normal kurva för stora värden på n. Det är användbart för att filtrera ut högfrekventa ljud för små n. För att hitta koefficienterna för binomialfiltret, konvolvera 12 12 med sig själv och sedan iterativt konvolvera utgången med 12 12 ett föreskrivet antal gånger. I det här exemplet använder du fem sammanlagda iterationer. Ett annat filter som liknar det gaussiska expansionsfiltret är exponentiell glidande medelfilter. Denna typ av vägd glidande medelfilter är lätt att konstruera och kräver inte en stor fönsterstorlek. Du justerar ett exponentiellt viktat glidande medelfilter med en alfaparameter mellan noll och en. Ett högre värde på alfa kommer att ha mindre utjämning. Zooma in på avläsningarna för en dag. Välj ditt land
Comments
Post a Comment