Smoothing glidande medelvärde matlab


Vad är utjämning och hur kan jag göra det Jag har en matris i Matlab som är magnitudspektrumet för en talssignal (storleken på 128 punkter i FFT). Hur glattar jag det här med ett glidande medelvärde Från vad jag förstår borde jag ta en fönsterstorlek på ett visst antal element, ta medeltal och det blir det nya 1: a elementet. Skift sedan fönstret till höger genom ett element, ta medelvärdet som blir det andra elementet och så vidare. Är det verkligen hur det fungerar, jag är inte säker på mig själv, eftersom om jag gör det, får jag i mitt slutresultat mindre än 128 element. Så hur fungerar det och hur hjälper det att släta datapunkterna Eller är det något annat sätt jag kan göra utjämning av data som frågades 15 okt 12 kl 6:30 migrerade från stackoverflow 15 okt 12 kl 14:51 Denna fråga kom från vår plats för professionell och entusiast programmerare. för ett spektrum vill du antagligen medelvärde (i tidsdimensionen) multipla spektra i stället för ett löpande medelvärde längs frekvensaxeln för ett enda spektrum ndash endolit 16 okt 12 vid 1:04 endolit båda är giltiga tekniker. Medelvärde i frekvensdomänen (ibland kallad Danielle Periodogram) är densamma som fönsterrutan i tidsdomänen. Medelvärdet av flera periodogram (quotspectraquot) är ett försök att efterlikna det genomsnittliga samlingsvärdet som krävs av det verkliga periodogrammet (detta kallas Welch Periodogram). Också, som en fråga om semantik, skulle jag hävda att quotsmoothingquot är icke-orsaklig lågpassfiltrering. Se Kalman filtrering mot Kalman utjämning, Wiener filtrering v Wiener utjämning, etc. Det är en nontrivial skillnad och det är genomförandeberoende. ndash Bryan Dec 12 12 på 19:18 Utjämning kan göras på många sätt, men i mycket grundläggande och allmänna termer betyder det att du ens ut en signal genom att blanda dess element med sina grannar. Du smörjer signalen lite för att bli av med ljud. Exempelvis skulle en mycket enkel utjämningsteknik vara att beräkna varje signalelement f (t) till som 0,8 av det ursprungliga värdet plus 0,1 av var och en av sina grannar: Observera hur multiplikationsfaktorerna eller vikterna lägger till en. Så om signalen är ganska konstant ändras inte utjämningen mycket. Men om signalen innehöll en plötslig jerky förändring, kommer bidraget från sina grannar att hjälpa till att rensa upp det bullret lite. De vikter du använder i denna omräkningsfunktion kan kallas en kärna. En endimensionell Gaussisk funktion eller någon annan grundläggande kärna borde göra i ditt fall. Trevligt exempel på en viss typ av utjämning: Ovan: osmoothad signal Nedan: Glatt signal Exempel på några kärnor: Förutom det snygga svaret på Junuxx skulle jag vilja släppa några noteringar. Utjämning är relaterad till filtrering (tyvärr ganska vagt Wikipedia artikeln) - du borde välja en mjukare baserad på dess egenskaper. En av mina favoriter är medianfiltret. Detta är ett exempel på ett icke-linjärt filter. Det har några intressanta egenskaper, det bevarar kanterna och är ganska robust under stort buller. Om du har en modell hur din signal beter sig är ett Kalman-filter värt en titt. Dess utjämning är faktiskt en Bayesian maximal sannolikhetsbedömning av signalen baserat på observationer. svarat 15 okt 12 kl 11:07 1 för att nämna kalman-filteret ndash Diego dec 13 12 kl 18:48 Utjämning innebär att man använder information från närliggande prover för att ändra förhållandet mellan angränsande prover. För ändliga vektorer, i ändarna finns det ingen angränsande information till ena sidan. Dina val är: Do not smoothfilter ändarna, acceptera en kortare resulterande slät vektor, smink data och släta med det (beror på precisionen av eventuella förutsägelser utanför ändarna), eller kanske använda olika asymmetriska utjämningskärnor i ändarna (vilket hamnar förkorta informationsinnehållet i signalen ändå). svarat 15 okt 12 kl 19:44 Andra har nämnt hur du gör utjämning, jag gillar att nämna varför utjämning fungerar. Om du korrekt överskrider din signal, kommer den att variera relativt lite från ett prov till nästa (provtidpunkter, pixlar osv.) Och det förväntas ha ett övergripande jämnt utseende. Med andra ord innehåller din signal få höga frekvenser, dvs signalkomponenter som varierar med en takt som liknar din samplingsfrekvens. Ändå är mätningar ofta korrumperade av brus. I en första approximation betraktar vi vanligtvis bruset att följa en Gauss-fördelning med medel noll och en viss standardavvikelse som helt enkelt läggs ovanpå signalen. För att minska bruset i vår signal gör vi vanligtvis följande fyra antaganden: bruset är slumpmässigt, är inte korrelerat bland prover, har ett medelvärde av noll och signalen är tillräckligt överskattad. Med dessa antaganden kan vi använda ett glidande medelfilter. Tänk exempelvis tre sammanhängande prover. Eftersom signalen är mycket översamplad kan den underliggande signalen anses förändras linjärt, vilket innebär att medelvärdet av signalen över de tre proven skulle motsvara den sanna signalen vid mittenprovet. Däremot har bullret medelvärdet noll och är okorrelerat, vilket innebär att dess genomsnitt skulle vara noll. Således kan vi tillämpa ett treprov glidande medelfilter, där vi byter ut varje prov med genomsnittet mellan sig själv och dess två angränsande grannar. Självklart ju ju större vi gör fönstret, desto mer kommer bullret att vara genomsnittligt till noll, men ju mindre antas vi att den sanna signalen är linjär. Således måste vi göra en avvägning. Ett sätt att försöka få det bästa av båda världarna är att använda ett vägt genomsnitt, där vi ger längre bortprover mindre vikter, så att vi genomsnittliga bullerffekter från större områden samtidigt som vi inte väger sant signal för mycket där den avviker från vår linjäritet antagande. Hur du ska lägga vikterna beror på brus, signal och beräkningseffektivitet, och naturligtvis avvägningen mellan att bli av med bruset och skär in i signalen. Observera att det har gjorts mycket arbete under de senaste åren för att tillåta oss att koppla av några av de fyra antagandena, till exempel genom att utforma utjämningssystem med variabla filterfönster (anisotropisk diffusion) eller system som inte alls använder Windows alls (icke-lokalt medel). svarade den 27 december kl 15: 10 Informationen, koden och uppgifterna på den här sidan är att stödja en artikel citat Black Art of Smoothing-citat som publicerats i Electrical Amp Automation Technology. av David I. Wilson. Koden som presenteras på denna sida innehåller algoritmer för: Flyttande medelfiltreringsförstärkare Savitzky-Golay-filter Loess (lokalvägd regressionsfiltrering) Whittaker-kärnans smoothers Hodrick-Prescott-filter i utvecklingsmiljöerna Matlab och Scicos. I båda fallen behövs inga speciella verktygslådor. Matlab är en kommersiell produkt, men Scilab är en freewareekvivalent. Obs: Koden här presenteras kvoter isquot utan garanti uttryckt eller underförstått. Om du är intresserad av att testa dessa utjämningsoperationer på dina egna data gör du följande: Om du har Matlab (en kommersiell produkt), ladda ner och pakka ut matlab-utjämningsfilerna. Kör skriptfilen smootherdemo. m. Du borde se tomter något liknande detta som liknar siffrorna i den publicerade artikeln. Om du vill använda egna data placerar du (tid, data) paren i ett Excel-kalkylblad och redigerar smootherdemo-filen för att läsa ditt eget Excel-spreadsheet. Du måste redigera skriptfilen och eventuellt justera de olika utjämningsparametrarna. Alternativt, om du hellre vill använda freeware Scilab, då: Hämta och installera Scilab (ca 13 MB). Du har möjlighet att använda Windows, Linux eller Mac. Ladda ner Scilab mjukare filer och packa upp i någon praktisk katalog. Utför filen smootherdemo. sci. Matlab är en kommersiell vetenskaplig mjukvara och prototypmiljö som är populär bland många ingenjörer. Matlab säljs i New Zealand av Hoare Research Software. Hämta och lossa Matlab-utjämningsfilerna i din arbetsmapp och kör mjukvarmemo. m Matlab-skriptfilen. Scilab är ett gratis Scientific Software Package som liknar, men inte exakt kompatibel med, Matlab. Scilab är tillgängligt för Linux, Windows och Mac och kan hämtas härifrån. (Ca 13 MB). Det utvecklas för närvarande av forskare från INRIA och ENPC i Frankrike, och som Matlab ingår många verktygslådor och en grafisk blockschema simulator som liknar Simulink som heter Scicos. Följande datafiler användes i artikeln. De ges i Excel-format och rak ascii-text med en radrad. Avlägsna ljud och periodiska komponenter från dataset samtidigt som de behåller underliggande mönster Utjämningsalgoritmer används ofta för att ta bort periodiska komponenter från en dataset samtidigt som långsiktiga trender bevaras. Exempelvis uppvisar tidsseriedata som samplas en gång i månaden ofta säsongsvariationer. Ett tolvmånaders glidande medelfilter tar bort säsongskomponenten samtidigt som den långsiktiga trenden bevaras. Alternativt kan utjämningsalgoritmer användas för att generera en beskrivande modell för undersökande dataanalys. Denna teknik används ofta när det är opraktiskt att ange en parametermodell som beskriver förhållandet mellan en uppsättning variabler. Signal - eller tidsserieutjämningstekniker används inom en rad olika discipliner, inklusive signalbehandling, systemidentifikation, statistik och ekonometri. Vanliga utjämningsalgoritmer inkluderar: LOWESS och LOESS: Nonparametriska utjämningsmetoder med hjälp av lokala regressionsmodeller Kärnutjämning: Nonparametrisk inställning för modellering av en smidig fördelningsfunktion Utjämningsplines: Nonparametrisk inställning för kurvmontering Autoregressivt rörligt genomsnittligt (ARMA) filter: Filter som används när data uppvisar seriell autokorrelation Hodrick-Prescott-filter: Filter som används för att släta ekonometriska tidsserier genom att extrahera säsongskomponenterna SavitzkyGolay-utjämningsfilter: Filter som används när en signal har högfrekvent information som bör behållas. Butterworth-filter: Filter som används för signalbehandling för att avlägsna högfrekvent ljud Välj ditt land information, kod och data på den här sidan är att stödja en artikel citationstecken för den svarta arten av utjämning som publiceras i Elektrisk amp Automation Technology. av David I. Wilson. Koden som presenteras på denna sida innehåller algoritmer för: Flyttande medelfiltreringsförstärkare Savitzky-Golay-filter Loess (lokalvägd regressionsfiltrering) Whittaker-kärnans smoothers Hodrick-Prescott-filter i utvecklingsmiljöerna Matlab och Scicos. I båda fallen behövs inga speciella verktygslådor. Matlab är en kommersiell produkt, men Scilab är en freewareekvivalent. Obs: Koden här presenteras kvoter isquot utan garanti uttryckt eller underförstått. Om du är intresserad av att testa dessa utjämningsoperationer på dina egna data gör du följande: Om du har Matlab (en kommersiell produkt), ladda ner och pakka ut matlab-utjämningsfilerna. Kör skriptfilen smootherdemo. m. Du borde se tomter något liknande detta som liknar siffrorna i den publicerade artikeln. Om du vill använda egna data placerar du (tid, data) paren i ett Excel-kalkylblad och redigerar smootherdemo-filen för att läsa ditt eget Excel-spreadsheet. Du måste redigera skriptfilen och eventuellt justera de olika utjämningsparametrarna. Alternativt, om du hellre vill använda freeware Scilab, då: Hämta och installera Scilab (ca 13 MB). Du har möjlighet att använda Windows, Linux eller Mac. Ladda ner Scilab mjukare filer och packa upp i någon praktisk katalog. Utför filen smootherdemo. sci. Matlab är en kommersiell vetenskaplig mjukvara och prototypmiljö som är populär bland många ingenjörer. Matlab säljs i New Zealand av Hoare Research Software. Hämta och lossa Matlab-utjämningsfilerna i din arbetsmapp och kör mjukvarmemo. m Matlab-skriptfilen. Scilab är ett gratis Scientific Software Package som liknar, men inte exakt kompatibel med, Matlab. Scilab är tillgängligt för Linux, Windows och Mac och kan hämtas härifrån. (Ca 13 MB). Det utvecklas för närvarande av forskare från INRIA och ENPC i Frankrike, och som Matlab ingår många verktygslådor och en grafisk blockschema simulator som liknar Simulink som heter Scicos. Följande datafiler användes i artikeln. De ges i Excel-format och rak ascii-text med en radrad.

Comments