Skip to main content

Moving Genomsnittet Script Matlab


29 september, 2013.Kombinera medelvärdet genom convolution. What rör sig i genomsnitt och vad är det bra för. Hur flyttar medelvärdet genom att använda convolution. Moving Average är en enkel operation som vanligtvis används för att undertrycka ljud från en signal vi ställer in värdet av varje Peka på medelvärdet av värdena i dess grannskap Med en formel. Her x är ingången och y är utsignalen, medan storleken på fönstret är w, ska vara udda Formeln ovan beskriver en symmetrisk operation som proven tas Från båda sidor av den aktuella punkten. Längs är ett verkligt exempel. Den punkt som fönstret läggs faktiskt är rött. Värden utanför x är tänkt att vara nollor. För att leka och se effekterna av glidande medelvärde, kolla på detta Interaktiv demonstration. Hur gör det genom convolution. As du kanske har erkänt, är beräkningen av det enkla glidande medlet liknar konvolutionen i båda fallen ett fönster glider längs signalen och elementen i fönstret sammanfattas Så, prova Att göra Samma sak genom att använda konvolvering Använd följande parametrar. Den önskade utgången är. Som första tillvägagångssätt, låt oss försöka vad vi får genom att samla x-signalen med följande k-kärna. Produktionen är exakt tre gånger större än den förväntade. Det kan också vara Sett att utgångsvärdena är sammanfattningen av de tre elementen i fönstret. Det är för att under fönstret glider fönstret, alla element i det multipliceras med en och sedan sammanfattas. Yk 1 cdot x 1 cdot x 1 cdot x. för att få önskade värden på y ska utdata divideras med 3. med en formel inklusive divisionen. Men det skulle inte vara optimalt att göra uppdelningen under konvolvering Omarrangera ekvationen. Så ska vi använda följande k-kärna. På det här sättet kommer vi att få önskad utmatning. Generellt om vi vill flytta medelvärdet genom konvoltering med ett fönsterstorlek w ska vi använda följande k-kärna. A enkel Funktionen gör det rörliga genomsnittet är. Ett exempel är användningen. Jag har en matris tidsseriedata för 8 variabler med cirka 2500 punkter.10 år av mon-fri och vill beräkna medelvärdet, variansen, skevheten och kurtosen i rörelse Medelvärde. Låt säga ramar 100 252 504 756 - Jag skulle vilja beräkna de fyra funktionerna ovan över varje tidsram, dagligen - så återgången för dag 300 i fallet med 100 dagars ram skulle vara Medelvariation skewness kurtosis från perioden day201-day300 100 dagar totalt och så vidare. Jag vet t Han betyder att jag skulle få en matrisutmatning och det första bildnummeret skulle vara NaNs men jag kan inte räkna ut den obligatoriska indexeringen för att få det gjort. Skriven den 24 mars kl 14 på 07. Detta är en intressant fråga eftersom jag Tror att den optimala lösningen är annorlunda för den genomsnittliga än den för den andra provstatistiken. Jag har tillhandahållit ett simuleringsexempel nedan som du kan arbeta igenom. Först, välj några godtyckliga parametrar och simulera vissa data. För medelvärdet använd filter för att erhålla Ett glidande medelvärde. Jag hade ursprungligen tänkt att lösa detta problem med hjälp av conv som följer. Men som PhilGoddard påpekade i kommentarerna, undviker filtermetoden behovet av slingan. Också notera att jag har valt att göra datum i utgångsmatrisen Motsvarar datumen i X så i senare arbete kan du använda samma prenumerationer för båda Således kommer de första WindowLength-1 observationerna i MeanMA att vara nan. För variansen kan jag inte se hur man använder antingen filter eller conv Löpande summan för att göra saker effektivare, Så i stället utför jag beräkningen manuellt vid varje iteration. We kunde påskynda saker lite genom att utnyttja det faktum att vi redan har beräknat det genomsnittliga rörliga genomsnittet. Just ersätt den inre looplinjen ovan med. Men jag tvivlar på att detta kommer att göra stor skillnad . Om någon annan kan se ett smart sätt att använda filter eller samla för att få den rörliga fönstervariansen, så är jag väldigt intresserad av att se den. Jag lämnar fallet med skevhet och kurtosis till OP-enheten, eftersom de i princip är detsamma som de Variansexempel men med lämplig funktion. En slutpunkt om du konverterade ovan till en allmän funktion kan du skicka in en anonym funktion som en av argumenten, då skulle du ha en glidande genomsnittsrutin som fungerar för godtyckligt val av Transformationer. Finalen, slutpunkten För en sekvens av fönsterlängder släpper du helt enkelt över hela kodblocket för varje fönsterlängd. Ja, filterfunktionen är verkligen bättre för medelvärdet - men jag ville göra det för flera d Ifferent funktioner, inte bara medelvärdet Bara skrivit mitt svar för att det fungerade för mig och jag trodde det skulle hjälpa någon annan också Dexter Morgan 15 april 14 på 12 40. Informationen, koden och uppgifterna på den här sidan är att stödja en artikel The Black Art of Smoothing publicerad i Electrical Automation Technology av David I Wilson. Koden som presenteras på den här sidan innehåller algoritmer för att använda genomsnittliga filtrering av Savitzky-Golay-filter. Less lokalvägd regressionsfiltrering. Hothartkä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. Notera Koden här presenteras som utan garantier uttryckt eller underförstådd. Om du är intresserad av att testa dessa utjämningsoperationer På dina egna data gör följande. Om du har Matlab en kommersiell produkt, ladda ner och pakka ut Matlab-utjämningsfilerna. Ta bort smootherdemo-manusfilen Du bör se p Mycket liknande som det som liknar siffrorna i den publicerade artikeln. Om du vill använda dina egna data placerar du tid, datapar i ett Excel-kalkylblad och redigerar smootherdemo-filen för att läsa ditt eget Excel-spreadsheet. Behöver redigera skriptfilen och eventuellt justera de olika utjämningsparametrarna. Om du hellre vill använda freeware Scilab, ladda sedan och installera Scilab ca 13 MB. Du har möjlighet att använda Windows, Linux eller Mac. Ladda ner Scilabs mjukare filer Och packa upp i en praktisk katalog. Utför filen. Matlab är en kommersiell vetenskaplig mjukvara och prototypmiljö som är populär hos många ingenjörer. Matlab säljs i New Zealand av Hoare Research Software. Ladda ner och pakka ut matlab-utjämningsfilerna i din arbetsmapp och kör Smootherdemo m Matlab script file. Scilab är ett gratis vetenskapligt mjukvarupaket som liknar, men inte precis kompatibelt med, Matlab Scilab är tillgängligt för Linux, Windows och Mac en D kan hämtas härifrån Ca 13Mb. It 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 blockdiagramsimulator 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