Sunteți pe pagina 1din 17

Capitolul 3 - Proiectarea filtrelor digitale.

Filtre cu rspuns finit la impulsul unitate


(RFI)

3 Proiectarea filtrelor digitale. Filtre cu rspuns finit la impuls


(Finite Impulse Response - FIR)
Obiectivele capitolului
Prezentarea principalelor metode de proiectare a filtrelor digitale FIR i
ilustrarea caracteristicilor acestora cu ajutorul programului MATLAB. Introducere n
mediul de programare diagrama-modul Simulink. Simularea filtrelor digitale FIR n
Simulink.

Introducere teoretic

3.1

Filtrele digitale reprezint ecuaii cu diferene finite, a cror rezolvare se


realizeaz prin algoritmi matematici care pot fi implementai hardware sau software.
Filtrele digitale preiau o secven de intrare i o transform, pe baza ecuaiei cu
diferene finite caracteristice filtrelor, n secvene de ieire.
Tipuri de filtre digitale
Filtrele digitale pot fi clasificate pe baza funciei pondere care le caracterizeaz
(rspunsul acestora la secvena de intrare impuls unitar/ unitate/ Dirac discret) n:

filtre cu rspuns finit la impuls (FIR).

filtre cu rspuns infinit la impuls (IIR).

Filtrele FIR au funcia pondere h n de lungime finit i sunt caracterizate de o


ecuaie cu diferene finite de forma:

y n

N 1

k 0

k n N 1

h k x n k h n k x k

(3.1)

unde N este ordinul (sau lungimea) filtrului. Relaia ( 3 .1) reprezint exact
convoluia discret, comutativ, care poate fi utilizat pentru orice sistem LIT pentru
a calcula rspunsul la o secven de intrare arbitrar; particularizarea pentru FIR
const n stabilirea unor limite finite n relaia de sumare.
Filtrele IIR au funcia pondere de lungime infinit, aa cum arat i denumirea
lor. Evident c o relaie de forma ( 3 .1) nu poate fi utilizat pentru caracterizarea
acestui tip de filtre din cauza imposibilitii de a putea calcula rspunsul ca sum
finit de termeni. De aceea filtrele IIR sunt caracterizate de ecuaii recursive de
forma:
N

k 0

i 1

y n bk x n k ai y n i

(3.2)

S-au notat cu bk , a i coeficienii filtrului. N este ordinul filtrului direct iar M


este. ordinul reaciei. Aplicnd transformata Z n relaiile ( 3 .1) i ( 3 .2) se obin
urmtoarele funcii de transfer (transformatele Z ale funciilor pondere):
1

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
Filtre FIR: H z

Y ( z ) N 1
hk z k
X ( z ) k 0
N -1

Y (z)

Filtre IIR: H z
X (z)

z k

k =0

(3.3)

1 ai z

(3.4)
i

i 1

Pentru o aplicaie dat, alegerea tipului filtrului utilizat, FIR sau IIR, se face pe
baza urmtoarelor considerente:
-

Filtrele FIR pot fi realizate cu faz absolut liniar, deci filtrul nu introduce
distorsiuni de faz. n cazul filtrelor IIR faza rspunsului este profund
neliniar;

Filtrele FIR implementate nerecursiv sunt ntotdeauna stabile. n schimb,


stabilitatea filtrelor IIR nu poate fi garantat ntotdeauna;

Erorile datorate zgomotului de rotunjire i erorilor de cuantizare (deci, n


ansamblu,
efectele
lungimii
finite
a
reprezentrilor
eantioanelor/coefcienilor), sunt mai puin critice n cazul filtrelor FIR dect n
cazul filtrelor IIR;

Pentru a obine filtre cu frecvene de tiere bine marcate (deci cu benzi de


trecere ct mai nguste), n cazul FIR sunt necesari mai muli coeficieni dect
pentru filtrele IIR;

Filtrele analogice IIR pot fi transformate direct n filtre digitale IIR


corespunztoare acelorai specificaii de proiectare, ceea ce nu este posibil
n cazul filtrelor FIR. Cu toate acestea, sinteza filtrelor FIR este mai simpl n
cazul n care se doresc rspunsuri n frecven arbitrare.
Proiectarea filtrelor digitale
Proiectarea filtrelor digitale presupune:

Precizarea datelor de proiectare ale filtrului (specificarea caracteristicilor dorite).


Alegerea tipului de filtru (FIR sau IIR) i calculul coeficienilor filtrului.
Reprezentarea filtrului printr-o structura corespunztoare (realizarea filtrului).
Analiza efectelor lungimii finite a cuvintelor asupra performanelor filtrului.
Implementarea SW sau HW a filtrului.

Observaie
Datele de proiectare specifice filtrului definesc de obicei caracteristicile ale
filtrului n domeniul frecven. De exemplu, pentru un filtru trece jos (FTJ) este
important s se precizeze mrimile:
2

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
-

fp

frecvena limit a benzii de trecere

fs

fe

p ondulaia (riplul) n banda de trecere

s ondulaia (riplul) n banda de oprire

As atenuarea n banda de oprire n dB (As = 20 log10 s [dB])

Ap riplul n banda de trecere n dB (Ap = 20 log10 (1 + p) [dB])

frecvena limit a benzii de oprire


frecvena de eantionare

n Fig. 3 .1 s-au marcat aceste mrimi, fiind considerat cazul unui filtru de tip
trece jos (FTJ).
|H|
1+p
1p

s
0

fp

fs

frecvena

Banda de trecere Banda Banda de oprire


de tranziie

Fig. 3.1. Caracteristicile de frecven pentru un filtru FTJ


3.2

Metode de sintez n cazul filtrelor FIR cu faza liniar


Metodele de sintez n cazul filtrelor FIR cu faz liniar folosite uzual sunt:
-

Metoda seriilor Fourier (numit i metoda ferestrelor)

Metoda eantionrii n frecven

Metoda optimal (n sens Cebev)

3.2.1 Metoda ferestrelor

Metoda determin funcia pondere a filtrului pe baza specificaiilor legate de


rspunsul su n frecven; seria infinit obinut este limitat la un numr de
coeficieni, cu scopul de a face filtrul realizabil. Aceasta este echivalent cu a
multiplica funcia pondere h n cu o secven constant, cu valoarea 1, de durat
limitat, fereastra dreptunghiular (rectangular). Multiplicarea n domeniul timp
3

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
nseamn n domeniul frecven convoluia dintre spectrul dorit pentru filtrul pe care
l proiectm i spectrul ferestrei dreptunghiulare, convoluie care duce la apariia
fenomenului Gibbs, caracterizat astfel:
-

n vecintatea zonelor de tranziie din caracteristicile de frecven ale filtrului


digital apar unor ondulaii (ripluri), numite oscilaii Gibbs.

frecvenele de tranziie ale caracteristicii de frecven se transform n benzi


de tranziie.

O soluie mai bun este folosirea altor tipuri de funcii fereastr, care s
realizeze o trunchiere ponderat a funciei pondere specifice filtrului dorit, care s
prezinte caracteristici de frecven superioare ferestrei dreptunghiulare (limea
lobului principal mai mic i o atenuare mai mare a lobilor laterali). n aceast
lucrare vor fi prezentate principalele funcii fereastr (Bartlett, Blackman, Hamming,
Hanning, Kaiser).
n tabelul 3.2 este prezentat algoritmul pentru proiectarea filtrelor FIR prin
metoda ferestrelor, iar n tabelul 3.3 sunt prezentate comparativ, avantajele si
dezavantajele metodei ferestrelor.
Pai de proiectare a unui filtru FIR prin metoda ferestrelor
Specificarea rspunsului ideal (dorit) n frecven al filtrului, H d e j .
Obinerea funciei pondere (rspunsul filtrului la impuls) hd n prin transformata
Fourier invers a lui H d e j .
Alegerea unei funcii fereastr care s satisfac cerinele referitoare la banda de
trecere i atenuarea necesar.
Obinerea secvenei w n pentru funcia fereastr aleas, precum i a valorilor
coeficienilor filtrului FIR selectai, h n , prin multiplicarea funciei pondere dorite,
hd n , cu secvena fereastr, w n :
h n hd n w n

(3.5)

Metoda ferestrelor permite proiectarea simpl a filtrelor FIR, dar datorit


efecturii convoluiei n domeniul frecven cu spectrul funciei fereastr, nu se pot
preciza exact valorile frecvenelor care delimiteaz benzile de trecere i oprire. n
plus, riplul maxim este limitat inferior pentru fereastra dreptunghiular (indiferent ct
crete valoarea lui N , riplul nu poate scdea sub o anumit valoare).

3.2.2 Metoda optimal n sens Cebev

Proiectarea filtrelor FIR cu faz liniar este o problem de aproximare n sens


Cebev, ceea ce nseamn obinerea unui set de condiii care s garanteze o
soluie optimal, n sensul minimizrii maximului erorii de aproximare, pe ntregul
interval de aproximare, soluie care s fie unic.

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)

3.2.3 Realizarea filtrelor FIR

Etapa realizrii filtrelor const n alegerea structurii pentru implementare:.


structura transversal (direct), structura cu eantionare n frecven, structura cu
convoluie direct, structura latice

3.2.4 Funcii MATLAB folosite n proiectarea filtrelor FIR


Funcii pentru prelucrarea semnalelor
abs

Amplitudine complex

angle, phase

Unghiul, faza

conv

Convoluie

deconv

Deconvoluie

fft

Transformata Fourier 1-D

ifft

TFD invers 1-D

fftshift

Schimb cadranele matricilor

unwrap

Faza desfcut

filter

Filtrare

Funcii pentru lucrul cu ferestre


bartlett

Fereastra Bartlett

blackman

Fereastra Blackman

hamming

Fereastra Hamming

hanning

Fereastra Hanning

kaiser

Fereastra Kaiser

Funcii pentru proiectarea filtrelor FIR


fir1, fir2

Proiectarea filtrelor FIR cu metoda ferestrelor

remez

Proiectarea filtrelor FIR prin metoda Parks - McClellan

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
3.3

Aplicaii

3.3.1 Proiectarea filtrelor FIR prin metoda ferestrelor


Fenomenul Gibbs poate fi analizat considernd exemplul EX1_L3.m, al crui
listing este prezentat mai jos. Studiai acest exemplu i modificai programul pentru
cazul unui alt rspuns dorit n frecven. Modificai lungimea ferestrei
dreptunghiulare i studiai efectul acesteia asupra rspunsului n frecven specific
filtrului obinut.
% Exemplu FIR
% Proiectarea filtrelor FIR cu metoda ferestrelor, N = 54 pt metoda ferestrelor
% Punerea in evidenta a fenomenului Gibbs
% <Atentie>: Toate reprezentarile in frecventa sunt facute pe o perioada a TFTD [0,
2*pi)
% 64 puncte pentru TFTD
omega=[0:1:63]*2*pi/64;
t=-32:1:31;
Hd = ones(64,1);
for i=10:1:54
Hd(i) = 0;
end;
figure,subplot(221),plot(omega,Hd), title('Rasp. in frecventa dorit'),xlabel('\omega'),
ylabel(' | H_{d}(e^{j \omega}) | ');
axis([min(omega),max(omega),0,2]);
% Functia pondere dorita hd(n) este TFDI(Hd)
hd = ifft(Hd);
subplot(222),stem(t,fftshift(hd)),title('Functia
pondere
dorita'),xlabel
('n'),
ylabel('hd(n)'),axis([-32 31 -0.2 0.5]);
w=[zeros(1,5) ones(1,54) zeros(1,5)];
h = fftshift(fftshift(hd).* w');
subplot(223), stem(t,w), title('Fereastra dreptunghiulara'),xlabel('n'), ylabel(' w(n)
'),axis([-32 31 0 2]);
H = fft(h);
subplot(224), stem(t,fftshift(h)), title('Functia pondere h = hd * w'),xlabel('n'), ylabel('
h(n) '),axis([-32 31 -0.2 0.5]);
% Generarea raspunsului dorit in frecventa ...
figure,subplot(211),plot(omega,Hd), title('Rasp. in frecventa dorit'),xlabel('\omega'),
ylabel(' | H_{d}(e^{j \omega}) | '),axis([min(omega),max(omega),0,2]);
subplot(212), plot(omega,abs(H)), title('Rasp. in frecv. obtinut'),xlabel('\omega'),
ylabel(' | H(e^{j \omega}) | '),axis([min(omega),max(omega),0,2]);
Reluai punctul a) pentru cazul ferestrei de tip Blackman.
Se consider secvena dreptunghiular periodic x n ,
pentru
A
A pentru

x n

2mN n 2m 1 N
2m 1 N n 2mN

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
Semnalului x n i se adaug zgomot aleator, rezultnd secvena cu zgomot
y n . Limitarea acesteia se poate face direct, cu ajutorul funciei fereastr care
poate fi, de exemplu, de tip Bartlett.
Scriei secvena de instruciuni MATLAB pentru trunchierea secvenei iniiale,
utiliznd exemplul EX1_L3.m .
Modificai programul scris la punctul a), pentru a putea opera asupra
transformatelor Fourier ale secvenei si ferestrei. n acest caz, trebuie calculat
secvena de convoluie a acestor transformate (n domeniul frecven) i apoi
realizat transformarea Fourier invers. Secvena global ce trebuie calculat este:

K 1

TFD 1

X m W nm

m 0

mod K

unde W este TFD a funciei fereastr w n , iar K este numrul de eantioane n


care se calculeaz transformata Fourier. Comparai rezultatele cu cele obinute
anterior i interpretai-le.
Cu ajutorul comenzii help, studiai funciile MATLAB fir1 i fir2, "freqz",
"filter", input.
d1) S se ruleze programul EX2_L3.m (listat mai jos) i s se urmreasc modul n
care a fost proiectat i implementat filtrul. Ce putei spune despre semnalul rezultat
n urma filtrrii.
Fs=1000;
x = sin(2*200*pi*(1/Fs)*(0:(100-1)));%sinus cu frecventa 200 Hz, esantionat la 1000
Hz
N = length(x);
t = [0:N-1]/Fs;
f = [0:N/2-1]*Fs/N;
X = fft(x);
MX = abs(X);
figure,subplot(221),plot(t,x),title('Semnalul in timp'),xlabel('Timp (s)');
subplot(222),plot(f,abs(MX(1:N/2))),title('Spectrul
semnalului'),xlabel('Frecventa
(Hz)');
Wn = 1/10;
B = fir1(30,Wn,bartlett(31));
[H,W] = freqz(B,1,N/2, Fs);
MH = abs(H);
y = filter(B,1,x);
Y = fft(y);
MY = abs(Y);
subplot(223),plot(f,MH),title('Raspunsul in frecventa al FIR'),xlabel('Frecventa (Hz)');
subplot(224),plot(f,abs(MY(1:N/2))),title('Spectrul
semnalului
filtrat'),xlabel('Frecventa (Hz)');
7

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
figure,subplot(211),plot(t,x),title('b - Semnalul initial, r - semnalul filtrat'),xlabel('Timp
(s)');hold on, plot(t,y,'r');
subplot(212),plot(t,y),title(['Semnalul
filtrat,
filtru
de
ordinul
'
num2str(length(B))]),xlabel('Timp (s)');
% a se observa ca semnalul initial a fost mult atenuat
d2) S se modifice programul EX2_L3.m, lund diferite valori ale frecvenei de
tiere i urmrind rezultatul filtrrii.
S se ruleze programul ex3_L3.m (listat mai jos), urmrind forma ferestrelor
dreptunghiular, Bartlett, Hamming, Hanning, Blackman, Cebev si Kaiser, precum
i spectrul acestora.

Observaie
Proprietile ferestrelor pot fi analizate i cu lansnd wintool n fereastra de
comand.
f = -63:1:64;
x1 = [zeros(1,14) boxcar(100)' zeros(1,14)];
X1 = fftshift(abs(fft(x1)));
logX1 = 20*log10(X1+0.00001);
figure,subplot(221), plot(x1), title('Fereastra dreptunghiulara'),xlabel('Timp'),xlim([1
128]);
subplot(222), plot(f,X1), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),xlim([63 64]);
subplot(223),
plot(f,logX1),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
x2 = [zeros(1,14) bartlett(100)' zeros(1,14)];
X2 = fftshift(abs(fft(x2)));
logX2 = 20*log10(X2+0.00001);
figure,subplot(221), plot(x2), title('Fereastra Bartlett'),xlabel('Timp'),xlim([1 128]);
subplot(222), plot(f,X2), title('Spectrul ferestrei simetrizat'),xlabel('Freceventa'),xlim([63 64]);
subplot(223),
plot(f,logX2),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
x3 = [zeros(1,14) hamming(100)' zeros(1,14)];
X3 = fftshift(abs(fft(x3)));
logX3 = 20*log10(X3+0.00001);
figure,subplot(221), plot(x3), title('Fereastra Hamming'),xlabel('Timp'),xlim([1 128]);
subplot(222), plot(f,X3), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),xlim([63 64]);
subplot(223),
plot(f,logX3),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
clear x3 X3 logX3
x4 = [zeros(1,14) hanning(100)' zeros(1,14)];
X4 = fftshift(abs(fft(x4)));
logX4 = 20*log10(X4+0.00001);
8

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
figure,subplot(221), plot(x4), title('Fereastra Hanning'),xlabel('Timp'),xlim([1 128]);
subplot(222), plot(f,X4), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),xlim([63 64]);
subplot(223),
plot(f,logX4),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
clear x4 X4 logX4;
x5 = [zeros(1,14) blackman(100)' zeros(1,14)];
X5 = fftshift(abs(fft(x5)));
logX5 = 20*log10(X5+0.00001);
figure,subplot(221), plot(x5), title('Fereastra Blackman'),xlabel('Timp'),xlim([1 128]);
subplot(222), plot(f,X5), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),xlim([63 64]);
subplot(223),
plot(f,logX5),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
clear x5 X5 logX5;
x6 = [zeros(1,14) chebwin(99,40)' zeros(1,14)];
X6 = fftshift(abs(fft(x6)));
logX6 = 20*log10(X6+0.00001);
figure,subplot(221), plot(x6), title('Fereastra Cebisev'),xlabel('Timp'),xlim([1 128]);
subplot(222),
plot(f(1:127),X6),
title('Spectrul
ferestrei
simetrizat'),xlabel('Frecventa'),xlim([-63 64]);
subplot(223),
plot(f(1:127),logX6),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
clear x6 X6 logX6;
x7 = [zeros(1,14) kaiser(100,5.2)' zeros(1,14)];
X7 = fftshift(abs(fft(x7)));
logX7 = 20*log10(X7+0.00001);
figure,subplot(221), plot(x7), title('Fereastra Kaiser'),xlabel('Timp'),xlim([1 128]);
subplot(222), plot(f,X7), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),xlim([63 64]);
subplot(223),
plot(f,logX7),
title('Spectrul
ferestrei
simetrizat
(dB)'),xlabel('Frecventa'),xlim([-63 64]);
e1) Discutai care dintre ferestre este mai potrivit pentru proiectarea filtrelor FIR
prin metoda ferestrelor i precizai criteriul de selecie considerat.
e2) Modificai n program parametrul ferestrei Cebev (riplul n dB) i parametrul
ferestrei Kaiser (beta). Precizai care este avantajul acestor tipuri de fereastr fa
de celelalte ferestre.
Rulai programul EX4_L3.m, listat mai jos. Urmrii modul n care este
recuperat un semnal util acoperit de zgomot, pe baza informaiei spectrale a
semnalelor obinute prin transformata Fourier.
Fs = 1000;
NFFT = 256;
t = 0:(1/1000):.25;
9

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
% Semnalul dorit este:
x = sin(2*pi*100*t) + sin(2*pi*350*t);%100 Hz si 350 Hz
% Se adauga la semnalul util un semnal perturbator.
% Se obtine semnalul zgomotos y:
y = x + 0*rand(size(t)) + sin(2*pi*250*t) ;%250 Hz este perturbatia
figure,plotyy(t,x,t,y);
title('Semnalul neperturbat (blue) si perturbat (green) in domeniul timp'),xlabel('Timp
(ms)');
% Transformata Fourier discreta, calculata cu algoritmi FFT este:
Y = abs(fft(y,NFFT));
X = abs(fft(x,NFFT));
% Pentru primele 127 puncte, desenam densitatea spectrala de putere
% deoarece pentru urmatoarele 127 puncte, este simetrica.
f = Fs/NFFT*(0:(NFFT/2-1));
figure,subplot(221),plot(f,X(1:(NFFT/2))),
title('Spectrul
initial'),xlabel('frecventa (Hz)');
subplot(222),plot(f,Y(1:(NFFT/2))),
title('Spectrul
perturbat'),xlabel('frecventa (Hz)');

semnalului
semnalului

F = [0.0 0.18 0.2 0.22 0.5 0.68 0.7 0.72 0.8 1];
M = [0 0 6.3 0 0 0 6 0 0 0];
B = fir2(31,F,M);
[H, W] = freqz(B,1,NFFT,Fs);
MH = abs(H);
z = filter(B,1,y);
Z = fft(z);
MZ = abs(Z);
subplot(224),plot(W,abs(H)), title('Raspunsul in frecventa al FIR'),xlabel('frecventa
(Hz)');
subplot(223),plot(f,abs(MZ(1:(NFFT/2)))),title('Spectrul
semnalului
filtrat'),xlabel('Frecventa (Hz)');
figure,subplot(221), plot(x(50:100)), title(' Segment din semnalul neperturbat');
subplot(222), plot(y(50:100)), title('Segment din semnalul perturbat');
subplot(223), plot(z(15+(50:100))), title('Segment din semnalul filtrat');
f1) Justificai proiectarea filtrului i modificai parametrii acestuia, observnd
rezultatul.
f2) Poate fi folosit n acest caz un filtru trece jos pentru eliminarea zgomotului? Dar
un filtru trece banda? Justificai rspunsul.
f3) Proiectai i implementai n MATLAB un sistem realizat cu dou filtre diferite
(precizai tipul acestora: FTJ, FTB, sau FTS), care s recupereze eficient semnalul
util de la punctul f1).
Folosind funciile utilizate anterior s se proiecteze prin metoda ferestrelor un
filtru digital FIR de tip trece jos, cu urmtoarele caracteristici:
10

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
- atenuarea n banda de oprire

50 dB

- frecvena de tiere

3.4 kHz

- limea benzii de tranziie


- frecvena de eantionare

0.6 kHz
12 kHz

Modificai programul de la punctul g), pentru a funciona n regim interactiv,


folosind funcia input.
Proiectai un filtru digital FIR cu faz liniar, care s aproximeze urmtorul
rspuns n frecven:

1 pentru 6
H d

0 pentru
6

i1) Determinai cei 25 de coeficieni ai filtrului, prin metoda ferestrelor, folosind o


fereastr Bartlett.
i2) Determinai i desenai amplitudinea i faza rspunsului n frecven al filtrului.
i3) Repetai punctele i1) i i2) pentru fereastra Hamming.
i4) Repetai punctele i1) i i2) pentru fereastra Hanning
Repetai problema i) pentru cazul unui filtru digital de tip oprete band, cu
rspunsul ideal n frecven:

1 pentru 6

H d 0 pentru
6
3

1 pentru

S se proiecteze un filtru de tip trece band (FTB), cu urmtoarele date de


proiectare:
- numrul benzilor de trecere:

- frecvenele centrale ale benzilor de trecere:

2 i 4 Hz

- lrgimea benzilor de trecere:

2 i 1 Hz

- tipul ferestrei:

Blackman, de dimensiune 7

Proiectai un filtru digital de tip trece band, cu banda de trecere: 40 kHz f


80 kHz. Cea mai nalt frecven prezent n spectrul semnalului ce trebuie filtrat
este 100 kHz. Care este frecvena de eantionare minim ?
11

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
S se proiecteze un filtru FIR trece jos optimal n sens Cebev cu metoda
Parks-McCllelan, avnd urmtoarele caracteristici:
- frecvena de eantionare

10kHz

- frecvena de tiere

2.5kHz

- limea benzii de tranziie

0.5kHz.

- ordinul filtrului

30.

Soluie:
Secvena MATLAB pentru rezolvarea problemei este prezentat n exemplul
EX5_L3.m. Lansai n execuie programul i interpretai rezultatele.
% Sa se proiecteze un filtru FIR optimal in sens Cebisev
% cu metoda Parks-McCllelan, avind urmatoarele caracteristici de gabarit:
% Frecventa de esantionare = 10kHz
% Frecventa de taiere in banda de trecere = 2.5kHz
% Latimea benzii de tranzitie 0.5kHz.
Fe = 10000;
N = 100;%puncte pt reprezentarea in frecventa
f = (Fe/2)*[0:(N-1)]/N;
F = [0.0 0.5 0.6 1];
M = [1 1 0 0];
B = remez(30, F, M);
Hf = freqz(B,1,100);
Hd = [ones(1,50) zeros(1,10) zeros(1,40)]';
H = [Hf Hd];
% Se reprezinta filtrul FIR optimal si fitrul ideal cu frecventa de taiere 2.5kHz
figure,plot(f,abs(H)),title('Modulul filtrul trece-jos ideal si al celui proiectat
optimal'),xlabel('Frecventa (Hz)');
figure,plot(f,unwrap(angle(Hf))),title('Faza
filtrul
trece-jos
proiectat
optimal'),xlabel('Frecventa (Hz)');
S se proiecteze un filtru digital de tip trece sus, cu frecvena de trecere 750
Hz. Se tie faptul c n spectrul semnalului ce trebuie filtrat, nu exist component
de frecven mai mare de 1000 Hz.
n1) Se poate alege frecvena de eantionare de 4000 Hz ?
n2) Desenai funcia de transfer ideal a filtrului.
n3) Proiectai filtrul.
Un semnal analogic discretizat are o component nedorit cu frecvena de 60
Hz i conine i armonicile sale de 120 Hz, 180 Hz, 240 Hz, 300 Hz, 360 Hz.
Frecvena de eantionare este de 1200 Hz. Proiectai un filtru digital care s nlture
att componenta de 60 Hz ct i armonicile sale.
Un filtru digital FIR este descris de ecuaia cu diferene finite:

12

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
y n x n x n 10

p1) Calculai i desenai amplitudinea i faza rspunsului n frecven.


p2) Determinai rspunsul filtrului la secvenele de intrare:



x1 n cos
n 3sin
n , pentru n
10
3 10
2
n , pentru n
2
5

x 2 n 10 5 cos

Un semnal vocal cu frecvena maxim 10 kHz este eantionat cu frecvena de


eantionare de 20 kHz. Presupunem c semnalului i se adaug zgomot, sub forma a
4 sinusoide avnd frecvenele:
f1 = 10 000 Hz

f3 = 7778 Hz

f2 = 8889 Hz

f4 = 6667 Hz

q1) Proiectai un filtru FIR care elimin componentele aflate la aceste frecvene
parazite.
q2) Alegei ctigul filtrului astfel nct componenta continu s nu fie distorsionat,
H 0 1 , i apoi desenai amplitudinea (n reprezentare logaritmic) i faza
rspunsului su n frecven.
q3) Filtrul obinut corespunde sau nu obiectivelor propuse prin datele de proiectare?
Ai recomanda utilizarea sa n aplicaii practice ? Justificai.
S se proiecteze un filtru FIR trece-band cu faz liniar, avnd urmtoarele
caracteristici de frecven:
- Frecvena de eantionare

20kHz

- Frecvena central a benzii de trecere

4kHz

- Lrgimea benzii de trecere

2kHz

- Benzile de tranziie

0.2kHz

Cu ajutorul filtrului construit, filtrai semnalul afectat de zgomot existent n


fiierul semnal2.mat. Reprezentai semnalul filtrat.
Soluie:
Programul MATLAB pentru rezolvarea problemei este prezentat n exemplul
EX6_L3.m listat mai jos. Lansai n execuie programul i interpretai rezultatele.
% Sa se proiecteze un filtru FIR trece-banda cu faza linara,
% avind urmatoarele caracteristici de gabarit:
% Frecventa de esantionare = 20kHz
% Banda de trecere cu frecventa centrala = 4kHz
% Largimea benzii de trecere = 2kHz
13

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)
% benzile de tranzitie = 0.2kHz
%!!!!! atentie la definirea frecventelor
Fe = 20000;
F = [0.0 0.28 0.3 0.5 0.52 1];
M = [0 0 1 1 0 0];
B = fir2(30, F,M);
[H,W] = freqz(B,1,100,Fe);
Hd = [zeros(1,30) ones(1,20) zeros(1,50)]';
% Se reprezinta filtrul trece-banda FIR
% si fitrul ideal trece banda corespunzator benzii 3kHz-5kHz.
figure,subplot(211),plot(W,abs(H)),title('b- Modulul filtrului trece-banda ideal si al
celui proiectat, r - ideal'),xlabel('Hz');
hold on,plot(W,Hd,'r');
subplot(212),plot(W,unwrap(angle(H))),title('Faza filtrului trece-banda proiectat
'),xlabel('Frecventa (Hz)');
3.4

Proiectarea filtrelor FIR cu ajutorul mediului de programare Simulink

Mediul de programare Simulink este un mediu integrat programului MATLAB


care permite simularea unor sisteme complexe de orice natur, prin utilizarea unui
limbaj de programare orientat pe diagrame de module, pe interconectarea unor
module predefinite sau definite de utilizator. La baza Simulink st limbajul de
programare MATLAB cu funciile predefinite ale acestuia. Programele asociate unei
scheme Simulink au, ca orice program MATLAB, extensia ".m", putnd fi apelate
direct de la prompterul MATLAB, prin tastarea numelui fiierului, fr extensie. La
apelarea unui program Simulink se va deschide o fereastra cu un meniu care ofer o
serie de opiuni. Pe lng facilitile uzuale de salvare fiier, editare, etc., avem i
opiunile de pornire/oprire a simulrii din meniul "Simulation". Mediul de programare
Simulink se apeleaz tastnd n fereastra de comand a MATLAB-ului:
>> simulink
Pentru a vedea biblioteca de module Simulink se selecteaz modulele de
interes, observnd modul n care acestea sunt folosite (programele demonstrative demo din blocul "Extras" pot clarifica mai bine aceste informaii).
Rulai programul Simulink EX7_L3.mdl comentnd rezultatele obinute.
Analizai toate blocurile Simulink existente n program.

14

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)

Fig. 3.2. Exemplul EX7_L3.mdl


b1) Rulai programul pentru diferite forme i frecvene ale semnalului de intrare.
Operai n blocul denumit "Signal Gen.".
b2) Discutai cnd trebuie i cum trebuie s se modifice (s creasc sau s scad)
frecvena de eantionare folosit la proiectarea filtrului, dac frecvena semnalului
de intrare crete. Precizai care este criteriul determinant pentru o astfel de variaie.
b3) Modificai caracteristica de gabarit a filtrului (limea, frecvena central a benzii
de trecere), modificai tipul filtrului.
b4) Modificai filtrul FTB (iniial) astfel nct atenuarea n banda de trecere s fie
nul.
Reluai problema b) pentru semnalul existent n fiierul semnal4.mat.
Soluie:
Se va ncrca acest fiier semnal3.mat cu comanda
>> load semnal4
Rezultatul va fi ncrcarea n spaiul de lucru a unei matrice "x". Prima linie a
matricei reprezint momentele la care au fost nregistrate eantioanele de semnal,
iar a doua linie reprezint valorile propriu-zise ale semnalului, la momentele
respective. S se afieze semnalul. Programul soluie care va fi rulat i analizat este
EX8_L3.mdl.

15

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)

Fig. 3.3. Exemplul EX8_L3.mdl


S se filtreze un semnal ECG (electrocardiografic) uman, existent n fiierul
foetal_ecg.dat (eantionat cu 500 Hz), i s se analizeze spectrul semnalului filtrat.
Semnalul este afectat de un zgomot alb de band limitat. Se va rula programul
Simulink EX9_L3, cu studierea tuturor modulelor care apar.
d1) Studiai ce se ntmpl dac cretem puterea zgomotului alb.
d2) Modificai parametrii filtrului pentru o mai bun filtrare a semnalului util ECG.

Fig. 3.4. Exemplul EX9_L3.mdl


3.5

Exerciii i probleme recapitulative


a) Pentru filtrul FIR caracterizat de ecuaia cu diferene finite:
y n x n x n 4

a1) Calculai i desenai amplitudinea i faza rspunsului n frecven.


a2) Calculai rspunsul filtrului la secvena de intrare:
16

Capitolul 3 - Proiectarea filtrelor digitale. Filtre cu rspuns finit la impulsul unitate


(RFI)


x n cos n cos n , pentru n
2
4

a3) Explicai rezultatele obinute la punctul a2), n funcie de rezultatele de la punctul


a1).
b) Reluai exerciiul anterior utiliznd Matlab, respectiv o implementare
Simulink.

B IBLIOGRAFIE
Ungureanu Georgeta Mihaela - Analiza i prelucrarea semnalelor: aplicaii n
ingineria biomedical, MATRIX ROM, 2013;
Ungureanu G. Mihaela Prelucrarea digital a semnalelor, MATRIX ROM, 2008;
Ungureanu Mihaela, Munteanu Cristian, Dumitras Adriana, Vieru Rodica,
Coordonator: Prof.Dr.Ing. Lazarescu Vasile - Prelucrarea digital a semnalelor.
Aplicaii Matlab, Matrix ROM, 2003;
Vasile Lzrescu - Prelucrarea digital a semnalelor; Amco Press, Bucuresti,
Romania, 1995;
Robert D. Strum, Donald E. Kirk - First Principles of Discrete Systems and Digital
Signal Processing; Addison - Wesley Publ. Comp., USA, 1988;
Alan V. Oppenheim, Roland W. Schaffer - Discrete Time Signal Processing Prentice-Hall International, Inc., 1988

17

S-ar putea să vă placă și