Friday 17 November 2017

Ruchome Przeciętne Rekurencyjne Wdrożenie


Zasadniczo mam tablicę wartości takich jak this. The powyżej tablicy jest uproszczony, I m zbieranie 1 wartość na milisekundy w moim rzeczywistym kodzie i trzeba przetworzyć wyjście na algorytm I napisał, aby znaleźć najbliższy szczyt przed punktem w czasie Moje logika nie powiedzie się, ponieważ w moim przykładzie powyżej, 0 36 jest prawdziwym szczytem, ​​ale mój algorytm patrzył wstecz i zobaczył ostatnią cyfrę 0 25 jako szczyt, ponieważ istnieje spadek do 0 24 przed nim. Celem jest podjęcie tych wartości i zastosować algorytm do nich, które będą wygładzić je trochę tak, że mam bardziej liniowe wartości tj. chciałbym moje wyniki być curvy, a nie jaggedy. I ve powiedziano, aby zastosować wykładniczy ruchomy filtr średnich do moich wartości Jak mogę zrobić to To naprawdę trudne dla mnie do czytania równań matematycznych, ja zajmuje dużo lepiej z kodu. Jak mogę przetworzyć wartości w mojej tablicy, stosując wykładniczą średnią ruchomą obliczyć nawet je out. asked Feb 8 12 na 20 27.To obliczyć mnożona średnia ruchoma, musisz zachować stan wokół i potrzebujesz parametru strojenia To wymaga małej klasy przy założeniu, że używasz Java 5 lub późniejszej. Zauważ, że parametr zaniku, jaki chcesz wzbogacić, powinien wynosić od 0 do 1, a potem użyć średniej do filtrowania. Kiedy czytasz stronę na temat matematyki nawracanie, wszystko, co musisz wiedzieć, kiedy zmienia to w kodzie, to że matematycy lubią pisać indeksy w tablicach i sekwencjach z indeksami dolnymi. Oni też kilka innych notacji, co nie pomaga. Jednak EMA jest całkiem prosta, jak tylko potrzebujesz aby zapamiętać jedną starą wartość, nie wymaga skomplikowanych tablic stanowych. odpowiedzi 8 lutego w 20 42. TKKocheran Całkiem niezłe, jeśli rzeczy mogą być proste Jeśli zaczynasz od nowej sekwencji, pobierz nową uśrednioną uwagę Zauważ, że pierwsze kilka terminów w uśredniona sekwencja skoknie trochę z powodu efektów granicznych, ale otrzymasz te z innymi średnikami ruchomymi zbyt, jednakże dobrą zaletą jest to, że można zawrzeć średnią ruchliwą logikę w uśredniony i eksperyment bez zakłócania t reszta twojego programu zbyt wiele osób z Donal'a 9 lutego 12 w 0 06. Mam trudności ze zrozumieniem pytań, ale spróbuję odpowiedzieć anyway.1 Jeśli twój algorytm znalazł 0 25 zamiast 0 36, to jest źle Nieprawidłowe, ponieważ zakłada się monotoniczny wzrost lub spadek, który zawsze się zmienia lub zawsze ustępuje Jeśli nie prześlesz wszystkie dane, punkty danych --- w miarę ich prezentacji --- są nieliniowe Jeśli naprawdę chcesz znaleźć maksimum wartość pomiędzy dwoma punktami w czasie, a następnie rozłożyć tablicę z tmin na tmax i znaleźć maksimum tej podbudówki.2 Teraz koncepcja przenoszenia średnich jest bardzo prosta wyobraź sobie, że mam poniższą listę 1 4, 1 5, 1 4, 1 5, 1 5 Mogę to wygładzić, biorąc średnio dwie liczby 1 45, 1 45, 1 45, 1 5 Zwróć uwagę, że pierwszy numer to średnia 1 5 i 1 4 sekundy, a pierwsza druga nowa lista jest średnia z 1 4 i 1 5 trzeciej i drugiej starej listy trzeciej nowej listy średnio 1 5 i 1 4 czwarte i trzecie, i tak dalej uczyniły to okresem trzy lub cztery lub n Zauważ, że dane są dużo gładsze Dobrym sposobem na wyświetlenie średnich ruchów w pracy jest przejście do Google Finance, wybierz czas, w którym próbują Tesla Motors dość niestabilne TSLA i kliknij Technicals na dole wykres Wybierz średnia ruchoma z danym okresem i Średnia ruchoma wykładnicza w celu porównania ich różnic. Średnia ruchoma jest raczej kolejnym opracowaniem, ale odważa starsze dane mniej niż nowe dane, tak, aby zrównoważyć wygładzanie w kierunku tyłu Proszę przeczytać wpis Wikipedii. Więc to jest więcej komentarza niż odpowiedź, ale małe pole komentarza było tylko małe. Powodzenia. Jeśli masz kłopoty z matematyką, możesz przejść z prostą średnią ruchoma zamiast wykładniczej Tak otrzymasz wynik będzie ostatnia x wyrażona przez x niepotwierdzona pseudokodka. Zauważ, że będziesz musiał obsługiwać początek i koniec części danych, ponieważ wyraźnie możesz średnio 5 ostatnich warunków, gdy jesteś w Twoim drugim punkcie danych , re są bardziej efektywnymi sposobami obliczania tej średniej sumy ruchomej - najstarszej najnowszej, ale jest to, aby uzyskać pojęcie, co się dzieje. Smith, Ph DA ogromną zaletą ruchomych filtrów średnich jest to, że może być zaimplementowany za pomocą algorytmu, który jest bardzo szybki Aby zrozumieć ten algorytm, wyobraź sobie, że przechodzisz sygnał wejściowy, x, przez siedem punktowy przeciętny filtr, aby utworzyć sygnał wyjściowy , y teraz spójrzmy, jak obliczane są dwa sąsiadujące punkty wyjściowe, y 50 i y 51. Są to prawie takie same punkty obliczeniowe od x 48 do x 53 dla y 50 i ponownie dla y 51 Jeśli y 50 już zostało wyliczony, najbardziej efektywny sposób obliczania y 51 wynosi. Kiedy ustalono y 51 za pomocą y50, to y 52 można obliczyć z próbki y 51 i tak dalej Po pierwszym punkcie obliczonym w y wszystkie pozostałe punkty można znaleźć tylko jeden dodatek i odejmowanie na punkt Może to być wyrażone w równaniu. Notyczność, że to równanie używa dwóch źródeł danych do obliczania każdego punktu w punktach wyjściowych z wejściowych i wcześniej obliczonych punktów z wyjścia Jest to na przykład równanie rekurencyjne, co oznacza, że ​​wynik jednego obliczenia są wykorzystywane w przyszłych obliczeniach Termin rekurencyjny ma również inne znaczenia, zwłaszcza w informatyce Rozdział 19 omawia wiele filtrów rekurencyjnych bardziej szczegółowo Należy pamiętać, że średni ruchowy rekurencyjny filtr różni się znacznie od typowych filtrów rekursywnych W szczególności większość filtrów rekursywnych mają nieskończenie długie odpowiedzi impulsowe IIR, składające się z sinusoid i wykładniczości Odpowiedź impulsowa średniej ruchomej jest prostokątną impulsową sondą impulsową lub FIR. Ten algorytm jest szybszy niż inne filtry cyfrowe z kilku powodów Pierwsze, są tylko dwa obliczenia na punkt, niezależnie od długości filtra jądra Drugie, dodawanie i odejmowanie są jedyną matematyką Trzeci schemat indeksowania jest bardzo prosty Każdy indeks w równaniu 15-3 znajduje się poprzez dodanie lub odjęcie stałych całkowitych, które można obliczyć przed rozpoczęciem filtrowania iep i q Forth, całość algorytm może być przeprowadzony z reprezentacją liczb całkowitą W zależności od używanego sprzętu liczba całkowita może być większa niż kolejność wielkości szybciej niż zmiennoprzecinkowe. Zaskakująco, reprezentacja liczb całkowitych działa lepiej niż zmiennoprzecinkowe z tym algorytmem, a nie szybsze Okrągły błąd z arytmetyki zmiennoprzecinkowej może powodować nieoczekiwane rezultaty, jeśli nie jesteś ostrożny Na przykład wyobraź sobie 10 000 sygnałów próbek, które są filtrowane przy użyciu tej metody Ostatnia próba w filtrowanym sygnale zawiera skumulowany błąd 10 000 dodatków i 10 000 odejmowań To pojawia się w sygnale wyjściowym jako przesunięcie offsetu Integers nie ma tego problemu, ponieważ w arytmetyce nie występuje błąd okrągły Jeśli w tym algorytmie ma się używać zmiennoprzecinkowego, program w Tabeli 15-2 pokazuje, jak używać akumulatora o podwójnej precyzji, aby wyeliminować ten dryft. Średnia ruchoma jako filtr. Średnia ruchoma jest często wykorzystywana do wygładzania danych w obecności hałas Zwykła średnia ruchoma nie zawsze jest rozpoznawana jako filtr Finite Impulse Response FIR, chociaż jest to jeden z najpopularniejszych filtrów w przetwarzaniu sygnałów. Traktowanie go jako filtra umożliwia porównanie go np. z filtrami windowed-sinc patrz artykuły dotyczące filtrów górnoprzepustowych i pasm przenoszących pasmo górne i pasma odrzucania dolnoprzepustowego dla przykładów tych Najważniejszą różnicą w tych filtrach jest to, że średnia ruchoma jest odpowiednia dla sygnałów, dla których przydatne informacje są zawarte w dziedzinie czasowej co powoduje wygładzanie pomiarów przez uśrednianie jest głównym przykładem Filtry Windowed-sinc z drugiej strony są silnymi wykonawcami w dziedzinie częstotliwości z wyrównywaniem w przetwarzaniu dźwięku jako typowy przykład Jest am rudy szczegółowy porównanie obu typów filtrów w domenie czasu i skuteczność filtrów w domenie częstotliwości Jeśli masz dane, dla których zarówno czas, jak i dziedzina częstotliwości są ważne, warto zajrzeć do Wariacje na temat ruchomych średnic, liczba ważonych wersji ruchomych średnich, które są w tym lepsze. Średnia ruchoma długości N może być zdefiniowana jako. pisywana, jak zwykle jest wykonywana, przy czym aktualna próbka wyjściowa jest średnią z poprzednich N próbek Widziana jako filtr, średnia ruchoma wykonuje splot sekwencji wejściowej xn z prostokątnym impulsem o długości N i wysokości 1 N, aby utworzyć obszar impulsu, a tym samym zysk filtra, jeden W praktyce najlepiej, aby N Nieparzysty Pomimo, że średnia ruchoma może być obliczona przy użyciu parzystej liczby próbek, przy nieparzystej wartości dla N ma tę zaletę, że opóźnienie filtru będzie liczbą całkowitą próbek, ponieważ opóźnienie filtru z N próbkami jest dokładne y N-1 2 Średnia ruchoma może być wyrównana dokładnie do pierwotnych danych, przesuwając ją przez liczbę całkowitą próbek. Domena czasu Ponieważ średnia ruchoma jest splotem z prostokątnym impulsem, jej odpowiedź częstotliwościowa jest funkcją sinc czyni to coś takiego jak podwójny filtr windowed-sinc, ponieważ jest to splot z impemem sinc, który skutkuje prostokątną odpowiedzią na częstotliwość. To jest to pasmo przenoszenia, które sprawia, że ​​średnia ruchoma jest słabym wykonaniem w dziedzinie częstotliwości. działa bardzo dobrze w dziedzinie czasu Dlatego doskonale nadaje się do wygładzania danych w celu usunięcia zakłóceń, przy jednoczesnym zachowaniu szybkiej odpowiedzi krokowej Rysunek 1.Rysunek 1 Wygładzanie za pomocą filtra średniej ruchomej. Dla typowego dodatkowego białego Gaussa Noise AWGN że uśrednianie N próbek powoduje zwiększenie współczynnika SNR przez współczynnik sqrt N Ponieważ hałas poszczególnych próbek nie jest ze sobą skorelowany, nie ma powodu, aby traktować każdą próbkę inaczej W związku z tym średnia ruchoma, która daje każdą próbkę taką samą wagę, pozbędzie się maksymalnej ilości hałasu przy danej ostrości. Ponieważ jest to filtr FIR, średnia ruchoma może być zaimplementowana przez splot ta sama skuteczność lub brak tego jak każdy inny filtr FIR Jednak może być również implementowany rekursywnie, w sposób bardzo wydajny Wynika to bezpośrednio z definicji, że ta formuła jest wynikiem wyrażeń dla yn i yn 1, tj. gdy zauważymy, że zmiana pomiędzy yn 1 i yn polega na tym, że na końcu znajduje się dodatkowy termin xn 1 N, podczas gdy termin x nN 1 N jest usuwany od początku W praktycznych zastosowaniach często można pominąć podział przez N dla każdej kadencji przez kompensację powstałego zysku N w innym miejscu Ta rekursywna implementacja będzie znacznie szybsza niż splot Każda nowa wartość y może być obliczona z tylko dwoma dodatkami, zamiast N dodatków, które byłyby konieczne dla str dokładna implementacja definicji Jedyną rzeczą, na którą trzeba zwrócić uwagę na rekursywną implementację jest to, że gromadzą się błędy zaokrąglania To może być problemem w Twoim wniosku, ale sugeruje również, że ta implementacja rekurencyjna będzie działać lepiej w przypadku implementacji całkowitej niż z liczbą zmiennoprzecinkową To dość nietypowe, ponieważ implementacja zmiennoprzecinkowa jest zwykle prostsza. Wniosek musi być taki, że nigdy nie należy lekceważyć użyteczności prostego ruchomego filtra w aplikacjach przetwarzania sygnału. Filter Design Tool. Ten artykuł jest uzupełniany za pomocą narzędzia do projektowania filtrów Eksperymentuj z różnymi wartościami dla N i wizualizuj uzyskane filtry Wypróbuj teraz.

No comments:

Post a Comment