Filtracja Sygnału EKG Filtrem Butterwortha
- Szczegóły
Filtry elektroniczne to obwody, które kontrolują, które częstotliwości przechodzą, a które są blokowane, dzięki czemu sygnały są czyste i niezawodne. Znajdują zastosowanie w systemach zasilania, urządzeniach audio, łączach komunikacyjnych i akwizycji danych.
Zalety Filtra Butterwortha
Filtr Butterwortha charakteryzuje się tym, że krzywa odpowiedzi częstotliwości w paśmie przenoszenia jest możliwie płaska, bez falowania, i stopniowo maleje do zera w paśmie blokującym. Na mapie logarytmicznej częstotliwości przekątnej amplitudy, zaczynając od określonej częstotliwości narożnej, amplituda stopniowo maleje wraz ze wzrostem częstotliwości kątowej i dąży do ujemnej nieskończoności.
Filtr Butterwortha pierwszego rzędu ma współczynnik rozpadu 6 dB na oktawę i 20 dB na dekadę. Szybkość tłumienia filtra Butterwortha drugiego rzędu wynosi 12 dB na oktawę, tłumienie filtra Butterwortha trzeciego rzędu wynosi 18 dB na oktawę i tak dalej.
Amplituda filtra Butterwortha monotonicznie maleje i jest jedynym filtrem, który utrzymuje ten sam kształt niezależnie od kolejności i krzywej amplitudy w zależności od częstotliwości kątowej. Tylko im wyższa kolejność filtrów, tym szybsze tłumienie amplitudy w paśmie blokującym. Mapy diagonalnej częstotliwości amplitudy wyższego rzędu innych filtrów oraz częstotliwości amplitudowo-kątowe liczb niższego rzędu mają różne kształty.
Projektowanie Filtrów w Scipy.Signal
W bibliotece scipy.signal jest kilka funkcji do projektowania filtrów o zadanych parametrach. W module scipy.signal dostępne są funkcje do projektowania czterech typów filtrów: Butterwortha, Czebyszewa typu I i II, oraz eliptyczny.
Przeczytaj także: Definicja i pomiar filtracji kłębuszkowej
Do opisu wymagań projektowych funkcje te wykorzystują następujące pojęcia:
- wp, ws - krawędzie pasma przenoszenia i tłumienia. Częstości są znormalizowane do zakresu od 0 do 1 (1 odpowiada częstości Nyquista) przykładowo:
- dolno-przepustowy: wp = 0.2, ws = 0.3
- górno-przepustowy: wp = 0.3, ws = 0.2
- pasmowo-przepustowy: wp = [0.2, 0.5], ws = [0.1, 0.6]
- pasmowo-zaporowy: wp = [0.1, 0.6], ws = [0.2, 0.5]
- gpass - maksymalna dopuszczalna strata w paśmie przenoszenia (w funkcjach projektujących filtry jest to rp) (dB).
- gstop - minimalne wymagane tłumienie w paśmie tłumienia (w funkcjach projektujących filtry jest to rs) (dB).
Filtry FIR
Filtry typu FIR zwykle wymagają znacznie wyższych rzędów aby osiągnąć transmitancję o porządanej formie. Mają jednak dwie podstawowe zalety:
- ich funkcja odpowiedzi jest skończona opisana wektorem b - efekty brzegowe sięgają z obu końców filtrowanego sygnału na dokładnie połowę długości wektora b
- mają liniową zależnaość fazy od częstości.
Istotne parametry filtrów FIR:
- numtaps: int, ilość współczynników filtru (rząd filtru+1).
- cutoff: częstość odcięcia filtru. Może być jedną liczbą zmiennoprzecinkową dla filtru dolno- lub górno- przepustowego lub tablicą dla filtrów pasmowych.
- window: napis lub krotka: określa jakiego okna użyć do projektu filtru.
- pass_zero: bool, Jeśli True to zero jest przenoszone, jeśli False to nie jest.
- nyq: float.
Również implementuje okienkową metodę projektowania filtrów FIR. Daje ona nieco większą swobodę w kształtowaniu idealnej funkcji przenoszenia. Zadaje się ją przez podanie dwóch wektorów:
- freq i Wektor freq definiuje punkty w częstości (jednostki takie same jak nyq, muszą zawierać 0 i nyq) dla których znana jest wartość pożądanego przenoszenia. Wartości freq muszą być ułożone w kolejności rosnącej, dopuszczalne jest powtórzenie tej samej wartości częstości i odpowiadających im różnych wartości gain aby zdefiniować nieciągłość funkcji przenoszenia.
- gain Pożądane wartości przenoszenia odpowiadające kolejnym częstościom definiowane są w gain.
Filtrowanie Sygnałów Off-line
Filtrowanie sygnałów off-line można zrealizować tak, aby sygnał wyjściowy nie miał przesunięcia fazowego. Procedura powyższa zaimplementowana jest w funkcji: scipy.signal.filtfilt.
Przeczytaj także: Webber AP8400 - wymiana filtrów
Przykłady Zastosowań
Przykład 1: Wyławianie wrzecion snu z sygnału EEG
Wrzeciona snu to struktury w sygnale EEG rejestrowanym w czasie snu zawierające się w paśmie 11-15 Hz.Proszę:
- wykreślić pierwsze 10 sekund sygnału
- zastosować filtr górnoprzepustowy Butterwartha o częstościach odcięcia: 0.01, 0.1, 0.5 -> zaobserwuj jak długo stabilizuje się sygnał
- Zastosuj filtr pasmowoprzepustowy (11 - 14 Hz) i wykreśl wynik jego zastosowania na tle poprzedniej wersji sygnału.
[b,a] = butter(...
[bl,al] = butter(...
Przykład 2: Wykorzystanie fragmentu sygnału EKG
Wykorzystajmy fragment sygnału EKG z poprzedniego zadania (pomiędzy 12 a 40 -tą sekundą). Najpowszechniej stosowana metoda polega na dodaniu P zer pomiędzy istniejące próbki sygnału tak aby osiągnął on P-krotnie większą długość. Następnie taki rozciągnięty sygnał filtrujemy filtrem dolnoprzepustowym o częstości odcięcia nie większej niż częstość Nyquista oryginalnego sygnału - rozciąganie sygnału nie dokłada do niego nowej informacji więc i tak nic nie tracimy. # które były w oryginalnym sygnale tzn. Zmniejszamy częstość próbkowania całkowitą ilość razy. Zmieniamy częstość próbkowania o wymierną [math]\frac{P}{Q}[/math] liczbę razy - uzyskujemy składając powyższe kroki tzn. Proszę napisać funkcję, która będzie przepróbkowywać sygnał o wymierną liczbę razy.
Przeczytaj także: Optymalne rozcieńczenie bimbru
Rodziny odpowiedzi filtrów
Wybierz rodzinę odpowiedzi, która najlepiej pasuje do aplikacji. Butterworth oferuje płaski pas przepustowy, Bessel utrzymuje dokładność czasu, Chebyshev zapewnia ostrzejsze odchylenie, a eliptyczny zapewnia najbardziej strome przejście dzięki kompaktowej konstrukcji.
Filtr Butterwortha jest ceniony za płynną i płaską odpowiedź pasma przepustowego bez tętnień. Zapewnia naturalne, wolne od zniekształceń wyjście, co czyni go doskonałym do dźwięku i filtrowania. Jego wadą jest umiarkowany wskaźnik staczania się w porównaniu z innymi rodzinami, co oznacza, że jest mniej selektywny, gdy potrzebne jest ostre odcięcie.
tags: #filtracja #sygnalu #ekg #filtrem #butterwortha

