Viktat glidande medelvärde signalbehandlings


Jag letar efter - eller försöker skapa - ett filter med en bitvis monotonisk sekundärderivat på ett sådant sätt att när det placeras på en icke-periodisk ingångssignal sker förändringar i tecken på det andra derivatet så snart som möjligt och bit - klok monotonicitet hos det andra derivatet (så även av det första derivatet och själva filtret) hålls intakt vid alla tidpunkter. Låt mig förklara: Jag har en icke-periodisk, stationär signal. På den här signalen beräknar jag ett triangulärt vägt rörande medelvärde (SWMA): impulsresponsvektorn ser ut som den positiva delen av en sinusoid, vikten på det glidande medlet uppgår till 1. Det är ett FIR-filter, jag tror ett lågpass filtrera. Vad jag tycker om detta filter är att dess förändringar i tecken på dess andra derivat (böjpunkter) sammanfaller ungefär med den lokala extrema av min signal (som dess växling från konvex till konkav): om jag skulle placera en spline på den, stationära punkter skulle mer eller mindre sammanfalla med dessa andra derivatskyltkopplingspunkter eller böjpunkter i filtret. Jag försöker förutspå uppdaterade segment med 1: a och 2: a derivatet av filtret: Om SWMA sjönk och det andra derivatet är också negativt, väntar jag på att det andra derivatet blir positivt och det är där min prediktor blir positiv för signalen Senare, när SWMA går upp, väntar jag på en retardation: för SWMA: s andra derivat går från positiv till negativ: det är när min förutsägelse blir negativ för signalen. Det är ett kausalt realtidssystem. Detta filter (SWMA) har en fördröjning, men eftersom dess andra derivat antingen går upp ett tag eller går ner för en tid (bitvis monotonisk) kan jag använda böjpunkterna: titta på en förändring i tecknet på andra derivat, istället för att bara titta på sluttningen. Problemet med min SWMA är att dess andra derivat inte är exakt bitvis monotont: det är lite buller runt vändpunkter. Istället för att filtrera det här andra derivatet med ett lågpassfilter, kan du känna till några andra filter som gör bättre resultat på den här egenskapen Eller hur skulle du konstruera ett filter med önskat beteende Ta en titt på den här bilden. Den lila linjen i den övre panelen är en utjämningsspline, den tunna grå linjen är min signal och den gula linjen är ett sinusviktat glidmedel (fönsterlängd 14). De röda cirklarna på den gula linjen är där momentet börjar sakta: om filtret stiger, då är det där accelerationen stannar och stigningen börjar sakta, om filtret minskar är den röda cirkeln där accelerationen i nedgången slutar och minskningen börjar gå långsammare. Du ser att dessa punkter sammanfaller med vändpunkterna i utjämningssplinesen. Nu är det här ett handplockat exempel som visar idealiskt beteende för det jag vill uppnå. I själva verket är övergången mellan ett ökande momentum och en minskande momentansektion av filtret inte så brått: det är bullrigare. Om du tittade på en sinusoid med period 2pi skulle dessa övergångar också vara mycket strikta (vid pi4, 3pi4, 5pi4 och 7pi4). Finns det ett kausalt filter som också har denna egenskap Tack för någon återkoppling. frågade okt 9 13 på 22: 21Dokumentation I det här exemplet visas hur man använder rörliga genomsnittsfilter och resampling för att isolera effekten av periodiska komponenter på tidstimme vid timme temperaturavläsningar, samt ta bort oönskade 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 utjämnare. 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å temperaturavläsningarna. 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 ut våra data genom att använda ett glidande medelfilter. Ett rörligt medelfilter I sin enklaste form tar ett glidande medelfilter av 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 redovisa denna försening manuellt. Extraherande medelskillnader Alternativt kan vi också använda det glidande medelfiltret för att få en bättre uppskattning av hur tiden på dagen påverkar den totala temperaturen. För att göra detta, dras först av de jämnda data från timme temperaturmätningarna. 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 värdena på 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 medelvärdet 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 totala iterationer. Ett annat filter som liknar det gaussiska expansionsfiltret är exponentiell glidande medelfilter. Denna typ av viktat 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 Jag letar efter - eller försöker skapa - ett filter med en bitvis monotonisk sekundärderivat på ett sådant sätt att när det placeras på en icke-periodisk inmatningssignal sker förändringar i tecken på det andra derivatet så snart som möjligt och styvvis monotonicitet hos det andra derivatet (så även av det första derivatet och själva filtret) hålls intakt vid alla tidpunkter. Låt mig förklara: Jag har en icke-periodisk, stationär signal. På den här signalen beräknar jag ett triangulärt vägt rörande medelvärde (SWMA): impulsresponsvektorn ser ut som den positiva delen av en sinusoid, vikten på det glidande medlet uppgår till 1. Det är ett FIR-filter, jag tror ett lågpass filtrera. Vad jag tycker om detta filter är att dess förändringar i tecken på dess andra derivat (böjpunkter) sammanfaller ungefär med den lokala extrema av min signal (som dess växling från konvex till konkav): om jag skulle placera en spline på den, stationära punkter skulle mer eller mindre sammanfalla med dessa andra derivatskyltkopplingspunkter eller böjpunkter i filtret. Jag försöker förutspå uppdaterade segment med 1: a och 2: a derivatet av filtret: Om SWMA sjönk och det andra derivatet är också negativt, väntar jag på att det andra derivatet blir positivt och det är där min prediktor blir positiv för signalen Senare, när SWMA går upp, väntar jag på en retardation: för SWMA: s andra derivat går från positiv till negativ: det är när min förutsägelse blir negativ för signalen. Det är ett kausalt realtidssystem. Detta filter (SWMA) har en fördröjning, men eftersom dess andra derivat antingen går upp ett tag eller går ner för en tid (bitvis monotonisk) kan jag använda böjpunkterna: titta på en förändring i tecknet på andra derivat, istället för att bara titta på sluttningen. Problemet med min SWMA är att dess andra derivat inte är exakt bitvis monotont: det är lite buller runt vändpunkter. I stället för att filtrera det här andra derivatet med ett lågpassfilter, känner du till några andra filter som gör bättre resultat på den här egenskapen Eller hur skulle du konstruera ett filter med önskat beteende Ta en titt på den här bilden. Den lila linjen i den övre panelen är en utjämningsspline, den tunna grå linjen är min signal och den gula linjen är ett sinusviktat glidmedel (fönsterlängd 14). De röda cirklarna på den gula linjen är där momentet börjar sakta: om filtret stiger, då är det där accelerationen stannar och stigningen börjar sakta, om filtret minskar är den röda cirkeln där accelerationen i nedgången slutar och minskningen börjar gå långsammare. Du ser att dessa punkter sammanfaller med vändpunkterna i utjämningssplinesen. Nu är det här ett handplockat exempel som visar idealiskt beteende för det jag vill uppnå. I själva verket är övergången mellan ett ökande momentum och en minskande momentansektion av filtret inte så brått: det är bullrigare. Om du tittade på en sinusoid med period 2pi skulle dessa övergångar också vara mycket strikta (vid pi4, 3pi4, 5pi4 och 7pi4). Finns det ett kausalfilter som också har denna egenskap Tack för eventuella återkopplingar. frågade okt 9 13 på 22: 21 Denna webbplats använder Javascript. Vi använder Javascript för att förbättra användarnas erfarenhet och för att möjliggöra ett bättre underhåll av vår webbplats. För att kunna se den här sidan på rätt sätt är det nödvändigt att antingen aktivera Javascript eller klicka på tillåta blockerat innehåll. Vi lovar att vi inte gör det: Ge dig innehåll som du inte vill samla in någon information från din dator skada data på din dator installationsprogram på din dator med eller utan ditt samtycke tillåter någon annan till din dator på distans Introduktion till DSP-tidsdomänbehandling: konvolvering I Konvolvering är ett viktat glidande medelvärde med en signal vänd tillbaka till framsidan: Ekvationen är densamma som för korrelation förutom att den andra signalen (yk - n) vänds fram till framsidan. Diagrammet visar hur den okända signalen kan identifieras. Diagrammet visar hur en enkelpunkt för konvolutionsfunktionen beräknas: För det första, en signal vänds framåt, då ändras en signal i förhållande till den andra är förskjutningsvolymen positionen för konvolutionsfunktionspunkten som skall beräknas varje element i en signal multipliceras med motsvarande element i det andra området under den resulterande kurvan är integrerad. Konvolvering kräver många beräkningar. Om en signal är av längd M och den andra är av längd N, behöver vi (N M) multiplikationer för att beräkna hela konvolutionsfunktionen. Observera att vi verkligen vill multiplicera och sedan ackumulera resultatet - det här är typiskt för DSP-operationer och kallas en multiplikackumuleringsoperation. Det är anledningen till att DSP-processorer kan göra multiplikationer och tillägg parallellt. Anledningen till konvoltering är att föredra att korrelation för filtrering har att göra med hur frekvensspektra för de två signalerna interagerar. Att involvera två signaler motsvarar att man multiplicerar frekvensspektra för de två signalerna - vilket är lätt att förstå, och är vad vi menar genom filtrering. Korrelation är ekvivalent med att multiplicera det komplexa konjugatet av frekvensspektrumet för en signal med frekvensens frekvensspektrum. Komplex konjugation är inte så lättförståd och så används konvolvering för digital filtrering. Convolving genom att multiplicera frekvensspektra kallas snabb konvolvering.

Comments