Trzeba obliczyć średnią ruchomą w serii danych, w pętli for mam uzyskać średnią ruchoma przez N 9 dni Tablica, w której mierzy się, to 4 serie 365 wartości M, które same są wartościami średnimi innego zestawu dane chcę wykreślić średnie wartości moich danych z średnią ruchomą w jednym plot. I googled trochę o średnich ruchu i conv polecenia i znalazłem coś, co próbowałem realizacji w moim code. So w zasadzie obliczyć moje średnie i działki to z złej ruchomą średnią I wybrał wartość wts tuż off site matematyki, więc jest to nieprawidłowe źródło Mój problem, czy to, że nie rozumiem, co to jest wts Czy ktoś może wyjaśnić, jeśli ma coś wspólnego z ciężarkami wartości, które są nieważne w tym przypadku Wszystkie wartości są ważone tym samym. A jesli robię to całkowicie złe, mogę uzyskać pomoc z nim. Dziękuję serdecznie. Zaczął się 23 września w 19 05.Using conv jest doskonałym sposobem na implementuje średnią ruchoma W używanym kodzie, wts jest ile ou ważą każdą wartość, jak się domyślasz, suma tego wektora powinna zawsze być równa jednemu Jeśli chcesz równomiernie wyważyć każdą wartość i zrobić filtr wielkości N, to chcesz to zrobić. Użycie prawidłowego argumentu w wyniku konwersji spowoduje Mając mniejsze wartości w Ms niż w M Użyj tego samego, jeśli nie masz wpływu na zero padding Jeśli posiadasz skrzynkę narzędziową do przetwarzania sygnałów, możesz użyć cconv, jeśli chcesz spróbować średniej ruchomej kołowej Coś jak. Należy przeczytać conv i dokumentacja cconv, aby uzyskać więcej informacji, jeśli już nie masz dostępu. Możesz użyć filtru do znalezienia średniej bieżącej bez użycia pętli for Przykład ilustruje średnią bieżącej wektora 16-elementowego, przy użyciu rozmiaru okna 5,2 gładko jako część Curve Fitting Toolbox, który jest dostępny w większości przypadków. Y y gładki y wygładza dane w wektora kolumny y za pomocą ruchomych filtrów średnich Wyniki są zwracane w wektora kolumny yy Domyślny przedział dla średniej ruchomej wynosi 5.Using MATLAB, jak mogę znajdź 3-dniowe średniej ruchomej konkretnej kolumny matrycy i dodać średnią ruchomą do tej matrycy Próbuję obliczyć 3-dniową średnią ruchoma od dołu do góry matrycy pod warunkiem, że mój kod. Znosząc następujące macierzy a i maski. I próbowałem wdrożenia polecenia conv, ale otrzymuję błąd Oto conv command, próbuję użyć na 2 kolumny matrycy a. The wyjście I pragnienie jest podane w następującej matrycy. Jeśli masz jakieś sugestie, chciałbym bardzo docenić to Dziękuję. Dla kolumny 2 matrycy a, jestem obliczania 3-dniowej średniej ruchomej w następujący sposób i umieszczenie wyniku w kolumnie 4 matrycy I zmienił nazwę matrycy jako pożądany. Output tylko dla ilustracji 3-dniowa średnia z 17 , 14, 11 wynosi 14, 3-dniowa średnia z 14, 11, 8 to 11, 3 dniowa średnia z 11, 8, 5 wynosi 8, a 3-dniowa średnia z 8, 5, 2 to 5. w dolnym 2 wierszach dla czwartej kolumny, ponieważ obliczenia dla 3-dniowej średniej ruchomej zaczynają się od dołu. Prawidłowe wyjście nie będzie pokazane do co najmniej 17, 14 i 11 Mam nadzieję, że ma to sens Aaron 12 czerwca 13 w 1 28. Ogólnie pomogłoby to, gdybyś wykazywał błąd W tym przypadku robisz dwie rzeczy źle. Pierwsze współbieżne musi być podzielone przez trzy lub długość średniej ruchomej. Drugie, zwróć uwagę na wielkość c Nie można po prostu zmieścić się w c Typowy sposób na uzyskanie średniej ruchomej powinien być taki sam, ale nie wygląda tak, jak chcesz. są zmuszone do korzystania z kilku wierszy. Download movAv m zobacz także movAv2 - zaktualizowana wersja umożliwiająca ważenie. Opis Matlab zawiera funkcje zwane movavg i tsmovavg średnią ruchliwą w programie Financial Toolbox, movAv ma na celu skopiowanie podstawowych funkcji tych Kod tutaj jest dobrym przykładem zarządzania indeksami wewnątrz pętli, które mogą być mylące, aby rozpocząć od celowo celowo trzymałem kod krótko i prosto, aby zachować ten proces. Clear. movAv wykonuje prostą średnią ruchliwą, która może być użyta do odzyskania hałaśliwego da ta w pewnych sytuacjach Działa poprzez przyjęcie średniej wartości wejściowej y przez okno czasu przesuwu, którego wielkość jest określona przez n Im większy n, tym większa jest ilość wygładzania efektu n względem długości wektora wejściowego y i skutecznie, sortuje filtr dolnoprzepustowy - patrz przykłady i rozważania. Ponieważ ilość wygładzania dostarczana przez każdą wartość n jest względna względem długości wektora wejściowego, zawsze warto przetestować różne wartości, aby zobaczyć, co jest odpowiednie Pamiętaj również, że n punktów są tracone na każdej średniej, jeśli n wynosi 100, pierwsze 99 punktów wektora wejściowego don t zawierają wystarczająco dużo danych dla 100pt średnio Można to uniknąć nieco przez ułożenie średnie, na przykład, poniższy kod i wykres porównują wiele różnych średnich długości okna Zwróć uwagę, jak płynnie 10 10pt jest porównywana z pojedynczą średnią 20pt W obu przypadkach 20 punktów danych jest tracone w całości. Utwórz xaxis x 1 0 01 5 Wygeneruj hałas hałasuReps 4 hałas repmat randn 1, strajk numel x noiseReps, noiseReps, 1 szum hałasu, 1, hałas hałasu generuje szumy ydata y exp x 10 hałas 1 długość x perfrom średnie y2 movAv y, 10 10 pkt y3 movAv y2, 10 10 10 pt y4 movAv y, 20 20 pt y5 movAv y, 40 40 pt y6 movAv y, 100 100 pt Wykres wykresu wykresu x, y, y2, y3, y4, y5, y6 - dane, średnia ruchoma 10pt, 10 10pt, 20pt, 40pt, 100pt xlabel x ylabel y tytuł Porównanie przenoszenia ruchu averages. movAv m kodowanie przebiegu funkcji movAv y, n Pierwsza linia definiuje nazwę funkcji, wejść i wyjść Wejście x powinien być wektorem danych do wykonywania średniej na, n powinna być liczbą punktów do wykonywania średniej nad wyjściem będzie zawierać uśrednione dane zwracane przez funkcję Preallocate output output NaN 1, numel y Znajdź punkt środkowy n midPoint round n 2 Główne zadanie funkcji odbywa się w pętli for, ale przed rozpoczęciem przygotowania dwóch rzeczy Fir stly wyjście jest wstępnie przydzielone jako NaN, to służył dwóch celom Po pierwsze prealokacja jest ogólnie dobra praktyka, ponieważ zmniejsza żonglowanie pamięci Matlab musi zrobić, po drugie, sprawia, że bardzo łatwo umieścić uśrednione dane na wyjście tego samego rozmiaru, wektor wejściowy Oznacza to, że ten sam xaxis może być używany później dla obu, co jest wygodne do spisu, alternatywnie NaN można usunąć później w jednej linii wyjścia kodu. Zmienna midpoint będzie używana do wyrównywania danych wektora wyjściowego Jeśli n 10, 10 punktów zostanie utracone, ponieważ w pierwszych 9 punktach wektora wejściowego nie ma wystarczająco dużo danych, aby uzyskać 10-punktową średnią. Ponieważ wyjście będzie krótsze niż dane wejściowe, musi być prawidłowo wyrównane midPoint należy używać tak, aby na początku i na końcu była zgubna ilość danych, a dane wejściowe są ustawione w linii z wyjściem przez bufory NaN utworzone przy wstępnym przypisywaniu wyjścia. w przypadku 1 długości y-n Znajdź zakres indeksu, aby przeciętnie obliczyć abban Oblicz średnia wydajność a midPoint oznacza koniec yab W samej pętli fora średnia przejęta przez każdy kolejny segment danych wejściowych Pętla będzie działać dla określonego jako 1 do długości wejścia y, minus danych, które zostaną utracone n Jeśli wejście ma 100 punktów i n wynosi 10, pętla będzie działać od 1 do 90. Oznacza to, że pierwszy indeks segmentu jest uśredniony Drugi indeks b jest po prostu n-1 Więc na pierwszej iteracji, a 1 n 10 tak b 11-1 10 Pierwsza średnia przejęta przez yab lub x 1 10 Średnia wartość tego segmentu, która jest pojedynczą wartością, jest przechowywana na wyjściu w indeksie midpoint lub 1 5 6. Na drugiej iteracji , a 2 b 2 10-1 11 więc średnica zostaje przejęta przez x 2 11 i zapisana w wyjściu 7 W ostatniej iteracji pętli dla wejścia o długości 100, 91 b 90 10-1 100, ponad x 91 100 i zapisane w wyjściu 95 To pozostawia wyjście z całkowitym n 10 wartości NaN przy indeksie 1 5 i 96 100. Przykłady i rozważania Przekazywanie średnich jest przydatne w niektórych sytuacjach, ale nie zawsze najlepszym wyborem Oto dwa przykłady, w których niekoniecznie są optymalne. Kalibracja mikrofonu Ten zestaw danych reprezentuje poziomy każdej częstotliwości generowanej przez głośnik i zarejestrowany przez mikrofon o znanej liniowej odpowiedzi. Wyjście głośnika zmienia się częstotliwość, ale możemy poprawić tę odmianę za pomocą danych kalibracji - wyjście może być ustawione na poziomie w celu uwzględnienia fluktuacji kalibracji. Notwierdza, że surowe dane są hałaśliwe - oznacza to, że niewielka zmiana częstotliwości wydaje się wymagać duża, niepoprawna, zmiana poziomu w celu uwzględnienia Jest to realistyczne Lub czy jest to produkt środowiska nagrywania W tym przypadku rozsądne jest zastosowanie średniej ruchomej, która wygładza krzywą częstotliwości poziomu, aby zapewnić krzywą kalibracji, która jest nieco mniej niestabilna Ale dlaczego nie jest to optymalne w tym przykładzie. Dodatkowe dane byłyby lepsze - wielokrotne kalibracje są uśredniane razem, aby zniszczyć szum w systemie, dopóki jest uruchomiony dom i dostarczyć krzywej mniej subtelne szczegóły utracone Średnia średnia może tylko przybliżyć to i może usunąć niektóre wyższe częstotliwości dipów i szczytów z krzywej, która naprawdę istnieją. Sine fale Korzystanie średniej ruchomej na falach sinusowych podkreśla dwa punkty. Generalnie kwestia wyboru rozsądnej liczby punktów do wykonywania średniej nad. To proste, ale istnieją bardziej skuteczne metody analizy sygnału niż uśrednione oscylujące sygnały w domenie czasu. W tym wykresie, oryginalna fala sinusoidy jest wykreślana w niebieskim szumie dodane i wykreślone jako krzywa pomarańczowa Średnia ruchoma jest wykonywana w różnych ilościach punktów, aby sprawdzić, czy pierwsza fala może zostać odzyskana 5 i 10 punktów daje rozsądne wyniki, ale nie usuwać całego hałasu, gdzie zaczyna się coraz większa liczba punktów utrata szczegółów amplitudy, gdy średnia rozciąga się w różnych fazach, pamiętaj, że fala oscyluje wokół zera, a średnia -1. 0.Innym podejściem byłoby zbudowanie filtra dolnoprzepuszczalnego niż może być zastosowany do sygnału w dziedzinie częstotliwości nie będę wchodził w szczegóły, ponieważ wykraczałoby poza zakres tego artykułu, ale ponieważ hałas jest znacznie większa niż częstotliwość podstawowa fal, byłoby w tym przypadku dość łatwo skonstruować filtr dolnoprzepustowy niż usunie szum o wysokiej częstotliwości.
Comments
Post a Comment