Filtracja Danych w Matlabie - Kompletny Przewodnik

Matlab w dużej mierze jest spożytkowywany do symulacji i modelowania różnych procesów. Można też za jego pomocą dokonywać obróbki sygnałów audio, wideo, obrazów oraz różnych innych plików przechowujących praktycznie każdy rodzaj danych.

Wstępna Analiza Danych Pomiarowych

Praktyka pokazuje, że proces akwizycji danych jest podatny na różnego rodzaju zakłócenia, a więc dane w zależności od charakteru mogą zawierać różnego rodzaju błędy. Możemy się spotkać z sytuacjami gdzie w zbiorze brakuje części wartości, w sygnale występują zakłócenia, w danych są błędy grube (wartości znacznie odbiegające od trendu), itp. Ręczne usuwanie takich artefaktów zazwyczaj nie jest możliwe ze względu na duże rozmiary zbiorów. Na szczęście MATLAB ma wbudowane funkcje, które przychodzą nam z pomocą. Prześledźmy najczęściej występujące sytuacje z którymi możemy się spotkać oraz funkcje służące do wstępnej analizy danych pomiarowych.

Brakujące Dane

Jeżeli w zbiorze z jakiś przyczyn cześć danych nie została zapisana lub podczas importu MATLAB nie potrafił ich odczytać, to komórki takie są wypełniane znacznikiem NaN (dla danych numerycznych), NaT (dla szeregów czasowych), <missing> dla danych tekstowych. Używając funkcji ismissing możemy sprawdzić, czy w danych znajdują się brakujące rekordy.

Składnia:

TF = ismissing(A)

Przeczytaj także: Definicja i pomiar filtracji kłębuszkowej

Gdzie A to zbiór który chcemy sprawdzić, a TF to macierz logiczna o rozmiarze odpowiadającym macierzy A, zawierająca jedynki w miejscach gdzie zostały wykryte brakujące dane. Opcjonalny parametr indicator pozwala zdefiniować dodatkowe elementy (poza NaN, NaT, <missing>), które będą interpretowane jako brakujące dane.

Brakujące wartości możemy je łatwo usunąć bądź zastąpić konkretnymi wartościami. Tu z pomocą przychodzą gotowe funkcje:

  • rmmissing - do usuwania brakujących wartości
  • fillmissing - do zastępowania brakujących wartości

Działanie pierwszej funkcji jest trywialne więc odsyłam Was do systemu pomocy MATLABA aby poznać jej składnie. Druga funkcja umożliwia zastępowanie wartości na kilka sposobów. Między innymi możemy do tego celu użyć interpolacji. Prześledźmy jej działanie na poniższym przykładzie. Zasymulujmy, że w danych zarejestrowanych przez kartę pomiarową brakuje wartości pomiędzy -0.5V a 0.5V i uzupełnijmy je za pomocą fillmissing.

Wartości Odbiegające od Trendu i Zaszumione Sygnały

Inna sytuacja z którą możemy się spotkać, szczególnie w zarejestrowanych danych z karty pomiarowej, to kiedy sygnał jest zaszumiony, lub występują w nim wartości znacznie odbiegające od trendu (błędy grube) będące wynikiem działania np. zakłóceń.

Jak poprawić jakość obrazu linii papilarnych w Visual C++? wynikiem złego pomiaru. obraz informacji pomiarowej? interpolowanymi. MATLABie funkcje: isoutlier, filloutliers i rmoutliers.

Przeczytaj także: Webber AP8400 - wymiana filtrów

Druga grupa funkcji służy do „wygładzania” zaszumionych przebiegów. Ich zasada działania polega na zastosowaniu algorytmu wykorzystującego ruchome okno czasowe, w którym dane są filtrowane z niepożądanych składowych. Ta „filtracja” może odbywać się z wykorzystaniem średniej ruchomej, mediany ruchomej, lub innych metod. Proces ten można sobie wyobrazić w ten sposób, że dla wszystkich próbek z wycinka sygnału (okno czasowe o ustalonej długości) jest obliczana wartość średnia lub mediana. Tak obliczona wartość jest nową wartością próbki sygnału przypadającą na środek okna. Następnie okno jest przesuwane i cały proces się powtarza. Tym samym dzięki procesowi uśredniania sąsiednich próbek sygnału, lokalne zakłócenia są niwelowane, a wynikowy sygnał zawiera pierwotny trend sygnału.

Funkcje z tej grupy to: smooth, smoothdata, movmean, mov median.

Przykładowo, sygnał został on wygładzony metodą średniej ruchomej z oknem o długości 6 próbek. MATLABA przynosi pożądany skutek. zostało pokazane w tym wpisie i warto przeczytać dokumentacje.

Filtry Cyfrowe w Matlabie

Poszukuje materiałów związanych z projektowaniem filtrów cyfrowych IIR z zastosowaniem środowiska MATLAB. Najprościej chyba stworzyć filtr we wbudowanym w matlaba narzędziu "fdatool" (uruchamiane z linii poleceń). Masz wyliczone współczynniki dla połączonych kaskadowo dwóch biquadów.... Masz przez to m.in. zredukowany wpływ zaokrągleń na działanie filtra...

Zaokrąglanie Współczynników Transmitancji Filtra

Czy ktoś zna odpowiednie funkcje, które można zastosowac do zaokrąglania dziesiętnego oraz zaokrąglania do potęg liczby 2 współczynników transmitancji filtra SOI o wysokim rzędzie ? Projektuję filtr SOI rzędu 500 i nie chce mi się liczyc wszystkiego ręcznie. Chcę wykorzystac do tych zaokrągleń Matlaba, ale nie znam odpowiedniej funkcji.

Przeczytaj także: Optymalne rozcieńczenie bimbru

Licznik i mianownik transmitancji filtra pomnożyć przez stałą wartość. Najlepiej potęgę 2 (bo jak sobie możesz sprawdzić, w kodzie pojawi się dzielenie, które akurat tutaj sprowadzi się do przesuwania liczby o ileś bitów w prawo). Wyniki zaokrąglić. Sprawdzić charakterystyki filtru po skwantowaniu współczynników.

Filtry IIR

Witam koledzy! Mam na DSP laborkę z filtrów IIR i w jednym zadaniu mam napisać własną funkcję do filtrowania sygnału wygenerowanym filtrem IIR, coś na wzór filtfilt() tylko pewnie z większymi błędami w obliczeniach. Po wygenerowaniu filtru mam dwa wektory ze współczynnikami [L, M].

Jednak w takim projekcie do rozdzielenia dwóch pasm to ja bym użył (najprościej) dwóch niezależnie zaprojektowanych filtrów IIR pierwszego lub drugiego rzędu.

Transmitancję filtru możesz zapisać w postaci DIMPULSE(NUM,DEN) plots the impulse response of the polynomial transfer function G(z) = NUM(z)/DEN(z) where NUM and DEN contain the polynomial coefficients in descending powers of z.

Filtry Pasma Przepustowego

Witam Mam do odfiltrowania z sygnału PWM trzy pierwsze harmoniczne (50, 100 i 150 Hz). Najlepiej użyć filtru środkowo-przepustowego, tak by przepuszczał wszystko w pasmie od 50 do 150Hz. Do tego celu chciałem użyć filtr z bloczku "Analog Filter Design" - nastawiłem częstotliwość dolną (50*2*pi rad/s) i górna (150*2*pi rad/s).

Inne Rodzaje Filtrów

BS to typ filtru Band Stop. W jaki sposób mam jej użyć w programie? Przeglądałeś tutoriale ?

tags: #filtracja #danych #matlab #tutorial

Popularne posty: