Sunteți pe pagina 1din 19

Capitolul III

Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

Proiectarea filtrelor digitale


Filtre cu răspuns finit la impulsul unitate (RFI)

Obiectivele capitolului
Prezentarea principalelor metode de proiectare ale filtrelor digitale RFI şi simularea cu
ajutorul programului MATLAB. Introducere în mediul de programare diagrama-modul
Simulink. Simularea filtrelor digitale RFI cu ajutorul Simulink.

III.1. Introducere teoretică


Filtrele digitale reprezintă, în esenţă, algoritmi matematici, implementaţi prin metode
hardware sau software şi care operează asupra semnalului digital de intrare, pentru a se obţine
semnalele dorite (filtrate) la ieşire, în conformitate cu un criteriu impus.

III.1.1. Tipuri de filtre digitale


După forma funcţiei pondere (care este răspunsul la secvenţa impuls unitar digital)
filtrele digitale pot fi împărţite în două mari clase:

 filtre cu răspuns finit la impulsul unitate (RFI).


 filtre cu răspuns infinit la impulsul unitate (RII).

Filtrele RFI au secvenţa pondere hn  de lungime finită şi sunt caracterizate de o ecuaţie
cu diferenţe finite de forma:
N 1 N 1
yn    hk xn  k    hn  k xk  (3.1)
k 0 k 0

unde N este ordinul (sau lungimea) filtrului. (3.1) este o relaţie de convoluţie discretă care
poate fi utilizată pentru calculul răspunsului la o secvenţă de intrare arbitrară.
Filtrele RII au secvenţa pondere de lungime infinită. Evident că o relaţie de forma (3.1)
nu poate fi utilizată pentru caracterizarea acestui tip de filtre din cauza imposibilităţii de a
putea calcula răspunsul. De aceea filtrele RII sunt caracterizate de ecuaţii recursive de forma:
N M
yn    a k xn  k    bi yn  i  (3.2)
k 0 i 1

S-au notat cu a k , bi coeficienţii filtrului. Ordinul filtrului este M . Aplicând


transformata Z în relaţiile (3.1) şi (3.2) se obţin funcţiile de transfer:

Y ( z ) N 1
Filtre RFI: H z     ak z k (3.3)
X ( z ) k 0

41
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

N -1

a k z k
Filtre RII: H  z  
Y ( z)
 k =0
M
(3.4)
1 bi z
X ( z) i

i 1

Pentru o aplicaţie dată, alegerea tipului filtrului utilizat, RFI sau RII, se face pe baza
următoarelor considerente:
 Filtrele RFI pot fi realizate cu fază absolut liniară, deci filtrul nu introduce distorsiuni
de fază. În cazul filtrelor RII faza răspunsului este profund neliniară;
 Filtrele RFI realizate în structuri nerecursive sunt întotdeauna stabile. În schimb,
stabilitatea filtrelor RII nu poate fi garantată totdeauna;
 Erorile datorate zgomotului de rotunjire si erorilor de cuantizare (deci, în ansamblu,
efectele reprezentării cu lungime finită a cuvintelor), sunt mai puţin critice în cazul filtrelor
RFI decât în cazul filtrelor RII;
 Pentru a obţine filtre cu frecvenţe de tăiere bine marcate (deci cu benzi de trecere cât
mai înguste), în cazul RFI sunt necesari mai mulţi coeficienţi decât pentru filtrele RII;
 Filtrele analogice pot fi transformate direct în filtre digitale RII corespunzătoare
aceloraşi specificaţii de proiectare, ceea ce nu este posibil în cazul filtrelor RFI. Cu toate
acestea, sinteza filtrelor RFI este mai simplă în cazul în care se doresc răspunsuri în frecvenţă
arbitrare.

III.1.2 Proiectarea filtrelor digitale


Proiectarea filtrelor digitale presupune efectuarea paşilor prezentaţi în tabelul 3.1 (paşi
care nu sunt neapărat independenţi).

Tabelul 3.1 Algoritmul de proiectare al filtrelor digitale


1) Precizarea datelor de proiectare ale filtrului (specificarea caracteristicilor dorite).
2) Alegerea tipului (RFI sau RII) şi calculul coeficienţilor filtrului.
3) Reprezentarea filtrului prin structura corespunzătoare ( = realizarea filtrului).
4) Analiza efectelor lungimii finite a cuvintelor asupra performanţelor filtrului.
5) Implementarea software sau hardware a filtrului.

Pe parcursul aplicaţiilor ne vom referi la fiecare etapă, insistând asupra calculului


coeficienţilor din cadrul etapei a 2-a.

Observaţii
De obicei, precizarea datelor de proiectare ale filtrului are drept urmare trasarea schemei
de gabarit a filtrului în domeniul frecvenţă. De exemplu, pentru un filtru trece jos este
important să se precizeze mărimile:
- fp frecvenţa limită a benzii de trecere
- fs frecvenţa limită a benzii de oprire
- fe frecvenţa de eşantionare
- p ondulaţia (riplul) în banda de trecere

42
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

- s ondulaţia (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])

În figura 3.1 s-au marcat aceste mărimi, fiind considerat cazul unui filtru de tip trece jos
(FTJ).

|H|
1+p
1p

s

0 fp fs frecvenţa

Banda de trecere Banda Banda de oprire


de tranziţie

Figura 3.1. Caracteristica de gabarit a unui filtru FTJ

III.1.3. Metode de sinteza în cazul filtrelor RFI cu faza liniară


Metodele de sinteză în cazul filtrelor RFI cu fază liniară (metodele pentru calculul
coeficienţilor acestora) folosite frecvent sunt:
 Metoda seriilor Fourier (numită şi metoda ferestrelor)
 Metoda eşantionării în frecvenţă
 Metoda optimală (în sens Cebâşev)

III.1.3.1 Metoda seriilor Fourier


Ideea acestei metode este de a dezvolta în serie Fourier răspunsul în frecvenţă al filtrului
ideal şi de a trunchia seria infinită obţinută, cu scopul de a face filtrul realizabil. Trunchierea
directă este însă echivalentă multiplicării secvenţei pondere hn  cu o secvenţă de durată
limitată, numită “fereastră dreptunghiulară”.
Trunchierea directă a seriei Fourier conduce la apariţia fenomenului Gibbs, care se
manifestă prin:
 existenţa în vecinătatea zonelor de tranziţie a caracteristicilor de frecvenţă ale filtrului
digital, a unor ondulaţii (riplu) numite oscilaţii Gibbs.
 frecvenţele de tranziţie ale caracteristicii de frecvenţă se transformă în benzi de
tranziţie.

O soluţie mai bună este folosirea altor tipuri de funcţii fereastră, care să realizeze o
trunchiere ponderată a seriei Fourier infinite, ale căror caracteristici (lăţimea lobului principal,

43
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

amplitudinile lobilor laterali) să fie mai bune. În această lucrare vor fi prezentate principalele
funcţii fereastră (Bartlett, Blackman, Hamming, Hanning, Kaiser) în exerciţiul 3.1. punctul e).
Î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.

Tabelul 3.2 Metoda ferestrelor pentru proiectarea filtrelor FIR


1. Specificarea răspunsului ideal (dorit) în frecvenţă al filtrului: H d  
2. Obţinerea funcţiei pondere (răspuns la impuls) hd n  prin transformare Fourier inversă a lui
H d  
3. Alegerea unei funcţii fereastră care să satisfacă cerinţele referitoare la banda de trecere şi
atenuarea necesară
4. Obţinerea secvenţei wn  pentru funcţia fereastră aleasă, precum şi a valorilor coeficienţilor
filtrului FIR, hn  , prin înmulţirea funcţiei pondere dorite hd n  cu wn  :
hn  hd nwn (3.5)

Tabelul 3.3 Avantajele şi dezavantajele metodei ferestrelor


Avantaje Dezavantaje
Simplitate Lipsa de flexibilitate
Datorită efectuării convoluţiei în domeniul frecvenţă cu funcţia fereastră, nu se
pot preciza exact valorile frecvenţelor ce marchează benzile de trecere si oprire
Pentru o fereastră dată, riplul maxim este fixat, indiferent de mărimea lui N (deci
şi atenuare în banda de oprire).
În unele aplicaţii, expresia răspunsului dorit poate fi complicată

III.1.3.2 Metoda optimală (în sens Cebâşev)


Proiectarea filtrelor RFI cu fază liniară poate fi considerată ca o problemă de aproximare
în sens Cebâşev, ceea ce înseamnă obţinerea unui set de condiţii care să garanteze o soluţie
optimală, în sensul minimizării maximului erorii de aproximare, pe întregul interval de
aproximare, soluţie care să fie unică.

III.1.4. Realizarea filtrelor RFI


Etapa realizării filtrelor constă în alegerea structurii pentru implementare. Printre
structurile des folosite pentru realizarea filtrelor RFI se numără:
 Structura transversală (directă)
 Structura cu eşantionare în frecvenţă
 Structura cu convoluţie directă
 Structura latice

III.2. Funcţii MATLAB folosite în capitolul III


Funcţiile MATLAB folosite în acest capitol sunt prezentate în tabelul 3.4.

44
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

Tabelul 3.4 Funcţii MATLAB folosite în capitolul III


Prelucrarea semnalelor
abs Amplitudine complexă
angle, phase Unghiul, faza
conv Convoluţie
deconv Deconvoluţie
fft Transformata Fourier 1-D
ifft TFD inversă 1-D
fftshift Schimbă cadranele matricilor
unwrap Faza desfăcută
filter Filtrare

Ferestre
bartlett Fereastra Bartlett
blackman Fereastra Blackman
hamming Fereastra Hamming
hanning Fereastra Hanning
kaiser Fereastra Kaiser

Proiectarea filtrelor RFI


fir1, fir2 Proiectarea filtrelor RFI cu metoda ferestrelor
remez Proiectarea filtrelor RFI prin metoda Parks - McClellan

III.3. Aplicaţii
III.3.1. Proiectarea filtrelor RFI prin metoda ferestrelor
a) Fenomenul Gibbs se poate pune în evidenţă considerând exemplul EX1_L3.m, al cărui
listing este prezentat în tabelul 3.5.
a1) Studiaţi acest exemplu.
a2) Modificaţi programul pentru cazul unui alt răspuns dorit în frecvenţă.
a3) Modificaţi numărul de puncte al ferestrei dreptunghiulare şi studiaţi efectul său
asupra răspunsului în frecvenţă obţinut.

Tabelul 3.5 Exemplul EX1_L3.m

% Exemplul fir1.m
% Proiectarea filtrelor FIR cu metoda ferestrelor
% Punerea in evidenta a fenomenului Gibbs
% <Atentie>: Toate reprezentarile in frecventa sint facute pe o perioada a TFTD [0,
2*pi)
omega=[0:1:63]*2*pi/64;
t=-32:1:31;
Hd = boxcar(64);
for i=10:1:54
Hd(i) = 0;

45
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

end;
figure,subplot(221),plot(omega,Hd), title('Rasp. in frecventa dorit'),xlabel('omega'),
ylabel(' | Hd(exp(j omega)) | ');
axis([min(omega),max(omega),0,2]);
% Functia pondere dorita hd(n) este TFD(Hd)
hd = ifft(Hd);
subplot(222),bar(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), bar(t,w), title('Fereastra dreptunghiulara'),xlabel('n'), ylabel(' w(n) '),axis([-
32 31 0 2]);
H = fft(h);
subplot(224), bar(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(' | Hd(exp(j omega)) | '),axis([min(omega),max(omega),0,2]);
subplot(212), plot(omega,abs(H)), title('Rasp. in frecv. obtinut'),xlabel('omega'), ylabel('
| H(exp(j omega)) | '),axis([min(omega),max(omega),0,2]);

b) Reluaţi punctul a) pentru cazul secvenţei cu distribuţie gaussiană xk  al


ferestrei de tip Blackman.

nu imi este clar de ce discuta


intrare cand la punctul a) am
c) Se consideră secvenţa dreptunghiulară periodică xk  , frecventa;

A pentru 2mτ t 2m  1τ aici am observat cum arata r


xk   
 A pentru 2m  1τ t 2mτ blackman;

Semnalului xk  i se adaugă zgomot aleator, rezultând secvenţa cu zgomot y k  .


Limitarea acesteia se poate face direct, cu ajutorul funcţiei fereastră care poate fi, de exemplu,
de tip Bartlett.
c1) Scrieţi secvenţa de instrucţiuni MATLAB pentru trunchierea secvenţei iniţiale,
utilizând exemplul EX1_L3.m .
c2) Modificaţi programul scris la punctul a), pentru a putea opera asupra transformatelor
Fourier ale secvenţei si ferestrei. În acest caz, trebuie calculată secvenţa de convoluţie a
acestor transformate (în domeniul frecvenţă) şi apoi realizată transformarea Fourier inversă.
Secvenţa globală ce trebuie calculată este:

46
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

 K /2 
TFD 1   TFD ymW nm
 m K / 2 

unde s-a notat cu W transformata TFD a funcţiei fereastră, iar cu K numărul de eşantioane în
care se calculează transformata Fourier.
Comparaţi rezultatele obţinute la punctele c1) si c2) si interpretaţi.
d) Cu ajutorul comenzii “help”, studiaţi funcţiile MATLAB “fir1” şi “fir2”, "freqz", "filter",
“input”.
d1) Să se ruleze programul EX2_L3.m (tabelul 3.6). Să se urmărească modul în care a
fost proiectat şi implementat filtrul şi să se tragă concluziile referitoare la semnalul rezultat în
urma filtrării.

Tabelul 3.6 Exemplul EX2_L3.m

load semnal1;
Fs=1000;
N=length(x); semnal1.mat?
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)'),axis([min(t)
max(t) min(x) max(x)]);
subplot(222),plot(f,abs(MX(1:N/2))),title('Spectrul semnalului'),xlabel('Frecventa
(Hz)'),axis([0 500 min(MX) max(MX)]);

Wn=1/10;
B=fir1(30,Wn,bartlett(31));
H=freqz(B,1,N/2);
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)'),axis([0 500 min(MH) max(MH)]);
subplot(224),plot(f,abs(MY(1:N/2))),title('Spectrul semnalului filtrat'),xlabel('Frecventa
(Hz)'),axis([0 500 min(MY) max(MY)]);

figure,subplot(211),plot(t,x),title('Semnalul initial'),xlabel('Timp (s)'),axis([min(t)


max(t) min(x) max(x)]);
subplot(212),plot(t,y),title('Semnalul filtrat'),xlabel('Timp (s)'),axis([min(t) max(t)
min(y) max(y)]);

47
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

d2) Să se modifice programul EX2_L3.m, luând diferite valori ale frecvenţei de


tăiere şi urmărind rezultatul filtrării.
e) Să se ruleze programul ex3_l3.m (tabelul 3.7), urmărind forma ferestrelor dreptunghiulară,
Bartlett, Hamming, Hanning, Blackman, Cebâşev si Kaiser, precum şi spectrul acestora.

Tabelul 3.7 Exemplul EX3_L3.m

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'),axis([1 128
0 1.5]);
subplot(222), plot(f,X1), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),axis([-63
64 min(X1) max(X1)]);
subplot(223), plot(f,logX1), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX1) max(logX1)]);

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'),axis([1 128 0 1.5]);


subplot(222), plot(f,X2), title('Spectrul ferestrei simetrizat'),xlabel('Freceventa'),axis([-
63 64 min(X2) max(X2)]);
subplot(223), plot(f,logX2), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX2) max(logX2)]);

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'),axis([1 128 0
1.5]);
subplot(222), plot(f,X3), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),axis([-63
64 min(X3) max(X3)]);
subplot(223), plot(f,logX3), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX3) max(logX3)]);
clear x3 X3 logX3

x4=[zeros(1,14) hanning(100)' zeros(1,14)];


X4=fftshift(abs(fft(x4)));
logX4=20*log10(X4+0.00001);
figure,subplot(221), plot(x4), title('Fereastra Hanning'),xlabel('Timp'),axis([1 128 0
1.5]);

48
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

subplot(222), plot(f,X4), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),axis([-


63 64 min(X4) max(X4)]);
subplot(223), plot(f,logX4), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX4) max(logX4)]),;
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'),axis([1 128 0
1.5]);
subplot(222), plot(f,X5), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),axis([-63
64 min(X5) max(X5)]);
subplot(223), plot(f,logX5), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX5) max(logX5)]);
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'),axis([1 128 0
1.5]);
subplot(222), plot(f(1:127),X6), title('Spectrul ferestrei
simetrizat'),xlabel('Frecventa'),axis([-63 63 min(X6) max(X6)]);
subplot(223), plot(f(1:127),logX6), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 63 min(logX6) max(logX6)]);
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'),axis([1 128 0 1.5]);
subplot(222), plot(f,X7), title('Spectrul ferestrei simetrizat'),xlabel('Frecventa'),axis([-63
64 0 1.5]);
subplot(223), plot(f,logX7), title('Spectrul ferestrei simetrizat
(dB)'),xlabel('Frecventa'),axis([-63 64 min(logX7) max(logX7)]);

e1) Discutaţi care dintre ferestre este mai potrivită pentru proiectarea filtrelor RFI
prin metoda ferestrelor si precizaţi după ce criteriu vă ghidaţi.

49
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

e2) Modificaţi în program parametrul ferestrei Cebâşev (riplul în dB) şi


parametrul ferestrei Kaiser (beta). Precizaţi care este avantajul acestor tipuri de fereastră faţă
de celelalte ferestre.
f) Rulaţi programul EX4_L3.m (tabelul 3.8). Urmăriţi modul în care este recuperat un semnal
util acoperit de zgomot, pe baza informaţiei spectrale a semnalelor obţinute prin transformata
Fourier.

Tabelul 3.8 Exemplul EX4_L3.m

t = 0:.001:.25;

% Semnalul dorit este:


x = sin(2*pi*100*t) + sin(2*pi*350*t);
figure,plot(t,x), title('Semnalul neperturbat in domeniul timp'),xlabel('Timp (ms)');

% Se adauga la semnalul util un semnal perturbator. Se obtine semnalul zgomotos y:


y = x + 0.5*rand(size(t)) + sin(2*pi*250*t) ;
figure,plot(t,y), title('Semnalul perturbat in domeniul timp'), xlabel('Timp (ms)');

% Transformata Fourier discreta, calculata cu algoritmi FFT este:


Y = abs(fft(y,256));
X = abs(fft(x,256));

% Pentru primele 127 puncte, desenam densitatea spectrala de putere


% deoarece pentru urmatoarele 127 puncte, este simetrica.
f = 1000/256*(0:127);
figure,subplot(221),plot(f,X(1:128)), title('Spectrul semnalului initial'),xlabel('frecventa
(Hz)'),axis([0 500 min(X) max(X)]);
subplot(222),plot(f,Y(1:128)), title('Spectrul semnalului perturbat'),xlabel('frecventa
(Hz)'),axis([0 500 min(Y) max(Y)]);
F=[0.0 0.18 0.2 0.22 0.68 0.7 0.72 0.8 1];M=[0 0 6.3 0 0 6 0 0 0];
B=fir2(30,F,M);
H=freqz(B,1,128);
MH=abs(H);
z=filter(B,1,y);
Z=fft(z);MZ=abs(Z);
subplot(224),plot(f,abs(H)), title('Raspunsul in frecventa al FIR'),xlabel('frecventa
(Hz)'),axis([0 500 0 1]);
subplot(223),plot(f,abs(MZ(1:128))),title('Spectrul semnalului filtrat'),xlabel('Frecventa
(Hz)'),axis([0 500 min(MZ) max(MZ)]);
figure,subplot(221), plot(x(50:100)), title(' Tronson de semnal neperturbat'),axis([0 50 -
2.2 2.2]);
subplot(222), plot(y(50:100)), title('Tronson de semnal perturbat'),axis([0 50 min(y)
max(y)]);

50
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

subplot(223), plot(z(25:75)), title('Tronson de semnal filtrat'),axis([0 50 min(z)


max(z)]);

f1) Justificaţi proiectarea filtrului şi modificaţi parametrii acestuia, observând


rezultatul.

f2) Poate fi folosit în acest caz un filtru trece jos pentru eliminarea zgomotului?
Dar un filtru trece banda? Justificaţi răspunsul.

f3) Proiectaţi şi implementaţi în MATLAB un sistem realizat cu două filtre


diferite (precizaţi tipul acestora: FTJ, FTB, sau FTS), care să recupereze eficient semnalul util
de la punctul f1).

g) Folosind funcţiile studiate la punctul d), să se obţină coeficienţii unui filtru


digital RFI de tip trece jos, prin metoda ferestrelor, cu următoarele date de proiectare:
 atenuarea în banda de oprire 50 dB
 frecvenţa de tăiere în banda de trecere 3.4 kHz
 lăţimea benzii de tranziţie 0.6 kHz
 frecvenţa de eşantionare 12 kHz

h) Modificaţi programul de la punctul g), pentru a funcţiona în regim interactiv,


folosind funcţia “input”.

i) Proiectaţi un filtru digital FIR cu fază liniară, care să aproximeze răspunsul în


frecvenţă:

 π
1 pentru ω  6
H d ω  
π
0 pentru  ω  π
 6

i1) Determinaţi cei 25 de coeficienţi ai filtrului, prin metoda ferestrelor, folosind o


fereastră Bartlett.

51
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

i2) Determinaţi şi desenaţi amplitudinea şi faza răspunsului în frecvenţă al filtrului.


i3) Repetaţi punctele i1) şi i2) pentru fereastra Hamming.
i4) Repetaţi punctele i1) şi i2) pentru fereastra Hanning

j) Repetaţi problema i) pentru cazul unui filtru digital de tip opreşte bandă, cu
răspunsul ideal în frecvenţă:

 
1 pentru   6
  
H d    0 pentru   
 6 3
1 pentru     
 3

k) Să se proiecteze un filtru de tip trece bandă, cu următoarele date de proiectare:


 numărul benzilor de trecere: 2
 frecvenţele centrale ale benzilor de trecere: 2 si 4 Hz
 lărgimea benzilor de trecere: 2 si 1 Hz
 tipul ferestrei: Blackman, de dimensiune 7

l) Proiectaţi 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 frecvenţa de eşantionare minimă ?
m) Să se proiecteze un filtru FIR optimal în sens Cebâşev cu metoda Parks-McCllelan, având
următoarele caracteristici de gabarit:
 frecvenţa de eşantionare = 10kHz
 frecvenţa de tăiere în banda de trecere = 2.5kHz
 laţimea benzii de tranziţie 0.5kHz.
 ordinul filtrului =30.
Soluţie: Secvenţa MATLAB pentru rezolvarea problemei este prezentată în exemplul
EX5_L3.m (tabelul 3.9). Lansaţi în execuţie programul şi interpretaţi rezultatele.

Tabelul 3.9 Exemplul EX5_L3.m

% 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.

52
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

Fe=10000;
f=[0:99]*Fe/200;
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)');

n) Să se proiecteze un filtru digital de tip trece sus, cu frecvenţa de tăiere de 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 frecvenţa de eşantionare de 4000 Hz ?
n2) Desenaţi funcţia de transfer ideală a filtrului.
n3) Proiectaţi filtrul.

o) Un semnal analogic discretizat are o componentă nedorită cu frecvenţa de 60


Hz şi conţine şi armonicile sale de 120 Hz, 180 Hz, 240 Hz, 300 Hz, 360 Hz. Frecvenţa de
eşantionare este de 1200 Hz.
Proiectaţi un filtru digital care să înlăture componenta de 60 Hz, precum şi armonicile
sale.

p) Un filtru digital RFI este descris de ecuaţia cu diferenţe finite:

yn  xn  xn  10

p1) Calculaţi şi desenaţi amplitudinea şi faza răspunsului în frecvenţă ale filtrului.


p2) Determinaţi răspunsul filtrului la secvenţele de intrare:

π  π π 
x1 n   cos n 3sin n  pentru    n  
 10   3 10 

53
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

 2  
x2 n   10  5 cos n  pentru    n  
 5 2

r) Un semnal vocal cu lărgimea de bandă B = 10 kHz este eşantionat cu frecvenţa


de 20 kHz. Presupunem că semnalului i se adaugă zgomot, sub forma a 4 sinusoide având
frecvenţele:
f1 = 10 000 Hz f3 = 7778 Hz
f2 = 8889 Hz f4 = 6667 Hz
r1) Proiectaţi un filtru RFI care elimină componentele aflate la aceste frecvenţe parazite.
r2) Alegeţi câştigul filtrului astfel încât |H(0)| = 1 şi apoi desenaţi amplitudinea (în
reprezentare logaritmică) şi faza răspunsului în frecvenţă ale acestuia.
r3) Filtrul obţinut corespunde sau nu obiectivelor propuse prin datele de proiectare? Aţi
recomanda utilizarea sa în aplicaţii practice ? Justificaţi.
s) Să se proiecteze un filtru FIR trece-bandă cu fază liniară, având următoarele caracteristici
de gabarit:
 Frecvenţa de eşantionare = 20kHz
 Banda de trecere cu frecvenţa centrală = 4kHz
 Lărgimea benzii de trecere = 2kHz
 Benzile de tranziţie = 0.2kHz
Cu ajutorul filtrului construit, filtraţi semnalul afectat de zgomot existent în fişierul
semnal2.mat. Reprezentaţi semnalul filtrat.
Soluţie: Secvenţa MATLAB pentru rezolvarea problemei este prezentată în exemplul
EX6_L3.m (tabelul 3.10). Lansaţi în execuţie programul şi interpretaţi rezultatele.

Tabelul 3.10 Exemplul EX6_L3.m

% Sa se proiecteze un filtru FIR trece-banda cu faza linara,


% avand urmatoarele caracteristici de gabarit:
% Frecventa de esantionare = 20kHz
% Banda de trecere cu frecventa centrala = 4kHz
% Largimea benzii de trecere = 2kHz
% benzile de tranzitie = 0.2kHz
Fe=20000;
f=[0:99]*Fe/200;
F=[0.0 0.28 0.3 0.5 0.52 1];
M=[0 0 1 1 0 0];
B=fir2(30, F,M);
Hf=freqz(B,1,100);
Hd=[zeros(1,30) ones(1,20) zeros(1,50)]';
H=[Hf Hd];
% Se reprezinta filtrul trece-banda FIR
% si fitrul ideal trece banda corespunzator benzii 3kHz-5kHz.

54
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

figure,plot(f,abs(H)),title(' Modulul filtrului trece-banda ideal si al celui proiectat


'),xlabel('Frecventa (Hz)'),axis([0 10000 0 1.5]);
figure,plot(f,unwrap(angle(Hf))),title('Faza filtrului trece-banda proiectat
'),xlabel('Frecventa (Hz)');

III.3.2. Proiectarea filtrelor RFI cu ajutorul mediului de programare Simulink


a) 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 funcţiile predefinite ale
acestuia. Programele Simulink sunt asemenea celor MATLAB, respectiv fişiere cu extensia
".m", care pot fi apelate direct de la prompterul MATLAB, prin tastarea numelui fişierului,
fără extensie. La apelarea unui program Simulink se va deschide o fereastra cu un meniu care
oferă o serie de opţiuni. Pe lângă facilităţile uzuale de salvare fişier, editare, etc., avem şi
opţiunile de pornire/oprire a simulării din meniul "Simulation".
Apelaţi, tastând :
>> simulink
pentru a vedea biblioteca de module Simulink. Selectaţi modulele respective şi observaţi
modul în care acestea sunt folosite apelând programele demonstrative (demo) din blocul
"Extras".
b) Rulaţi programul Simulink EX7_L3.mdl comentând rezultatele obţinute. Analizaţi toate
blocurile Simulink existente în program.

FDATool

Signal Gen. Zero-Order Semnal esantionat


Hold Filtru numeric filtrat

B-FFT
Spectrul semnalului
esantionat filtrat
Semnal continuu
Semnal esantionat

B-FFT
Spectrul semnalului
esantionat

Figura 3.2. Exemplul EX7_L3.mdl

55
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

b1) Rulaţi programul pentru diferite forme şi frecvenţe ale semnalului de intrare.
Operaţi în blocul denumit "Signal Gen.".

b2) Discutaţi când trebuie şi cum trebuie să se modifice (să crească sau să scadă)
frecvenţa de eşantionare folosită la proiectarea filtrului, dacă frecvenţa semnalului de intrare
creşte. Precizaţi care este criteriul determinant pentru o astfel de variaţie.

b3) Modificaţi caracteristica de gabarit a filtrului (lăţimea, frecvenţa centrală a


benzii de trecere), modificaţi tipul filtrului.

b4) Modificaţi filtrul FTB (iniţial) astfel încât atenuarea în banda de trecere să fie
nulă.
c) Reluaţi problema b) pentru semnalul existent în fişierul semnal.mat.
Soluţie: Se va încărca acest fişier semnal3.mat cu comanda
>> load semnal3
rezultând încărcarea în spaţiul de lucru a unei matrice "x". Prima linie a matricei reprezintă
momentele la care au fost prelevate eşantioanele de semnal, iar a doua linie reprezintă valorile
propriu-zise ale semnalului, la momentele respective. Să se afişeze semnalul. Programul
soluţie care va fi rulat şi analizat este EX8_L3.mdl.

semnal3

56
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

semnal3.mat

From File Semnalul initial

B-FFT
Spectrul
semnalului initial

Semnal filtrat
FIR Filter1

B-FFT
Spectrul
semnalului filtrat

Figura 3.3. Exemplul EX8_L3.mdl


d) Să se facă filtrarea şi analiza spectrală a unui semnal ECG (electrocardiografic) uman,
existent în fişierul semnal4.mat. Semnalul este afectat de un zgomot alb de bandă limitată. Se
va rula programul Simulink EX9_L3, cu studierea tuturor modulelor care apar.
d1) Studiaţi ce se întâmplă dacă creştem puterea zgomotului alb.
d2) Modificaţi parametrii filtrului pentru o mai bună filtrare a semnalului util ECG.

57
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

Semnal ECG
util

B-FFT B-FFT
Spectrul semnalului Spectrul semnalului
ECG util ECG + zg. alb

semnal4.mat

From File Sum Semnal ECG + zg. alb

B-FFT
Zgomot alb
de banda FIR Filter Spectrul semnalului
limitata filtrat

Semnal fitrat

Figura 3.4. Exemplul EX9_L3.mdl

III.4. Exerciţii şi probleme recapitulative


a) Pentru filtrul RFI caracterizat de ecuaţia cu diferenţe finite:
yn  xn  xn  4
a1) Calculaţi şi desenaţi amplitudinea şi faza răspunsului în frecvenţă.
a2) Calculaţi răspunsul filtrului la secvenţa de intrare:
π  π 
xn   cos n  cos n  pentru    n  
2  4 
a3) Explicaţi rezultatele obţinute la punctul a2), în funcţie de rezultatele de la punctul
a1).
b) Reluaţi exerciţiul 3.f), folosind un sistem cu un FTB şi un sumator. Se va utiliza o
implementare Simulink.

58
Capitolul III
Proiectarea filtrelor digitale. Filtre cu răspuns finit la impulsul unitate (RFI)

Bibliografie
[1] Vasile Lăzărescu - Prelucrarea digitală a semnalelor; Amco Press, Bucuresti,
Romania, 1995;
[2] Robert D. Strum, Donald E. Kirk - First Principles of Discrete Systems and
Digital Signal Processing; Addison - Wesley Publ. Comp., USA, 1988;
[3] Alan V. Oppenheim, Roland W. Schaffer - Discrete Time Signal Processing -
Prentice-Hall International, Inc., 1988

59

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