Filtry o skończonej odpowiedzi impulsowej (SOI)
Transkrypt
Filtry o skończonej odpowiedzi impulsowej (SOI)
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów – laboratorium ETD5067L Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) 1. Filtracja cyfrowa – podstawowe wiadomości Cyfrowa filtracja sygnału ma na celu wyodrębnienie pożądanej informacji z danego sygnału dyskretnego. Efektem filtracji danego sygnału wejściowego jest sygnał wyjściowy, przy czym relację między nimi określa deterministyczna funkcja transmitancji filtru. Liniowy filtr cyfrowy jest scharakteryzowany: – odpowiedzią impulsową, czyli odpowiedzią na pobudzenie deltą Diraca; – odpowiedzią skokową, czyli odpowiedzią na skok jednostkowy; – charakterystyką częstotliwościową. 1.1. Charakterystyka częstotliwościowa filtru Przez charakterystykę częstotliwościową filtru rozumiemy wykres przedstawiający widmo jego odpowiedzi impulsowej i pokazujący, jak dany filtr zmienia sygnał z punktu widzenia widma tego sygnału. Każdej częstotliwości na charakterystyce przyporządkowana jest liczba dodatnia m Afilt c X m = A m oryg , przy czym wartość c = 1 oznacza, że składowa o danej częstotliwości przy filtrowaniu się nie zmienia, natomiast c = 0 oznacza, że dana składowa jest całkowicie tłumiona. Charakterystykę częstotliwościową przedstawia się często w skali logarytmicznej, wówczas wartości na osi rzędnych wyrażane są w decybelach: c [dB]=20⋅log A filt , Aoryg gdzie c[dB] – zmiana amplitudy w decybelach, Afilt – amplituda po filtracji, Aoryg – amplituda przed filtracją. 1 2. Filtry SOI Filtr o skończonej odpowiedzi impulsowej (SOI; także FIR, ang. finite impulse response) jest nierekursywnym filtrem cyfrowym. Nierekursywność oznacza przy tym, że nie występuje w tym filtrze sprzężenie zwrotne, co m.in. wiąże się z tym, że odpowiedź filtru SOI na skończone w czasie pobudzenie jest również skończona w czasie. Filtr SOI określa się ciągiem współczynników {bn}, natomiast jego transmitancja wyraża się wzorem: H SOI z =b 0b 1 z −1b2 z −2...b N z −N . Jeśli zdefiniujemy filtr jako tablicę b(n), jego odpowiedź impulsowa będzie równoważna zestawowi jego współczynników. Tym samym filtrację sygnału x(n) wykonujemy, obliczając splot sig_conv(br, bi, xr, xi). Trzeba przy tym pamiętać, że jeśli chcemy bezpośrednio porównywać sygnały przed filtracją x i po filtracji xf w dziedzinie czasu, trzeba uwzględnić fakt, że wynik splotu x*b ma więcej próbek niż sygnał filtrowany. Na przykład jeśli filtr ma nieparzystą (!) liczbę współczynników Nf , do porównania musimy wykorzystać sygnał: { x 2f [n ]= x f [i] : } N f −1 N f −1 1 ≤ i ≤ N xf − , 2 2 gdzie Nxf – liczba próbek sygnału xf . 2.1. Rodzaje filtrów ze względu na charakterystykę częstotliwościową Ze względu na to, które składowe widma są przez filtr tłumione, a które bez zmian zachowywane, wyróżniamy: – filtry dolnoprzepustowe, przez które tłumione są składowe f > fg ; – filtry górnoprzepustowe, przez które tłumione są składowe f < fd ; – filtry pasmowoprzepustowe, tłumiące składowe f < fd i f > fg ; – filtry pasmowozaporowe, tłumiące składowe fd < f < fg . 2.2. Filtry działające na zasadzie średniej kroczącej Najprostszą metodą filtracji sygnałów, często zupełnie wystarczającą, jest zastosowanie tzw. średniej kroczącej (ang. moving average). Metoda ta polega na uśrednianiu kilku kolejnych próbek sygnału w myśl zależności: x f [ j]= 1 M M −1 ∑ x [ jk ] , k=0 gdzie M – liczba uśrednianych próbek. 2 2.3. Filtry oparte na okienkowanej funkcji sinc 2.3.1. Filtry dolnoprzepustowe Prostą filtrację dolnoprzepustową można również wykonać za pomocą filtru zdefiniowanego następująco: b [ j]= fg { sin 2 ⋅ f c⋅ j− j− M 2 M 2 ⋅w[ j ] dla j ≠ M 2 dla j = M 2 2⋅ f c gdzie f c = f ∈0 ; 0,5 – znormalizowana częstotliwość graniczna, M – długość filtru (wynikowy s wektor b będzie miał M + 1 elementów), w[ j ] – wykorzystywane okno. Okna poprawiają charakterystyki częstotliwościowe filtru, a wykorzystuje się m.in.: 0,08 cos [ j]=0,54−0,46 cos . – okno Blackmana w B [ j]=0,42−0,5 cos – okno Hamminga wH 2 ⋅j M 4 ⋅j M , 2⋅ j M Po obliczeniu w ten sposób współczynników filtru dolnoprzepustowego należy pamiętać o tym, aby go znormalizować. Oznacza to zapewnienie takiego działania filtru, by składowa stała sygnału była po przetworzeniu przez filtr niezmieniona (wzmocnienie filtru dla f = 0 wynosi 1). Aby uzyskać taki efekt, należy podzielić każdy element wektora b przez sumę wszystkich jego elementów: ∀ j b norm [ j]= b [ j] M1 ∑ j=1 b [ j] . 2.3.2. Pozostałe rodzaje filtrów Mając do dyspozycji współczynniki filtru dolnoprzepustowego { bndp } , można gp zaprojektować filtr górnoprzepustowy { bn } o takiej samej częstotliwości granicznej, tzn. fd = fg . Aby jednak metoda działała prawidłowo, odpowiedź impulsowa filtru musi mieć nieparzystą liczbę próbek, musi być symetryczna względem elementu centralnego i jej charakterystyka amplitudowa musi mieć maksimum równe 1. Wówczas współczynniki filtru górnoprzepustowego otrzymujemy z równania: b gp [n]=[n−c ]−b dp [ n] , gdzie c jest indeksem elementu centralnego oraz { [i]= 1 dla i=0 0 dla i≠0 Pozostałe filtry uzyskujemy przez odpowiednie łączenie ze sobą filtrów dolnoi górnoprzepustowych. 3 3. Zadania do realizacji Na zajęciach laboratoryjnych należy rozwiązać 5 podanych poniżej zadań. Za każde zadanie można otrzymać jeden punkt pod warunkiem, że zostanie ono całkowicie poprawnie zrealizowane. Warto przypomnieć, że w zadaniach wskazane jest wykorzystywać funkcje napisane podczas wcześniejszych ćwiczeń. Zadanie nr 1 W zadaniu pierwszym należy napisać funkcję postaci: function [c_dB]=decibels(c_1) #definicja ciała funkcji endfunction przeliczającą charakterystykę częstotliwościową filtru z liniowej na logarytmiczną, a następnie funkcję postaci: function [c_1, c_dB]=freq_resp(A_in, A_out) #definicja ciała funkcji endfunction obliczającą liniową i logarytmiczną charakterystykę częstotliwościową filtru, dla którego sygnał o widmie Aout jest odpowiedzią na pobudzenie sygnałem o widmie Ain . Zadanie nr 2 W zadaniu drugim należy napisać funkcję następującej postaci: function [x_f2]=correct_length(x_f, N_f) #definicja ciała funkcji endfunction która z sygnału xf , będącego sygnałem x po filtracji, wybierze próbki w sposób pozwalający na porównanie sygnałów x i xf w dziedzinie czasu. Nf jest liczbą próbek zastosowanego filtru. Przed napisaniem funkcji należy wykonać odpowiednie testy, pozwalające stwierdzić, w jaki sposób należy skracać sygnał xf . 4 Zadanie nr 3 Zadanie trzecie polega na napisaniu funkcji następującej: function [x_f]=movavg_filter(x, M) #definicja ciała funkcji endfunction która wykona filtrację sygnału x na zasadzie średniej kroczącej dla M próbek. Jak w efekcie filtracji zmienia się widmo sygnału x i jak ta zmiana zależy od M? Zadanie nr 4 W zadaniu czwartym należy napisać funkcję następującej postaci: function [b]=sinc_filter(fc, M) #definicja ciała funkcji endfunction która będzie tworzyć filtr dolnoprzepustowy o długości M i częstotliwości granicznej fc . W funkcji należy uwzględnić dowolnie wybrane okno. Zadanie nr 5 W zadaniu piątym należy napisać funkcję następującej postaci: function [x_f]=fir_filter(x, b) #definicja ciała funkcji endfunction która wykona filtrację sygnału x filtrem o współczynnikach z tablicy b. Wymagane jest, aby sygnał xf miał tyle samo próbek co sygnał x. Jak należy zmienić tę funkcję, by pracowała na sygnałach zespolonych? 5 Pytania na kartkówkę 1. Napisz funkcję przeliczającą amplitudę wyrażoną liniowo na wyrażoną logarytmicznie (w decybelach). 2. Napisz funkcję realizującą filtrowanie za pomocą średniej kroczącej. 3. Napisz funkcję, która z filtru dolnoprzepustowego o częstotliwości granicznej d · fs tworzy filtr górnoprzepustowy o odwrotnej charakterystyce. Jaką częstotliwość graniczną ma ten filtr? 4. Co należy zrobić, aby mając do dyspozycji współczynniki filtru dolnoprzepustowego o częstotliwości granicznej fg i filtru górnoprzepustowego o częstotliwości granicznej fd < fg , uzyskać filtr pasmowoprzepustowy o pasmie przenoszenia (fd , fg)? 5. Co należy zrobić, aby mając do dyspozycji współczynniki filtru dolnoprzepustowego o częstotliwości granicznej fg i filtru górnoprzepustowego o częstotliwości granicznej fd > fg , uzyskać filtr pasmowozaporowy o pasmie tłumienia (fd , fg)? 6