Monday 30 October 2017

Matlab Ruchomą Średnią Tablicę


Mam wektor i chcę obliczyć jego średnią ruchomą, używając okna o szerokości 5. Jeśli na przykład wektor jest 1,2,3,4,5,6,7,8, to najpierw wpis wektora wynikowego powinien być sumą wszystkich wpisów w 1,2,3,4,5 tj. 15. drugi wpis wektora wynikowego powinien być sumą wszystkich pozycji w 2,3,4,5,6 tj. 20. W końcu, uzyskany wektor powinien wynosić 15,20,25,30 Jak mogę to zrobić. Konwertacja funkcji leży w twoim zaułku. Ta odpowiedź, trzy różne metody Oto szybki benchmark różny rozmiar wejściowy, stałe okno szerokość 5 przy użyciu timeit można swobodnie zastawiać dziury w komentarzach, jeśli uważasz, że musi być wyrafinowany. conv pojawia się jako najszybsze podejście, o około dwa razy szybsze niż podejście monety przy użyciu filtru i około czterokrotnie szybciej niż Luis Podejście Mendo'a przy użyciu cumsum. Here jest inny benchmark ustalony rozmiar wejściowy 1e4 różnych szerokości okna Tutaj podejście Luis Mendo s cumsum jako jasny zwycięzca, ponieważ jego złożoność jest przede wszystkim zależnie od długości wejścia i jest niewrażliwe na szerokość okna. Aby podsumować, należy should. use podejście conv, jeśli okno jest stosunkowo małe. użyj podejście cumsum, jeśli okno jest stosunkowo large. Code dla benchmarks. I muszę obliczyć średnią ruchomej w serii danych, w obrębie pętli for mam uzyskać średnią ruchomej 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 danych Chcę wykreślić średnie wartości moich danych z średnią ruchoma 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 spiskować to z niewłaściwej ruchomą średnią wybrałem 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 wagi wartości nieważne w tym przypadku Wszystkie wartości es są ważone same. A jeśli robisz to całkowicie złe, mogę uzyskać pomoc z it. My sincerest thanks. asked 23 września w 19 05.Using conv jest doskonałym sposobem na wdrożenie średniej ruchomej W kodzie, używasz, wts to ile ważysz każdą wartość, jak się domyślasz, suma tego wektora powinna zawsze być równa jednemu Jeśli chcesz równomiernie obciążyć każdą wartością i zrobić rozmiar N ruchomego filtra, to chcesz to zrobić. Prawidłowy argument w konwencji spowoduje mniejszą liczbę wartości w Ms niż w M Użyj tej samej wartości, 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ć okrągłej średniej ruchomej Coś jak gdybyś chciał przeczytać dokumentację konwersji i konwersji 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 this example W tym przykładzie znajduje się średnia biegów wektora 16-elementowego, używając rozmiaru okna 5,2 gładko jako część przybornika do łączenia krzywych która jest dostępna w większości przypadków. y y gładka 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 ruchowej to 5,29 Wrzesień, 2017. Średnia Średnia przez splot. jest średnia ruchoma i co to jest dobre. Jak robi uśrednianie dokonane za pomocą convolution. Moving średnia jest prostą operacją wykorzystywaną zwykle do tłumienia hałasu sygnału ustawiamy wartość każdego punktu do średniej wartości w jego sąsiedztwie formula. Here x jest wejście, a y jest sygnałem wyjściowym, podczas gdy rozmiar okna jest w, powinien być nieparzysty Powyższa formuła opisuje operację symetryczną, pobierając próbki z obu stron rzeczywistego punktu. prawdziwy przykład życia Punkt, w którym okno jest faktycznie leżące jest czerwone Wartości poza x mają być zerami. Aby zagrać wokół i zobaczyć efekty średniej ruchomej, spójrz na tę interaktywną demonstrację. Jak to zrobić przez convolution. As może ha przy obliczaniu prostej średniej ruchomej jest podobna do splotu w obu przypadkach okno jest przesuwne wzdłuż sygnału, a elementy w oknie są podsumowane. Więc spróbuj to zrobić to samo za pomocą convolution. Użyj następujących parametrów. Pożądane wyjście jest pierwszym podejściem. Spróbujmy, co otrzymamy, przekonując sygnał x następującym k. Zbiór jest dokładnie trzy razy większy niż oczekiwano. Można również zauważyć, że wartości wyjściowe są podsumowaniem trzy elementy w oknie To dlatego, że podczas splotowania okna przesuwało się wzdłuż, wszystkie elementy w nim są pomnożone przez jeden, a następnie podsumowane. yk 1 cdot x 1 cdot x 1 cdot x. W celu uzyskania pożądanych wartości y wynik zostanie podzielony przez 3.By wzór wraz z podziałem. Ale to nie byłoby optymalne, aby podział podczas splotu Oto pomysł przez przekształcając równanie. W takim przypadku użyjemy następującego jądra k. W ten sposób otrzymamy pożądane wyjście. Ogólnie rzecz biorąc, jeśli chcemy przeprowadzić średnią ruchową przez splot o rozmiarze okna w posłużymy się poniższym kernel. A prostym funkcja robi średnią ruchomą. Jest przykład użycia.

No comments:

Post a Comment