Tuesday 26 September 2017

Moving Genomsnittet Funktions Matlab


Jag försöker slutföra ett matlab-uppdragsprojekt med följande fråga. Skriv en funktion som heter movingaverage som tar en skalär som heter x som ett inmatningsargument och returnerar en skalär. Funktionen använder en buffert för att hålla tidigare ingångar och bufferten kan hålla ett maximalt av 25 ingångar Specifikt måste funktionen spara de senaste 25 ingångarna i en vektor bufferten Varje gång funktionen kallas kopierar den inmatningsargumentet till ett element i bufferten. Om det redan finns 25 ingångar lagrade i bufferten kasseras den det äldsta elementet och sparar den nuvarande i bufferten När den har lagrat inmatningen i bufferten, returnerar den medelvärdet av alla element i bufferten. Lösningen jag tillhandahåller är följande. Enligt auto grader fungerar min funktion korrekt När värdena 1-50 passerar i följd men misslyckas när värdena på en högljudd sinusvåg passerar i följd som jag har blivit informerad om, som kan bero på någon form av avrundningsfel. Jag skulle vara gratefu om någon av er kunde ge mig några tips om eventuella felsteg i min kod som bifogas ovan. Tack på förhand.29 september 2013.Kombinera medelvärdet genom convolution. What rör sig i genomsnitt och vad är det bra för. Hur rör sig medelvärdet görs med hjälp av convolution. Moving Average är en enkel operation som vanligtvis används för att undertrycka ljudet av en signal vi ställer värdet på varje punkt till genomsnittet av värdena i dess grannskap Med en formel. Her är x ingången och y är utgången signalen, medan storleken på fönstret är w, ska vara udda Formeln ovan beskriver en symmetrisk operation, proverna tas från båda sidor av den aktuella punkten. Längs är ett verkligt exempel. Den punkt som fönstret läggs på är faktiskt röda Värden utanför x är tänkt att vara nollor. För att leka och se effekterna av glidande medelvärde, ta en titt på denna interaktiva demonstration. Hur gör man genom convolution. As du kanske har erkänt, beräknar det enkla glidande medlet liknar konvolutten Jon i båda fallen glider ett fönster längs signalen och elementen i fönstret sammanfattas Så försök att göra samma sak genom att använda convolution 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 den följande k-kärnan. Effekten är exakt tre gånger större än den förväntade. Det kan också ses att utgångsvärdena är sammanfattningen av de tre elementen i fönstret. Fönstret glider längs, 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 divisionen under konvolvering omarrangera ekvationen. Så vi ska använda följande k-kärna. På det här sättet kommer vi att få önskad utmatning. I allmänhet 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 genomsnittsvärdet är. Ett exempel är användningen. Jag behöver beräkna ett glidande medelvärde över en dataserie, inom en kretslopp måste jag få det glidande medeltalet över N 9 dagar. Den matris som jag använder är 4-serie 365 värden M som i sig är medelvärden för en annan uppsättning data Jag vill räkna medvärdena för mina data med det glidande medlet i en plot. Jag googlade lite om glidande medelvärden och conv-kommandot och hittade något som jag försökte implementera i min kod. Så i princip beräknar jag mitt medelvärde och plottar det med en felaktig rörelse genomsnittet Jag valde wts-värdet direkt utanför mathworks-webbplatsen, så det är felaktigt källa. Mitt problem är dock att jag inte förstår vad detta wts är. Kan någon förklara om det har något att göra med vikterna av de värden som är ogiltiga i det här fallet Alla värden är viktade samma. Och om jag gör det här helt fel, kan jag få lite hjälp med det. Min uppriktiga thanks. asked 23 september 14 på 19 05. Använda conv är ett utmärkt sätt att genomföra ett glidande medelvärde I koden du använder, wts är hur mycket du väger varje värde som du gissade summan av den vektorn ska alltid vara lika med en Om du vill vikta varje värde jämnt och göra ett N-rörligt filter så skulle du vilja göra . Använda det giltiga argumentet i samtal kommer att resultera i att ha färre värden i Ms än du har i M Använd samma om du inte tänker på effekterna av nollpolning Om du har signalbehandlingsverktygslådan kan du använda cconv om du vill försöka runda Glidande medelvärde Något liknande. Du borde läsa conv och cconv dokumentation för mer information om du redan har t. You kan använda filter för att hitta ett löpande medelvärde utan att använda en för-loop. Det här exemplet hittar det löpande genomsnittet av en vektor med 16 element, med en fönsterstorlek på 5,2 slät som en del av kurvan Fitting Toolbox som är tillgänglig i de flesta fall. yy smidigt och släpper ut data i kolumnvektorn y med hjälp av ett glidande medelfilter. Resultat returneras i kolumnvektorn yy Standardvärdet för glidande medelvärdet är 5.

No comments:

Post a Comment