Monday 20 November 2017

Moving average przykład w matlaba


Przeprowadzka Średnia W programie Matlab Często zastanę się nad potrzebą uśrednienia danych, że muszę zredukować hałas trochę kawałek. Napisałem kilka funkcji, aby dokładnie to, czego chcę, ale matlab wbudowane w funkcję filtru działa całkiem nieźle. Tu napisać o uśrednieniu danych 1D i 2D. Filtr 1D może być realizowany przy użyciu funkcji filtra. Funkcja filtrująca wymaga co najmniej trzech parametrów wejściowych: współczynnika licznika dla filtra (b), współczynnika mianownika filtra (a) oraz oczywiście oczywiście danych (X). Filtr średniej prędkości można zdefiniować po prostu: W przypadku danych 2D możemy użyć funkcji filtru Matlabs2. Aby uzyskać więcej informacji na temat działania filtru, wpisz: Oto szybka i brudna implementacja filtru średniego 16 na 16. Najpierw musimy zdefiniować filtr. Ponieważ chcemy tylko równego udziału wszystkich sąsiadów, możemy użyć tych funkcji. Dzielimy wszystko 256 (1616), ponieważ nie chcemy zmieniać ogólnego poziomu (amplitudy) sygnału. Aby zastosować filtr, po prostu powiedzmy, że poniżej Poniżej przedstawiono wyniki fazy interferogramu SAR. W tym przypadku zakres znajduje się w osi Y a azymut jest odwzorowywany na osi X. Filtr miał szerokość 4 pikseli w zakresie i 16 pikseli szerokości w Azimuth. Jestem próbuje zakończyć projekt przydziału matlab z następującym pytaniem: Napisz funkcję zwaną movingaverage, która ma skalar o nazwie x jako argument wejściowy i zwraca skalar. Funkcja wykorzystuje bufor do przechowywania poprzednich wejść, a bufor może przechowywać maksymalnie 25 wejść. W szczególności funkcja musi zapisać ostatnie 25 wejść wektora (bufor). Za każdym razem, gdy wywołana jest funkcja, kopiuje argument wejściowy do elementu bufora. Jeśli w buforze jest już 25 wejść, to odrzuca najstarszy element i zapisuje bieżący w buforze. Po zapisaniu danych wejściowych w buforze zwraca średnią wszystkich elementów w buforze. Rozwiązanie, które podaję, jest następujące: Według autoryzatora moja funkcja działa prawidłowo, gdy wartości 1-50 przechodzą kolejno, ale nie, gdy wartości hałasu sinusoidy przechodzą kolejno (co zostało poinformowane, że może być spowodowane niektórymi rodzaj błędu okrągły). Byłbym wdzięczny, jeśli którykolwiek z was mógłby podać kilka wskazówek dotyczących ewentualnych kroków błędu w moim kodzie (dołączony powyżej). Dziękuję z wyprzedzeniem 29 września 2017 r. Przenoszenie średniej przez splot Co to jest średnia ruchoma i co jest dobre dla Jak przeprowadzić uśrednianie przeprowadzone przy użyciu splotu? Średnia ruchoma to prosta operacja używana zwykle do tłumienia szumu sygnału: ustawiamy wartość każdego wskazać średnią wartości w jej sąsiedztwie. Zgodnie ze wzorem: Tutaj x jest wejściem, a y jest sygnałem wyjściowym, podczas gdy rozmiar okna jest w, powinien być nieparzysty. Powyższa formuła opisuje operację symetryczną: próbki są pobierane z obu stron rzeczywistego punktu. Poniżej jest prawdziwy przykład życia. Punkt, na którym jest okno jest rzeczywiście czerwony. Wartości poza x mają być zerami: bawić się i zobaczyć efekty średniej ruchomej, spójrz na tę interaktywną demonstrację. Jak to zrobić przez splot Jak zauważyłeś, obliczanie prostej średniej ruchomej jest podobne do splotu: w obu przypadkach okno jest przesuwane wzdłuż sygnału, a elementy w oknie są podsumowane. Więc spróbuj tego zrobić, używając splotu. Użyj następujących parametrów: pożądane wyjście to: jako pierwsze podejście, spróbujmy to, co otrzymamy przez przekonanie sygnału x przez następujące k kernel: Wyjście jest dokładnie trzy razy większe niż oczekiwano. Można również zauważyć, że wartością wyjściową są podsumowanie trzech elementów w oknie. To dlatego, że podczas splotowania okna przesuwają się wzdłuż, wszystkie elementy są pomnożone przez jeden, a następnie podsumowane: yk 1 cdot x 1 cdot x 1 cdot x Aby uzyskać pożądane wartości y. wynik zostanie podzielony przez 3: przez wzór obejmujący podział: ale czy nie byłoby to optymalne do podziału podczas splotu Oto pomysł polegający na przekształceniu równania: użyjemy więc następującego jądra: w ten sposób będziemy uzyskać pożądane wyjście: Ogólnie: jeśli chcemy zrobić średnią ruchomej przez splot o wielkości okna w. będziemy używać następującego k-jądra: prostą funkcją roboczą średniej ruchomej jest: przykładowe użycie to: muszę obliczyć średnią ruchomej w serii danych w pętli for. Muszę uzyskać średnią ruchomej przez dziewięć dni. Tablica Im w komputerach 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 ze średnią ruchoma w jednym wykresie. I googled nieco o ruchu średnich i conv polecenia i znalazłem coś, co próbowałem wdrożyć w moim kodzie .:. Więc w zasadzie obliczyć moje średnie i spróbować to z (zła) średnia ruchoma. Wybrałem wartość wts tuż przy stronie matematyki, więc jest to błędne. (źródło: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mój problem jest jednak taki, że nie rozumiem, co to jest. Czy ktoś mógłby wyjaśnić, jeśli ma coś wspólnego z wagami wartości: jest to nieważne w tym przypadku. Wszystkie wartości są ważone tak samo. A jeśli robię to całkowicie złe, mogę uzyskać pomoc z nim moje najszczersze podziękowania. zapytał 23 września o godzinie 19:05 Korzystając z conv jest doskonałym sposobem na zaimplementowanie średniej ruchomej. W kodzie, którego używasz, ws jest tym, ile ważysz każdą wartość (jak się domyślasz). suma tego wektora powinna zawsze być równa. Jeśli chcesz równomiernie wyważyć każdą wartość i zrobić filtr rozmiaru N, to chcesz to zrobić Używając prawidłowego argumentu w conv będzie powodować mniejsze wartości Ms niż masz w M. Użyj tego samego, jeśli nie masz nic przeciwko efektom zero wypełnienia. Jeśli masz skrzynkę narzędziową do przetwarzania sygnałów, możesz użyć cconv, jeśli chcesz spróbować średniej ruchomej. Coś, co chcesz przeczytać dokumentację conv i cconv, aby uzyskać więcej informacji, jeśli już nie masz. Możesz użyć filtru, aby znaleźć średnią ruchu bez użycia pętli for. W tym przykładzie znajdziemy średnią bieżącej wektora 16-elementowego, przy użyciu rozmiaru okna 5. 2) gładka jako część przybornika do dopasowywania krzywych (która jest dostępna w większości przypadków) yy gładka (y) wygładza dane wektora kolumny y przy użyciu filtra średniej ruchomej. Wyniki są zwracane w wektora kolumny yy. Domyślnym przedziałem dla średniej ruchomej jest 5.

No comments:

Post a Comment