Ett inledande digitalt filter Väl öppet MicroModeler DSP och välj ett digitalt filter från verktygsfältet överst och dra det till vår applikation. Välja ett glidande medelfilter eftersom det är en av de enklaste filtertyperna. När du har släppt filtret uppdateras displayerna automatiskt. (Klicka för att starta MicroModeler DSP i ett nytt fönster) Vi vet alla vad ett genomsnitt är - lägg till siffrorna ihop och dela med hur många som finns. Ett glidande medelfilter gör just det. Den lagrar en historia av de sista N-talen och matar ut sina medelvärden. Varje gång ett nytt nummer kommer in, beräknas genomsnittsvärdet effektivt från de lagrade proven och ett nytt nummer matas ut. Frekvensresponsen hos ett filter Högst upp till höger ser vi grafen för Magnitude vs Frequency, eller hur mycket olika frekvenser kommer att förstärkas eller minskas med det glidande medelfiltret. Som du kan förvänta, kommer medelvärdet av de sista N-proven att applicera någon typ av utjämning till signalen, behålla de låga frekvenserna och ta bort högfrekvenserna. Vi kan styra antalet tidigare ingångar, eller prover som det genomsnittliga genom att justera filterlängden, N. Genom att justera detta kan vi se att vi har viss grundläggande kontroll över vilka frekvenser som kan passera och vilka kasseras. Insidan av ett filter Om vi tittar på strukturvyn kan vi se hur inuti ett glidande medelfilter kan se ut. Diagrammet har kommenterats för att visa vad de olika symbolerna betyder. Z -1-symbolerna betyder fördröjning med en gångs sample och symbolerna betyder att lägga till eller kombinera signalerna. Pilarna betyder multiplicera (tänk förstärka, minska eller skala) signalen med den mängd som visas till höger om pilen. För i genomsnitt 5 prover tar vi en femtedel (0.2) av det senaste provet, en femtedel av det näst senaste provet och så vidare. Kedjan av förseningar kallas en fördröjningslinje där ingångssignalen fördröjs med ett ytterligare tidssteg när du fortsätter längs fördröjningslinjen. Pilarna kallas också kranar, så du kan nästan föreställa dig dem som kranar som den i din kökshandfat som är alla en femtedel öppen. Du kan föreställa dig signalen som flyter in från vänster och fördröjs gradvis när den rör sig längs fördröjningslinjen, och rekombineras sedan i olika styrkor genom kranen för att bilda utgången. Det ska också vara lätt att se att filtrets utdata kommer att vara: Vilket motsvarar genomsnittet för de senaste 5 proven. (Inmatning t-N betyder den fördröjda ingången från tiden t-N) I praktiken kommer koden som genereras av MicroModeler DSP att använda tricks för att göra detta mer effektivt så att endast första och sista samplen behöver vara involverade, men diagrammet är bra för illustrativa ändamål. Om du kan förstå detta kan du få en uppfattning om vad ett FIR-filter är. Ett FIR-filter är identiskt med det glidande medelfiltret, men i stället för att alla dragstyrkor är desamma kan de vara olika. Här har vi ett glidande medelfilter och ett FIR-filter. Du kan se att de är strukturellt densamma, den enda skillnaden är kretsarnas styrkor. Nästa avsnitt kommer att introducera dig till Finite Impulse Response (FIR) filter. Genom att variera kretsstyrkorna kan vi skapa nära vilket frekvensrespons som helst. Enkelt rörande medelfilter Denna sida beskriver det enkla glidande medelfiltret. Den här sidan är en del av avsnittet om filtrering som ingår i en guide till feldetektering och diagnos. Det enkla glidande medelfiltret medger de senaste värdena för filteringången för ett visst antal ingångar. Detta är det vanligaste exemplet på 8220moving-genomsnittet 8221 (MA) - kategorin filter, även kallat FIT-filter (FIT). Varje ny ingång multipliceras med en koefficient för alla linjära MA-filter, och koefficienterna är alla samma för detta enkla glidande medelvärde. Summan av koefficienterna är 1,0, så att utgången så småningom matchar inmatningen när ingången doesn8217t ändras. Dess produktion beror bara på de senaste ingångarna, till skillnad från det exponentiella filtret som också återanvändar sin tidigare produktion. Den enda parametern är antalet poäng i genomsnittet - 8220window size8221. Flyttande medelstegsrespons Liksom ett MA-filter kompletterar det ett stegsvar i en ändlig tid beroende på fönsterstorlek: Detta enkla glidande genomsnittliga exempel ovan var baserat på 9 poäng. Under blygsamma antaganden tillhandahåller den optimala (utjämning) uppskattningen för ett värde vid mittpunkten av tidsintervallet, i det här fallet 4,5 provintervaller tidigare. Copyright 2010 - 2013, Greg StanleyMoving Average Filter Du kan använda modulen Moving Average Filter för att beräkna en serie ensidiga eller tvåsidiga medelvärden över en dataset med en fönsterlängd som du anger. När du har definierat ett filter som uppfyller dina behov kan du applicera det på valda kolumner i en dataset genom att ansluta den till Apply Filter-modulen. Modulen gör alla beräkningar och ersätter värden inom numeriska kolumner med motsvarande glidande medelvärden. Du kan använda det resulterande rörliga genomsnittsvärdet för plottning och visualisering, som en ny jämn grundlinje för modellering, för att beräkna avvikelser mot beräkningar för liknande perioder, och så vidare. Denna typ av medel hjälper dig att avslöja och förutse användbara tidsmönster i retrospektiv och realtidsdata. Den enklaste typen av glidande medel börjar vid ett visst prov i serien och använder medelvärdet för den positionen plus de tidigare n-positionerna i stället för det faktiska värdet. (Du kan definiera n som du vill.) Ju längre period n över vilken medelvärdet beräknas, desto mindre varians kommer du att ha bland värden. När du också ökar antalet använda värden, desto mindre effekt har ett enskilt värde på det resulterande genomsnittet. Ett glidande medelvärde kan vara ensidigt eller tvåsidigt. I ett ensidigt medel används endast värden som föregår indexvärdet. I ett tvåsidigt medel används tidigare och framtida värden. För scenarier där du läser streamingdata är kumulativa och viktade glidmedelvärden särskilt användbara. Ett kumulativt glidande medel tar hänsyn till punkterna före den aktuella perioden. Du kan vikta alla datapunkter lika vid beräkning av medelvärdet, eller du kan se till att värden närmare den aktuella datapunkten vägs starkare. I ett vägt rörligt medelvärde. Alla vikter måste summa till 1. I ett exponentiellt rörligt medelvärde. medelvärdena består av ett huvud och en svans. som kan vägas. En lättviktig svans innebär att svansen följer huvudet ganska nära, så genomsnittet beter sig som ett glidande medelvärde på en kort viktningstid. När svansviktarna är tyngre, beter sig medelvärdet mer som ett längre enkelt glidande medelvärde. Lägg till Moving Average Filter-modulen i ditt experiment. För längd. Skriv ett positivt heltal värde som definierar den totala storleken på det fönster som filtret appliceras på. Detta kallas också filtermasken. För ett glidande medel bestämmer längden på filtret hur många värden som medelvärde i glidfönstret. Längre filter kallas också högre orderfilter, och ger ett större räkningsfönster och en närmare approximation av trendlinjen. Kortare eller lägre ordningens filter använder ett mindre räkningsfönster och mer liknar de ursprungliga uppgifterna. För Typ. välj vilken typ av rörligt medelvärde som ska tillämpas. Azure Machine Learning Studio stöder följande typer av rörliga genomsnittliga beräkningar: Ett enkelt glidande medelvärde (SMA) beräknas som ett obestämt rullande medelvärde. Triangulära glidande medelvärden (TMA) är genomsnittliga två gånger för en jämnare trendlinje. Ordet triangulärt härrör från formen av vikterna som appliceras på data, vilket betonar centrala värden. Ett exponentiellt rörligt medelvärde (EMA) ger större vikt till de senaste data. Viktningen sjunker exponentiellt. Ett modifierat exponentiellt rörligt medelvärde beräknar ett löpande rörligt medelvärde, där beräkning av det glidande medlet vid någon punkt beaktar det tidigare beräknade glidande medlet vid alla föregående punkter. Denna metod ger en jämnare trendlinje. Med en enda punkt och ett nuvarande glidande medel beräknas det kumulativa glidande genomsnittet (CMA) det glidande medelvärdet vid den aktuella punkten. Lägg till datasetet som har de värden du vill beräkna ett glidande medelvärde för och lägg till Apply Filter-modulen. Anslut det rörliga medelfiltret till den vänstra ingången på Apply Filter. och anslut datasetet till höger ingång. Använd kolumnväljaren i tillämpningsfiltermodulen för att ange vilka kolumner filtret ska appliceras på. Som standard kommer det filter du skapar att appliceras på alla numeriska kolumner, så var noga med att utesluta några kolumner som inte har lämpliga data. Kör experimentet. På den tiden ersätts nuvarande (eller indexvärdet) för varje uppsättning värden som definieras av filterlängdsparametern med det glidande medelvärdet. Flyttande medelvärde som ett filter Det rörliga genomsnittet används ofta för att utjämna data i närvaro av ljud. Det enkla glidande medlet är inte alltid känt som FIT-filtret (Finite Impulse Response) som det är, medan det faktiskt är ett av de vanligaste filteren i signalbehandling. Att behandla det som ett filter gör det möjligt att jämföra det med, till exempel, fönsterfönster med synkronisering (se artiklarna om lågpass, högpass och bandpass och bandavvisningsfilter för exempel på dem). Den stora skillnaden med dessa filter är att det rörliga medlet är lämpligt för signaler för vilka den användbara informationen finns i tidsdomänen. varav utjämning av mätningar med medelvärde är ett utmärkt exempel. Windowed-sinc-filter är å andra sidan starka utövande inom frekvensområdet. med utjämning i ljudbehandling som ett typiskt exempel. Det finns en mer detaljerad jämförelse av båda typerna av filter i Time Domain vs Frekvensdomänprestanda för filter. Om du har data där både tid och frekvensdomän är viktiga, kanske du vill titta på variationer på rörlig genomsnittsnivå. Vilket presenterar ett antal viktade versioner av det glidande medlet som är bättre på det. Det rörliga genomsnittet av längd (N) kan definieras som skrivet som det typiskt implementeras, med det aktuella utgångsprovet som medelvärdet av de tidigare (N) - proverna. Sett som ett filter utför det rörliga medlet en konvolvering av ingångssekvensen (xn) med en rektangulär puls längd (N) och höjd (1N) (för att göra pulsens område och därmed förstärkningen av filtret , ett ). I praktiken är det bäst att ta (N) udda. Även om ett glidande medelvärde också kan beräknas med ett jämnt antal prover, har fördelen med att fördröjningen av filtret är ett heltal antal prover, eftersom fördröjningen av ett filter med (N) proverna är exakt ((N-1) 2). Det rörliga genomsnittet kan sedan justeras exakt med de ursprungliga uppgifterna genom att flytta det med ett heltal antal prover. Tidsdomän Eftersom det rörliga medlet är en konvolvering med en rektangulär puls, är dess frekvensrespons en sinc-funktion. Detta gör det något som det dubbla av windowed-sinc-filtret, eftersom det är en konvolvering med en sinc-puls som resulterar i ett rektangulärt frekvenssvar. Det är detta sinc-frekvensrespons som gör det rörliga genomsnittet en dålig performer i frekvensdomänen. Det fungerar dock mycket bra i tidsdomänen. Därför är det perfekt att släta data för att ta bort brus samtidigt som du fortfarande håller ett snabbt stegsvar (Figur 1). För det typiska Additiv White Gaussian Noise (AWGN) som ofta antas, har medelvärden (N) prover effekten av att öka SNR med en faktor (sqrt N). Eftersom bruset för de enskilda proverna är okorrelerat finns det ingen anledning att behandla varje prov på olika sätt. Därför kommer det rörliga medelvärdet, vilket ger varje prov samma vikt, att bli av med den maximala mängden brus för en given stegresponsskärpa. Genomförande Eftersom det är ett FIR-filter kan det glidande medlet implementeras genom konvolvering. Det kommer då att ha samma effektivitet (eller brist på det) som alla andra FIR-filter. Det kan emellertid också genomföras rekursivt, på ett mycket effektivt sätt. Det följer direkt av definitionen att denna formel är resultatet av uttrycken för (yn) och (yn1), dvs där vi märker att förändringen mellan (yn1) och (yn) är att en extra term (xn1N) visas vid Slutet, medan termen (xn-N1N) tas bort från början. I praktiska tillämpningar är det ofta möjligt att lämna uppdelningen av (N) för varje term genom att kompensera för den resulterande vinsten av (N) på en annan plats. Detta rekursiva genomförande kommer att bli mycket snabbare än konvolvering. Varje nytt värde av (y) kan beräknas med endast två tillägg, i stället för (N) tillägg som skulle vara nödvändiga för en enkel implementering av definitionen. En sak att se efter med en rekursiv implementering är att avrundningsfel kommer att ackumuleras. Det kan vara ett problem för din ansökan, men det innebär också att denna rekursiva implementering faktiskt kommer att fungera bättre med ett heltal implementering än med flytande punktnummer. Detta är ganska ovanligt, eftersom en flytande punktimplementering vanligtvis är enklare. Slutsatsen av allt detta måste vara att du aldrig ska underskatta nyttan av det enkla glidande medelfiltret i signalbehandlingsapplikationer. Filtrera designverktyg Denna artikel kompletteras med ett filterdesignverktyg. Experimentera med olika värden för (N) och visualisera de resulterande filteren. Prova det nu
No comments:
Post a Comment