background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

 

Ćwiczenie 7 Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, 
porównanie poszczególnych rodzajów filtrów

 

Filtry cyfrowe są szeroko używane w cyfrowym przetwarzaniu sygnałów. Możemy 

wymienić kilka zastosowań takich jak: przetwarzanie sygnału mowy, przetwarzanie sygnałów 
w telekomunikacji; przetwarzanie obrazów, sygnałów wideo itp. Jedną z klas filtrów 
cyfrowych są liniowe układy niezmienne w czasie. Są one często używane ze względu na 
prostą analizę, projektowanie oraz implementacje. Filtry cyfrowe mogą być zidentyfikowane 
w dziedzinie czasu za pomocą odpowiedzi impulsowej h(n). Drugim alternatywnym 
sposobem identyfikacji filtrów cyfrowych jest dziedzina częstotliwości, oraz odpowiedź 
częstotliwościowa filtru H(w). Gdzie H(w) jest dyskretno czasową transformatą Fouriera 
sygnału h(n). Filtry podzielić można na dwa główne typy: FIR (Finie-duration Impulse 
Response) posiadające skończoną odpowiedź impulsową, oraz IIR (Infinite-duration Impulse 
Response) posiadające nieskończoną odpowiedź impulsową. W filtrze FIR poszczególne 
próbki odpowiedzi impulsowej są jednocześnie współczynnikami filtru. Filtru IIR i jego 
współczynnki zawierają sygnał zwrotny i są opisywane za pomocą równań różnicowych. 

Ogólnie mówiąc projektowanie filtrów polega na sprecyzowaniu odpowiedzi 

częstotliwościowej filtru a następnie wyznaczenie struktury filtru spełniającej nasze 
wymagania. Jednym z najważniejszych problemów jest zaprojektowanie filtru w wysokiej 
selektywności częstotliwościowej, czyli posiadającego wąskie pasma przejściowe. Jednakże, 
idealnie ostre krawędzie pasm filtru nie mogą być realizowane w praktyce. Dlatego 
projektowanie odpowiada znalezieniu i implementacji filtru, którego rząd jest mały oraz 
odpowiedź częstotliwościowa najlepiej aproksymuje specyficzne wymagania. W 
projektowaniu filtrów cyfrowych typowo wyróżnić można następujące kroki: 

•  zmiana wymaganych ograniczeń na praktyczną specyfikację z wymaganą 

odpowiedzią amplitudową i fazową, wybór typu filtru (FIR lub IIR), rząd filtru, 
tolerancje błędów lub inne kryteria, 

•  aproksymacja wybranej specyfikacji poprzez implementacje filtru FIR lub IIR, która 

najlepiej spełnia (aproksymuje) odpowiedź częstotliwościową filtru według 
wybranego kryterium błędu, 

•   realizacja filtru za pomocą techniki cyfrowej najbardziej odpowiadającej określonej 

aplikacji. 

 
Krok pierwszy jest najbardziej zależny od zastosowania opisywanego szczegółowo przez 
użytkownika. Krok drugi wykonywany jest za pomocą optymalizacji matematycznej i metod 
aproksymacji. Krok trzeci zależy od technologii lub programu użytego do stworzenia filtrów. 
Krok drugi jest obecnie implementowany zaawansowanymi metodami numerycznymi. W 
większości przypadków (Matlab) programy posiadają interfejs graficzny pomocny w 
prześledzeniu wielu alternatywnych specyfikacji.  
 

Cechy charakterystyczne filtrów FIR 

•  odpowiedź impulsowa h(n) ma skończoną ilość wartości niezerowych. Ogólnie dla 

filtru FIR długości N h(n) 0 tylko dla 

0

1

),

1

1

(

2

1

+

=

jeżeżel

N

N

N

n

N

filtr 

jest przyczynowy 

•  Odpowiedź częstotliwościowa filtru H(w) jest wielomianem skończonego rzędu o 

postaci: 

H(w)=

 

2

1

)

)(

(

N

N

n

jw

e

n

h

 

1

background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

Gdzie N1 oraz N2 są liczbami całkowitymi mówiącymi o pierwszej i ostatniej próbce 
odpowiedzi impulsowej h(n). Wartość N odpowiedzi impulsowej jest jednym z 
parametrów projektowych. 

•  Projektowanie filtrów FIR opiera się na znalezieniu wielomianu H(w) najlepiej 

aproksymującego wymaganą specyfikację. Dokonywane jest to poprzez obliczanie 
optymalnej pod pewnymi względami odpowiedzi impulsowej, która wyznacza 
nieznane współczynniki wielomianu H(w). Odpowiedź impulsowa o długości N jest 
zazwyczaj stała, lecz może być rozważana jako parametr podlegający optymalizacji. 

•  Transmitancja filtru H(z) będąca transformatą z odpowiedzi impulsowej h(n): 

 

H(z) = 

=

=

=

2

1

)

(

)

(

N

N

n

z

z

e

jw

z

n

h

e

H

jw

 

Transmitancja ta nie posiada biegunów z wyjątkiem możliwości zero i 
nieskończoności stąd też filtr taki jest zawsze stabilny 

•  Filtry FIR pozwalają na projektowanie przyczynowych liniowo-fazowych filtrów, 

które są szeroko używane w praktyce np. w przetwarzaniu mowy oraz obrazów ze 
względu na ich możliwość przenoszenia pewnego zakresu spektrum z minimalnymi 
zniekształceniami, 

•  Filtry FIR nie posiadają pętli zwrotnych i są stosunkowo niewrażliwe na szum, który 

może okazać się problemem ze względu na kwantyzację współczynników przy bardzo 
długich filtrach. Problem ten jest eliminowany poprzez unikanie bezpośredniej 
struktury filtru i używanie specjalnych struktur takich jak implementacja kaskadowa 

•  Filtry FIR z bardzo długą odpowiedzią impulsową (N=500) mogą wymagać 

specjalnych zabiegów projektowych takich jak wysoka dokładność odwzorowania 
współczynników, uzyskanie wąskich pasm przejściowych. Długie filtry są kłopotliwe 
w projektowaniu oraz praktycznym zastosowaniu. Wymagają znacznego czasowego 
nakładu obliczeń oraz dużej ilości obliczeń w jednostce czasu w danej implementacji. 

•  Wymienność pomiędzy poszczególnymi parametrami projektowymi filtru została 

zdeterminowana empirycznie dla różnych typów FIR.  

 
Cechy charakterystyczne filtrów IIR 
•  Odpowiedź impulsowa filtru ma nieskończoną ilość niezerowych próbek 

•  Odpowiedź częstotliwościowa filtru jest funkcją wymierną składającą się z dwu 

wielomianów o skończonej długości 

=

=

=

=

N

k

jwk

k

M

k

jwk

k

jwNo

e

a

e

b

e

w

A

w

B

w

H

0

0

)

(

)

(

)

(

 

gdzie N0 jest stałą. Rząd filtru IIR jest równy N, co jest jednocześnie stopniem 
mianownika, zwykle M jest  nie większe niż stopień mianownika. Liczba N determinuje 
również liczbę wcześniejszych próbek wyjściowych, które muszą być składowane i 
wprowadzane do sprzężenia zwrotnego w celu obliczenia aktualnej próbki. Dlatego tego 
rodzaju filtry często są nazywane filtrami rekursywnymi (ze sprzężeniem zwrotnym). 
Współczynniki 

 oraz 

  są nieznanymi a więc projektowymi parametrami przy 

projektowaniu, 

k

b

k

a

•  Projektowanie filtrów IIR wymaga znalezienia wymiernej funkcji H(w) która w 

najlepszy sposób aproksymuje projektowane parametry. W dziedzinie 
częstotliwościowej dokonywane jest to poprzez obliczanie optymalnych pod pewnymi 
kryteriami współczynników b oraz a. Rząd filtru N jest zwykle stały lecz może być 
również rozważany jako parametr do projektowania. 

 

2

background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

•  Transformata z filtru IIR przydatna jest to badania stabilności co oznacza że sygnał 

wejściowy o ograniczonej wielkości musi dawać sygnał wyjściowy, który również 
będzie posiadał ograniczoną wartość. Transmitancje filtru zapisać możemy 
następująco: 

H(z)=

=

=

=

=

N

k

k

k

M

k

k

k

N

jw

jw

z

a

z

b

z

z

e

e

H

0

0

0

)

(

 

Pierwiastki wielomianu mianownika są biegunami funkcji H(z). Kryterium stabilności 
wymaga by bieguny leżały wewnątrz okręgu jednostkowego 

⎣ ⎦

1

=

z

 . Możliwe jest 

zaprojektowanie filtru IIR, który będzie niestabilny. Kwantyzacja parametrów może  
w niektórych przypadkach na stabilność oraz samą odpowiedź filtru, w szczególności 
dla biegunów leżących bardzo blisko okręgu jednostkowego, 

•  Nie jest możliwe zaprojektowanie filtru IIR o liniowej fazie stąd filtry te zawsze mają 

nieliniową odpowiedź fazową. Istnieją sposoby minimalizacji efektu nieliniowości 
fazy oraz specjalne struktury minimalizujące ten efekt, 

•  Ponieważ odpowiedź impulsowa jest nieskończenie długa do realizacji filtrów nie 

można używać splotu, lecz równać różnicowych. 

•  W porównaniu z filtrami FIR filtry IIF mogą osiągać wymagane parametry przy 

relatywnie mniejszym rzędzie filtru. Pozwala to na mniejsze rejestry pamięci 
potrzebne do wyliczania aktualnej próbki co zmniejsza skomplikowanie sprzętowej 
realizacji. 

•  Filtry IIF mogą być projektowane z wykorzystaniem reguł stosowanych do 

projektowania filtrów analogowych, 

 

I Podstawowe metody projektowania filtrów FIR 

1. Metoda okien 
- wybieramy dla danego rodzaju filtru częstotliwości graniczne, 
- wyznaczamy analitycznie odpowiedz impulsową filtru wykorzystując odwrotne 
przekształcenie Fouriera 
- wymnażamy nieskończoną odpowiedź impulsową z dyskretnym oknem czasowym 
- sprawdzamy uzyskaną w ten sposób odpowiedź częstotliwościową filtru i ewentualnie 
powtarzamy krok poprzedni. 
2. Metoda optymalizacji średniokwadratowej polegająca na znajdowaniu wag filtru, którymi 
są współczynniki odpowiedzi impulsowej w taki sposób by najlepiej aproksymować zadaną 
charakterystykę średniokwadratowej. 
3. Metoda aproksymacji Czebyszewa (algorytm Remiza) 
Metoda ta polega na aproksymacji charakterystyki amplitudowej filtru za pomocą programów 
komputerowych wykorzystujących najczęściej implementacje Parksa-McClellana algorytmu 
Remiza. Polega to na aproksymowaniu charakterystyki za pomocą sumy kosinoid z 
odpowiednimi funkcjami wagowymi. 
4. Metoda próbkowania w dziedzinie częstotliwości. Ustalamy punkty odpowiedzi 
częstotliwościowej w zadanych częstotliwościach a następnie obliczanie odpowiedzi 
impulsowej filtru wykonując dyskretną transformatę Fouriera. 
 

II. Podstawowe metody projektowania filtrów IIR 

1. Metoda transformaty Z 
Polega na doborze zer i biegunów transmitancji filtrów poprzez przemieszczanie ich na 
płaszczyźnie zmiennej z. 

 

3

background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

2. Metoda niezmienności odpowiedzi impulsowej 
Mając zaprojektowany odpowiedni filtr analogowy, próbkujemy jego odpowiedź impulsową z 
okresem T. Transmitancja naszych filtrów cyfrowych jest wtedy transformatą Z tej właśnie 
odpowiedzi. 
3. Metoda transformacji biliniowej 
Polega na zaprojektowania analogowego prototypu filtra cyfrowego a następnie transformacji 
dziedziny analogowej przekształcenia Laplace’a (s) na cyfrową dziedzinę przekształcenia Z 
(z). 
 
Dokładny opis metod projektowani filtrów FIR oraz IIR można znaleźć w szeroko dostępnej 
literatury przedmiotu zarówno w języku polskim jak i w angielskim. Cennym źródłem 
informacji jest również Internet. Projektowanie filtrów opisanymi powyżej metodami w 
programie Matlab nie wymaga dokładnej znajomości zasad i metodologii projektowania lecz 
tylko podstawowych właściwości filtrów różnych typów oraz rozróżniania poszczególnych 
metod projektowych. 
 

Wykonanie ćwiczenia 

I. Narzędzie FDATOOL, projektowanie filtrów różnymi metodami 

 
1. Filtry FIR 

a) Zaprojektuj filtr FIR (Eliripple)  
 

- dolnoprzepustowy rzędu 5,10,20,50,100,  

 

 

częstotliwość próbkowania Fs=2000 

 

 

częstotliwości charakterystyczne Pass=200, Stop=300 

b) Zaprojektuj filtru FIR (Window- Rectangular,Blackman, Chebyshew, Hamming, Kaiser) 

- dolnoprzepustowy rzędu 5,10,20,50,100,  

 

 

częstotliwość próbkowania Fs=2000 

 

 

częstotliwości charakterystyczne Pass=200, Stop=300 

c) Zaprojektuj filtr FIR (Maximally flat) 
- dolnoprzepustowy rzędu 5,10,20,50,100,  
 

 

częstotliwość próbkowania Fs=2000 

 

 

częstotliwości charakterystyczne Pass=200, Stop=300 

 
2. Filtry IIR rzędu 5,10,20,50,100 

a) Butterworth 
b) Chebyshew I 
c) Chebyshtew II 
d) Eliptic 
 
 

3. Dla filtrów FIR porównaj odpowiedzi impulsowe dla rzędu 20 oraz 21 (Equripple) 

a) dolno-przepustowego Pass = 200, Stop = 300 
b) środkowo-zaporowego 200,250 – 350,400 
c) środkowo-przepustowego 200,250 – 350,400 
d) górno-przepustowego Fstop = 200, Pass = 300 
 
 

4. Porównaj minimalny rząd filtru projektując następujące filtry dolnoprzepustowe: 

a) FIR (Equiripple) Fs = 2000, Pass = 200, Stop = 300, Apass = 1, Astop = 80 
b) IIR Butterworth 
c)  IIR Chebyshew I 
d) Chebyshtew II 

 

4

background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

e) Eliptic 
 
 

5. Na podstawie przeprowadzonych symulacji dokonaj następującej analizy: 

- które filtry spełniają warunek minimalnego rzędu dla danych parametrów pasmowych, 
- jakie filtry mają najbardziej płaską charakterystykę amplitudową w paśmie przepustowym, 
- jakie filtry mają najmniejsze zniekształcenia fazowe, 
- jakie rozkład posiadają bieguny i zera dla poszczególnych rodzajów filtrów IIR, 
- w jaki sposób różni się odpowiedź impulsowa górno, dolno, środkowo-przepustowego i  
środkowo-zaporowego filtru FIR o parzystym i nieparzystym rzędzie, 
 
 

6. Dla filtrów rzędu 5 porównaj realizację filtrów (Realize Model) FIR i IIR. 

 
 
II Filtracja cyfrowa 

 
 

7. Filtracja z wykorzystaniem filtrów FIR (program FIR.m) 

Za pomocą funkcji fir2 projektowany jest filtr o charakterystyce częstotliwościowej  podanej 
przez F i M oraz rząd filtru n. F jest to definicja częstotliwości względnej (0 – 1)  i musi być 
zdefiniowana w sposób rosnący. W naszym przypadku została przyjęta częstotliwość 
próbkowania na 2000 Hz stąd wynikają inne częstotliwości, tzn. częstotliwości względej od 
zera do jedności odpowiada częstotliwość od zera do tysiąca Hz (1000 Hz – częstotliwość 
Nyquista). Za pomocą funcji frez wykreślana jest charakterystyka częstotliwościowa danego 
filtru, następnie generowany jest sygnał o ilości próbek od zera do k (wartość określana) 
składający się z sinusoid o odpowiednio dobranych częstotliwościach (początkowo 500 i 40 
Hz) z pasma przepustowego zaporowego. Sygnał jest wykreślany a następnie filtrowany za 
pomocą funkcji filter wykorzystując współczynniki zaprojektowanego wcześniej filtru. 

a)  przeanalizuj filtrację sygnału dla rzędu filtru n = 3, 5, 10, 20, 50, 100 dla k = 150 
b)  przeanalizuj filtrację sygnału dla rzędu filtru n = 3, 5, 10, 20, 50, 100 dla k = 400 

 
8. Filtracja z wykorzystaniem filtrów IIR (IIR.m) 
Do projektowania wykorzystujemy następujące funkcje programu Matlab:  
a)butter,  
b)cheby1,  
c)cheby2,  
d)ellip, 
projektujące filtry o zadanej charakterystyce i rzędze n. 
Dla poszczególnych rodzajów prototypów przeanalizować filtracje dla n=3, 5, 10, 20, 50, 100 
dla dwu wartości k = 150, 400. 
 
 
 
 
 
 
 
 
 
 
 
 

 

5

background image

Katedra Elektroniki PL - Cyfrowe przetwarzanie sygnałów 

Projektowanie filtrów FIR oraz IIR. Filtracja sygnałów, porównanie poszczególnych rodzajów filtrów. 

Program IIR.M 

n=3 
%[b,a]=butter(n,[300/1000]); 
%[b,a]=cheby1(n,3,[300/1000]); 
%[b,a]=cheby2(n,3,[300/1000]); 
[b,a]=ellip(n,3,70,[300/1000]); 
freqz(b,a); pause; 
fp=2000;df=1; dfn=df/fp; N = 200; ax1 = 1; ax2 = 1; fx1 = 40; fx2 = 500; fm = 32; NF = 
1000; 
dt = 1/fp ; t = 0 : dt : (N-1)*dt; 
x1 = ax1 * cos(2*pi*fx1*t); x2 = ax2 * cos(2*pi*fx2*t); 
x = x1 + x2; 
plot(t,x); pause 
y=filter(b,a,x); plot(t,y); pause; 
close all; 
%Widmo sygnału przed i po filtracji 
%Widmo sygnału przed i po filtracji 
f0 = 1/(N*dt); f2 = 0:f0:(N-1)*f0; 
X1 = fft(x); X1=abs(X1)/k; X1=20*log10(X1); 
plot(f2,X1,'-k','MarkerFaceColor','k'); grid; xlabel('f [Hz]'); 
axis tight; title ('Widmo sygnału przed filtracją'); pause; 
Y1 = fft(y); Y1=abs(Y1)/k; Y1=20*log10(Y1); 
plot(f2,Y1,'-k','MarkerFaceColor','k'); grid; xlabel('f [Hz]'); 
axis tight; title ('Widmo sygnału po filtracji'); pause; close all; 
 
 

Program FIR.M 

n=10; 
F=[0,0.4,0.5,1]; 
M=[1,1,0,0]; 
plot(F,M); pause; 
b=fir2(n,F,M); 
stem(b); 
pause 
freqz(b,1);pause; 
fp=2000; df=1; dfn=df/fp; N = 200; ax1 = 1; ax2 = 1; fx1 = 40; fx2 = 500; fm = 32; NF = 
1000; 
dt = 1/fp ; t = 0 : dt : (N-1)*dt; 
x1 = ax1 * cos(2*pi*fx1*t); x2 = ax2 * cos(2*pi*fx2*t); x = x1 + x2; plot(t,x); pause 
y=filter(b,1,x); plot(t,y); pause; 
%Widmo sygnału przed i po filtracji 
f0 = 1/(N*dt); f2 = 0:f0:(N-1)*f0; 
X1 = fft(x); X1=abs(X1)/k; X1=20*log10(X1); 
plot(f2,X1,'-k','MarkerFaceColor','k'); grid; xlabel('f [Hz]'); 
axis tight; 
title ('Widmo sygnału przed filtracją'); pause; 
Y1 = fft(y); Y1=abs(Y1)/k; Y1=20*log10(Y1); 
plot(f2,Y1,'-k','MarkerFaceColor','k'); grid; xlabel('f [Hz]'); 
axis tight; 
title ('Widmo sygnału po filtracji'); pause; close all; 

 

6


Document Outline