53 8. Realizacja projektowanie i pomiary filtrów IIR Cele ćwiczenia Realizacja na zestawie TMX320C5515 ezdsp prostych liniowych filtrów cyfrowych. Pomiary charakterystyk amplitudowych zrealizowanych filtrów cyfrowych. Liniowe filtry cyfrowe Liniowy przyczynowy filtr cyfrowy o transmitancji 1 Y( z) b0 b1 z... bm z H( z) 1 X ( z) a a z... a z 0 1 N M N. (7.1) opisany jest równaniem różnicowym a0 y[ n] a1 y[ n 1]... an y[ n N] b0 n] b1 n 1]... bm n M], (7.2) gdzie: n] pobudzenie, y[n] odpowiedź, b 0,, b M i a 0,, a N współczynniki licznika i mianownika transmitancji będące jednocześnie współczynnikami równania różnicowego i współczynnikami filtru. Po przekształceniu równania (7.2) uzyskuje się wzór pozwalający obliczyć odpowiedź filtru y[n] na pobudzenie n] 1 y[ n] b0 n] b1 n 1]... bm n M ] a1 y[ n 1]... a a 0 N y[ n N]. (7.3)
54 Często dla uproszczenia obliczeń i struktury filtru przyjmuje się, że a 0 = 1. Wzór (7.3) pozwala bezpośrednio obliczyć kolejną próbkę sygnału wyjściowego, jako średnią ważoną przeszłych próbek sygnału wejściowego i wyjściowego oraz bieżącej próbki sygnału wejściowego rolę współczynników wagowych pełnią współczynniki filtru. Wzór (7.3) może być wykorzystywany dla programowej realizacji filtrów cyfrowych. Realizacja filtru cyfrowego na procesorze sygnałowym Realizacja filtru cyfrowego na procesorze sygnałowym podlega ograniczeniom wynikającym z możliwości obliczeniowych procesora. Dużo trudniej jest realizować filtry na procesorach stałoprzecinkowych 16-bitowych, niż na procesorach zmiennoprzecinkowych 32-bitowych. Arytmetyka procesora 16- bitowego (stałoprzecinkowego) wymaga, aby współczynniki filtru były zapisane w formacie Q1.15, w którym można zapisać tylko liczby wymierne z zakresu od 1.0 do 0.99997 z rozdzielczością 0.0000305. Trudnością przy realizacji filtru jest też możliwość uzyskania w wyniku obliczeń próbki o wartości wykraczającej poza zakres zmienności liczb 16- bitowych. Metodą walki z przepełnieniem jest unormowanie charakterystyki amplitudowej filtru tak, aby filtr nie wzmacniał sygnału, czyli aby maksymalna wartość charakterystyki amplitudowej była równa 1. Unormowane filtry spełniają warunek j max H ( e ) 1 dla [, ). (7.4) Spełnienie warunku (7.4) pozwala oczekiwać, że podczas pracy filtru nie wystąpi przepełnienie i filtr będzie liniowy, chociaż nie dla każdego sygnału wejściowego, przykładem może być filtracja sygnału prostokątnego przez filtr selektywny. Z rozwinięcia w szereg Fouriera sygnału prostokątnego (1.3) wynika, że amplituda składowej sinusoidalnej o częstotliwości podstawowej jest o 4/ 1, 273 większa od wartości szczytowej samego prostokąta. Jeśli filtr
55 selektywny przepuści bez tłumienia składową o częstotliwości podstawowej i usunie wszystkie pozostałe składowe, to sinusoidalny sygnał wyjściowy będzie miał większa amplitudę od wartości szczytowej prostokątnego sygnału wejściowego i przy dużym poziomie sygnału wejściowego może wystąpić przepełnienie. Filtry IIR pierwszego rzędu Transmitancja dolnoprzepustowego filtru IIR pierwszego rzędu dana jest wzorem 1 1 z 2 1 z 1 H LP ( z) 1, 0 1. (7.5) Dla powyższej transmitancji próbki sygnału wyjściowego można obliczać na podstawie wzoru y[ n] ay[ n 1] 0.5(1 ) n] n 1], (7.6) będącego podstawą jego programowej realizacji. Struktura filtru przedstawiona jest na rys 7.1; z 1 oznacza opóźnienie jednostkowe. n] 0.5(1-α) z 1 z 1 y[n] n-1] y[n-1] α Rys 7.1. Struktura filtru o transmitancji (7.5) zrealizowanego na podstawie wzoru (7.6) Dla ω = 0 wzmocnienie filtru jest równe 0 db, 3-dB częstotliwość graniczna ω 3dB dana jest wzorem
56 cos 3dB 2, (7.7) 2 1 Na podstawie wzoru (7.7) można wyprowadzić wzór pozwalający obliczyć wartość współczynnika α dla zadanej częstotliwości granicznej ω 3dB 1 sin cos 3dB. (7.8) 3dB Filtry dolnoprzepustowe znajdują szerokie zastosowanie w algorytmach CPS, czego przykłady znajdą się w rozdziale poświęconym układom demodulatorów. Do zbadania właściwości filtru można wykorzystać program MATLAB. Polecenia z listingu 7.1 Listing 7.1. Kod projektu filtru dolnoprzepustowego języku MATLAB f3db = 4000; % częstotliwość graniczna filtru w Hz fp = 48000; % częstotliwość próbkowania w Hz W3dB = 2*pi*f3dB/fp; % unormowana pulsacja graniczna filtru alfa = (1.0 - sin(w3db))/cos(w3db); % wzór (7.8) fvtool((1-alfa)/2 * [1 1],[1 -alfa]); zaprojektują filtr o częstotliwości granicznej f 3dB = 4 khz, dla f p = 48 khz, następnie uruchomią narzędzie Filter Visualization Tool obliczające numerycznie charakterystyki filtru (7.5) [9]. Transmitancja górnoprzepustowego filtru IIR pierwszego rzędu dana jest wzorem 1 1 z 2 1 z 1 H HP ( z) 1, 0 1. (7.9) Częstotliwość graniczną filtru można obliczyć na podstawie wzoru (7.7). Doświadczenie 7.1. Pomiary charakterystyk filtrów IIR pierwszego rzędu program mainlp_hp (szybkość próbkowania równa 48 khz).
57 1. Pomierzyć charakterystyki częstotliwościowe zrealizowanych filtrów programem Charakterystyki. 2. Przeprowadzić badania filtrów przy pomocy Filter Visualization Tool obejmujące mapę zer i biegunów i charakterystyki częstotliwościowe. W sprawozdaniu: 1. Umieścić wykresy pomierzonych charakterystyk częstotliwościowych filtrów i obliczonych programem MATLAB. 2. Ręcznie opisać charakterystyki amplitudowe, zaznaczyć częstotliwości graniczne. Filtry IIR drugiego rzędu wzorem Transmitancja pasmowoprzepustowego filtru drugiego rzędu dana jest 1 1 z 2 1 (1 ) z 2 H BP ( z) 1 2 z, 1, 1. (7.9) Dla powyższej transmitancji próbki sygnału wyjściowego można obliczać na podstawie wzoru y[ n] b0 n] b1 n 1] b2 n 2] a1 y[ n 1] a2 y[ n 2], (7.10) gdzie: b (1 ) / 2, b 0, b (1 ) / 2, a (1 ), a. 0 1 2 1 Wzór (7.10) jest podstawą dla programowej realizacji filtru. Struktura filtru przedstawiona jest na rysunku 7.5. 2
58 n] b 0 y[n] z 1 z 1 n-1] y[n-1] b 1 a 1 z 1 z 1 n-2] y[n-2] b 2 a 2 Rys 7.2. Struktura filtru o transmitancji (7.9) zrealizowanego na podstawie wzoru (7.10) Parametry filtru dane są następującymi wzorami: częstotliwość maksimum charakterystyki amplitudowej f cos 1 ( ) f / 2, 0 p 1 2 szerokość pasma 3-decybelowego B3dB cos f / 2 2 p, 1 dobroć filtru Q f 0 / B 3 DB [11]. Na listingu 7.1 zamieszczono kod w języku MATLAB projektujący filtr pasmowoprzepustowy o częstotliwości środkowej f 0 = 8 khz, paśmie B 3dB = 500 Hz i następnie prezentujące charakterystyki zaprojektowanego filtru uruchomiający narzędzie Filter Visualization Tool Listing 7.1. Kod projektu filtru pasmowoprzepustowego języku MATLAB fp = 48000; % częstotliwość próbkowania w Hz f0 = 8000; % częstotliwość środkowa filtru w Hz BW = 500; % pasmo 3dB w Hz w0 = f0 / (fp/2); % unormowana częstotliwość środkowa bw = BW / (fp/2); % unormowane pasmo 3dB B = cos(pi*bw); % obliczenie pierwiastka trójmianu delta = 4.0-4.0*B*B; % B*alfa^2 2*alfa B alfa = (2.0 - sqrt(delta))/(2.0*b); beta = cos(pi*w0);
59 b = ((1-alfa)/2)*[1 0-1]; a = [1 -beta*(1alfa) alfa]; fvtool(b, a); % licznik transmistacji filtru BP % mianownik transmitancji filtru BP b1 = ((1alfa)/2)*[1-2*beta 1]; % licznik transmistacji filtru BS a1 = [1 -beta*(1alfa) alfa]; % mianownik transmitancji filtru BS fvtool(b1,a1); % to samo z wykorzystaniem funkcji iirpeak [b,a] = iirpeak(w0, bw); % projekt filtru, b, a wsp. licznika i mian. fvtool(b,a); Rysunek 7.3 przedstawia charakterystykę amplitudową filtru uzyskaną programem MATLAB za pomocą poleceń z listingu 7.1. Rys. 7.3. Charakterystyka amplitudowa filtru pasmowoprzepustowego uzyskana w programie MATLAB listingiem 7.1; f p = 48 khz; f 0 = 8 khz; B 3dB = 500 Hz Kolejny rysunek 7.4 przedstawia pomierzoną charakterystykę filtru (7.9) zrealizowanego na zestawie TMX320C5515 ezdsp; f p = 48 khz; f 0 = 8 khz, B 3dB = 500 Hz.
60 Rys. 7.4. Pomierzona charakterystyka amplitudowa filtru pasmowoprzepustowego (7.9); f p = 48 khz; f 0 = 8 khz; B 3dB = 500 Hz Transmitancja pasmowozaporowego filtru drugiego rzędu dana jest wzorem 1 1 2z z 2 1 (1 ) z z 1 2 H BS ( z) 1 2, 1, 1. (7.10) Parametry filtru dane są następującymi wzorami: częstotliwość minimum charakterystyki amplitudowej f cos 1 ( ) f / 2, 0 p 1 2 szerokość pasma 3-decybelowego B3dB cos f / 2 2 p, 1 dobroć filtru Q f 0 / B 3 DB [11]. Do projektowania filtru pasmowozaporowego można wykorzystać kod z listingu 7.1 zamieniając funkcję iirpeak(w0, bw), projektującą filtr pasmowoprzepustowy, na funkcję iirnotch(w0, bw), projektującą filtr pasmowozaporowy.
61 Doświadczenie 7.2. Pomiary filtrów pasmowo przepustowych IIR II rzędu, program BPvarF (przestrajana częstotliwość środkowa), program BPvarB3dB (przestrajane pasmo 3DB), program BPvarFxB3dB (częstotliwość środkowa i pasmo wprowadzane z konsoli). 1. Pomierzyć charakterystyki amplitudowe filtrów programem Charakterystyki. 2. Przeprowadzić badania filtrów przy pomocy Filter Visualization Tool obejmujące mapę zer i biegunów oraz charakterystyki częstotliwościowe. 3. Odczytać z charakterystyk częstotliwościowych, pomierzonych i obliczonych programem MATLAB, częstotliwości środkowe i pasmo filtrów, porównać wyniki z wartościami projektowanymi. W sprawozdaniu: 1. Umieścić wykresy pomierzonych charakterystyk częstotliwościowych filtrów i obliczonych przez programem MATLAB. 2. Odczytać z charakterystyk częstotliwościowych, pomierzonych i obliczonych programem MATLAB, częstotliwości środkowe i pasma filtrów, porównać wyniki z wartościami projektowanymi. 3. Ręcznie opisać charakterystyki amplitudowe, zaznaczyć obliczone w punkcie 2 parametry. 4. Opisać związek między położeniem zer i biegunów a charakterystyką amplitudową filtru. Doświadczenie 7.3. Badanie filtru pasmowoprzepustowego i pasmowo zaporowego program BPxBS. 1. Pomierzyć charakterystyki amplitudowe filtrów programem Charakterystyki. 2. Przeprowadzić badania filtrów przy pomocy Filter Visualization Tool obejmujące mapę zer i biegunów i charakterystyki częstotliwościowe.
62 3. Odczytać z charakterystyk częstotliwościowych, pomierzonych i obliczonych programem MATLAB, częstotliwości środkowe i pasmo filtrów, porównać wyniki z wartościami projektowanymi. W sprawozdaniu: 1. Umieścić wykresy pomierzonych charakterystyk częstotliwościowych filtrów i obliczonych przez programem MATLAB. 2. Odczytać z charakterystyk częstotliwościowych, pomierzonych i obliczonych programem MATLAB, częstotliwości środkowe i pasma filtrów, porównać wyniki z wartościami projektowanymi. 3. Ręcznie opisać charakterystyki amplitudowe, zaznaczyć obliczone w punkcie 2 parametry. 4. Opisać związek między położeniem zer i biegunów a charakterystyką amplitudową filtru. Filtry grzebieniowe Transmitancja grzebieniowego filtru IIR dana jest wzorem 1 H( z), 0 1. (7.11) D 1z Dla powyższej transmitancji próbki sygnału wyjściowego można obliczać na podstawie wzoru y[ n] y[ n D] (1 ) n], (7.12) będącego podstawą jego programowej realizacji. Struktura filtru przedstawiona jest na rys 7.5; z D oznacza opóźnienie o D próbek.
63 n] 1-α y[n] α z D y[n D] Rys 7.5. Struktura filtru o transmitancji (7.11) zrealizowanego na podstawie wzoru (7.12) Polecenia Do badania właściwości filtrów można wykorzystać program MATLAB. alfa=0.8; D=10; fvtool(1-alfa,[1 zeros(1,d-1) -alfa]); uruchomią narzędzie Filter Visualization Tool obliczające numerycznie charakterystyki filtru (7.11) dla D = 10 i α = 0,8 oraz prezentujące wyniki na wykresach [9]. Dla D = 1 filtr o transmitancji (7.11) jest filtrem dolnoprzepustowym, dla D > 1 jest filtrem o wielu maksimach charakterystyki amplitudowej występujących na częstotliwościach fk f pk / D, k = 0, 1,..., D 1. Na rys. 7.6 przedstawiono mapę zer i biegunów filtru dla D = 10 i α = 0,8 uzyskaną przy pomocy programu MATLAB.
64 Rys. 7.6. Mapa zer i biegunów filtru o transmitancji (7.5); α = 0,75, D = 10 Rysunek 7.7 przedstawia pomierzone charakterystyki amplitudowe filtrów (7.5) o różnych parametrach α = 0,9 i α = 0,8 oraz wspólnym parametrze D = 10. Rys. 7.7. Pomierzone charakterystyki amplitudowe filtrów (7.11) o α = 0,9 i α = 0,8; D = 10, f p = 48kHz Ze względu na kształt charakterystyki amplitudowej badane filtry są nazywane filtrami grzebieniowymi (ang. Comb filters).
65 wzorem Drugim badanym filtrem grzebieniowym jest filtr o transmitancji danej D 1 1 z H( z), 0 1. (7.13) D 2 1z Dla powyższej transmitancji próbki sygnału wyjściowego można obliczać na podstawie wzoru y[ n] ay[ n D] 0.5(1 ) n] n D], (7.14) będącego podstawą jego programowej realizacji. Struktura filtru przedstawiona jest na rysunku 7.8. n] 0.5(1-α) z D z D y[n] n-d] y[n-d] α Rys 7.8. Struktura filtru o transmitancji (7.13) zrealizowanego na podstawie wzoru (7.14) Dla D = 1 filtr o transmitancji (7.13) jest filtrem górnoprzepustowym 1 2 o unormowanej pulsacji granicznej 3dB cos [11], filtr jest często 2 1 wykorzystywany do usuwania składowej stałej sygnału. Dla D > 1 uzyskuje się filtr grzebieniowy o wielu minimach charakterystyki amplitudowej występujących na częstotliwościach f f k D, k = 0, 1,..., D 1. k p / Doświadczenie 7.4. Badanie filtrów grzebieniowych program CombIIRxIIR. 1. Pomierzyć charakterystyki amplitudowe filtrów programem Charakterystyki.
66 2. Przeprowadzić badania filtrów przy pomocy Filter Visualization Tool obejmujące mapę zer i biegunów i charakterystyki częstotliwościowe. fvtool((1alfa)/2*[1 zeros(1,d-1) -1],[1 zeros(1,d-1) -alfa]); 3. Odczytać z charakterystyk częstotliwościowych, pomierzonych i obliczonych programem MATLAB, częstotliwości środkowe i pasmo filtrów, porównać wyniki z wartościami projektowanymi. W sprawozdaniu: 1. Umieścić wykresy pomierzonych charakterystyk częstotliwościowych filtrów i obliczonych przez programem MATLAB. 2. Ręcznie opisać charakterystyki amplitudowe, zaznaczyć obliczone częstotliwości maksimów i minimów. 3. Opisać związek między położeniem zer i biegunów a charakterystyką amplitudową filtru.