Sunteți pe pagina 1din 71

Prelucrarea semnalelor

Capitolul 4: Proiectarea filtrelor


Bogdan Dumitrescu

Facultatea de Automatică şi Calculatoare


Universitatea Politehnica Bucureşti

PS cap. 4: Proiectarea filtrelor – p. 1/71


Cuprins

• Descrierea problemei de proiectare


• Metoda ferestrei
• Proiectarea filtrelor FIR în sens CMMP
• Proiectarea filtrelor FIR în sens Chebyshev (minimax)
• Proiectarea filtrelor IIR, metode de transformare

PS cap. 4: Proiectarea filtrelor – p. 2/71


Obiective generale ale proiectării

• Scopul tipic al unui filtru digital este transformarea în


frecvenţă a semnalului de intrare
• Un interval de frecvenţe [ω1 , ω2 ] se numeşte bandă de
trecere dacă semnalele sinusoidale cu aceste frecvenţe
sunt aproape nealterate de filtru (|H(ejω )| ≈ 1, ∀ω ∈ [ω1 , ω2 ])
• Bandă de oprire (de tăiere, de stop): semnalele cu
frecvenţele respective sunt tăiate sau mult atenuate de filtru
(|H(ejω )| ≈ 0, ∀ω ∈ [ω1 , ω2 ])
• Faza filtrului poate fi sau nu considerată în proiectare; de
obicei, se preferă filtrele cu fază liniară

PS cap. 4: Proiectarea filtrelor – p. 3/71


Filtre ideale

• Filtrele ideale sunt necauzale şi au suport infinit


• Tipuri: trece-jos, trece-sus, trece-bandă, opreşte-bandă

1 1

ω ω

ω π ω π
t t

1 1

ω ω

ω ω2 π ω ω2 π
1 1

PS cap. 4: Proiectarea filtrelor – p. 4/71


Răspuns cu toleranţe fixate (1)

• Se impun erori maxime în benzile de trecere şi oprire

1+∆b
1
1−∆
b

∆s
ω

ωb ωs π

PS cap. 4: Proiectarea filtrelor – p. 5/71


Răspuns cu toleranţe fixate (2)

• Datele de proiectare sunt (pentru filtru trece-jos):


◦ Frecvenţele ωb , ωs care definesc benzile de trecere şi de
oprire; există şi o bandă de tranziţie (ωb , ωs ), în care
valoarea răspunsului este indiferentă
◦ Toleranţele ∆b în banda de trecere [0, ωb ] şi ∆s în banda
de oprire [ωs , π]
• Ordinul filtrului poate fi precizat de la început sau se poate
încerca găsirea unei soluţii de ordin cât mai mic
• Dacă ordinul e fixat, este posibil să nu existe soluţie
• Dispunând de o metodă de proiectare pentru ordin fixat
(cazul tipic), ordinul minim se găseşte prin încercări
succesive (bisecţie !)

PS cap. 4: Proiectarea filtrelor – p. 6/71


Proiectare prin optimizare

• Se fixează ca obiectiv o caracteristică de frecvenţă, numită


răspuns dorit
• Pentru un filtru trece-jos răspunsul dorit poate fi
(
1, pentru ω ∈ [0, ωb ]
D(ω) =
0, pentru ω ∈ [ωs , π]

• Căutăm soluţia într-o clasă de filtre de ordin M , notată


C(M ) (de exemplu, filtre FIR cu fază liniară, cu coeficienţi
simetrici, deci de tip I sau II)
• Scop: găsirea filtrului al cărui răspuns în frecvenţă H(ω)
este cel mai apropiat de D(ω), pe mulţimea de frecvenţe
F = [0, ωb ] ∪ [ωs , π]

PS cap. 4: Proiectarea filtrelor – p. 7/71


Problema de optimizare ı̂n sens minimax (Chebyshev)

• F OPTINF. Dându-se un răspuns dorit D(ω) pe o mulţime de


frecvenţe F ⊂ [0, π] şi o clasă de filtre C(M ), să se
găsească filtrul H(z) din clasa C(M ) al cărui răspuns în
frecvenţă H(ω) este cel mai aproape în amplitudine de
D(ω), în norma infinit, i.e.

min max |D(ω) − |H(ω)||


H∈C(M ) ω∈F

• Se minimizează eroarea maximă faţă de răspunsul dorit

PS cap. 4: Proiectarea filtrelor – p. 8/71


Răspuns specific al unei soluţii minimax

• Eroarea |D(ω) − |H(ω)|| maximă este atinsă pentru mai


multe frecvenţe
• Ondulaţiile răspunsului au înălţimi egale în benzile de
trecere şi de oprire (filtru "equiripple")

ω ω π ω
1 0 dB
b s

ωb ωs π

PS cap. 4: Proiectarea filtrelor – p. 9/71


Problema de optimizare ı̂n sens CMMP

• F OPT2. Dându-se un răspuns dorit D(ω) pe o mulţime de


frecvenţe F ⊂ [0, π] şi o clasă de filtre C(M ), să se
găsească filtrul H(z) din clasa C(M ) al cărui răspuns în
frecvenţă H(ω) este cel mai aproape în amplitudine de
D(ω), în norma 2, i.e.
Z
min [D(ω) − |H(ω)|]2 dω
H∈C(M ) ω∈F

• Se minimizează energia erorii faţă de răspunsul dorit

PS cap. 4: Proiectarea filtrelor – p. 10/71


Răspuns specific al unei soluţii CMMP

• Ondulaţiile sunt mai mari în apropierea benzii de tranziţie

1 ω ω π ω
b s
0 dB

ω ω π
b s

PS cap. 4: Proiectarea filtrelor – p. 11/71


Alte moduri de formulare a optimizării

• Pentru a avea erori mai mici în anumite zone (de exemplu în


banda de oprire), se poate introduce o pondere p(ω) > 0,
astfel încât problema de optimizare să fie
Z
min p(ω)[D(ω) − |H(ω)|]2 dω
H∈C(M ) ω∈F

• În problemele F OPT2 şi F OPTINF se optimizează doar


amplitudinea răspunsului în frecvenţă al filtrului H(z).
Pentru a optimiza întregul răspuns, se alege un răspuns
dorit Dc (ω) complex:
Z
min |Dc (ω) − H(ω)|2 dω
H∈C(M ) ω∈F

• Utilizare tipică: filtre IIR cu fază cvasi-liniară

PS cap. 4: Proiectarea filtrelor – p. 12/71


Optimizare pe o mulţime discretă de frecvenţe

• Pentru simplificarea calculelor, problemele F OPT2 şi


F OPTINF pot fi tratate aproximativ
• Mulţimea continuă de frecvenţe F se înlocuieşte cu o grilă
discretă de frecvenţe GL ⊂ F având L puncte (în practică,
de ordinul sutelor). De obicei frecvenţele ωk ∈ GL se aleg
echidistante.
• F OPT2D. Dându-se un răspuns dorit D(ω), mulţimea de
frecvenţe discrete GL = {ω1 , . . . , ωL } şi o clasă de filtre
C(M ), să se rezolve

L
1 X
min [D(ωk ) − |H(ωk )|]2
H∈C(M ) L
k=1

PS cap. 4: Proiectarea filtrelor – p. 13/71


Proiectarea filtrelor FIR cu metoda ferestrei

• Metodă foarte simplă, fără optimizare


• Idee: modularea în timp a unui răspuns ideal (cu suport
infinit) cu un semnal de tip "fereastră", care are suport finit
• Se proiectează un filtru FIR

M
X
H(z) = h[n]z −n
n=0

• Date de proiectare:
◦ ordinul M al filtrului
◦ amplitudinea răspunsului ideal în frecvenţă care trebuie
aproximat; de exemplu, pentru un filtru trece-jos, se
precizează frecvenţa ωt care delimitează benzile de
trecere şi de oprire

PS cap. 4: Proiectarea filtrelor – p. 14/71


Metoda ferestrei

1. Se ia întârzierea de grup n0 = M/2 şi se calculează


răspunsul la impuls al filtrului ideal. De exemplu, pentru un
filtru trece-jos, răspunsul ideal în frecvenţă este
(
jω e−jωn0 , dacă |ω| ≤ ωt
Hid (e ) =
0, dacă ωt < |ω| ≤ π

sin ωt (n − n0 )
iar răspunsul la impuls este hid [n] =
π(n − n0 )
2. Se alege o fereastră f [n] cu suport 0 : M
3. Se calculează coeficienţii filtrului FIR modulând în timp
răspunsul ideal hid [n] cu fereastra f [n], i.e. prin relaţia

h[n] = hid [n] · f [n], n = 0 : M

PS cap. 4: Proiectarea filtrelor – p. 15/71


Exemplu

0.3

f[n]
0.25 hid[n] 1

0.2 0.8

0.15
0.6

...
0.1 ...
0.4

0.05
... ...
n 0.2
0

n
−0.05 0

−5 0 5 10 15 20 −5 0 5 10 15 20

0.3

0.25 h[n]
0.2

0.15

...
0.1 ...
0.05

n
0

−0.05

−5 0 5 10 15 20

PS cap. 4: Proiectarea filtrelor – p. 16/71


Rezultate

• După aplicarea algoritmului se trasează răspunsul în


frecvenţă al filtrului FIR obţinut şi se verifică dacă este
convenabil
• Dacă nu este convenabil, se poate mări ordinul M sau se
poate alege o altă fereastră f [n]
• Răspunsul în frecvenţă al filtrelor ideale (cu benzi de trecere
şi de oprire) are fază liniară
• Dacă coeficienţii ferestrei f [n] sunt simetrici în raport cu
mijlocul M/2 al suportului 0 : M , atunci H(z) rezultă un filtru
cu fază liniară de tip I sau II
• Un filtru cu fază neliniară ar rezulta dacă s-ar alege o
întârziere n0 6= M/2

PS cap. 4: Proiectarea filtrelor – p. 17/71


Alegerea ferestrei

• Răspunsul în frecvenţă al filtrului H(z) poate fi scris în


funcţie de răspunsurile în frecvenţă ale filtrului ideal şi
ferestrei
Z π
1
H(ejω ) = Hid (ejθ )F (ej(ω−θ) )dθ
2π −π

• H(ejω ) = Hid (ejω ) doar dacă F (ejω ) = 2πδ(ω), adică


(evident!) f [n] = 1
• Răspunsul în frecvenţă al ferestrei trebuie să fie o
aproximaţie cât mai bună a impulsului unitate
• Această cerinţă este contradictorie cu suportul finit !!!

PS cap. 4: Proiectarea filtrelor – p. 18/71


Ferestre uzuale (1)

• Fereastra dreptunghiulară
(
1, dacă 0 ≤ n ≤ M
fd [n] =
0, altfel

• Trunchierea răspunsului ideal hid [n] dă naştere fenomenului


Gibbs, deci |H(ejω )| are oscilaţii mari în apropierea
frecvenţelor de tranziţie
• Ferestrele mai eficiente au valori mai mici la marginea
suportului, pentru a preveni fenomenul Gibbs
• Fereastra triunghiulară (Bartlett)

2n/M,
 dacă 0 ≤ n ≤ M/2
ft [n] = 2 − 2n/M, dacă M/2 ≤ n ≤ M

0, altfel

PS cap. 4: Proiectarea filtrelor – p. 19/71
Ferestre uzuale (2)

• Fereastra Hanning:
(
n+1
0.5 − 0.5 cos(2π M +2 ), dacă 0 ≤ n ≤ M
fHann [n] =
0, altfel

• Fereastra Hamming:
(
0.54 − 0.46 cos(2πn/M ), dacă 0 ≤ n ≤ M
fHamm [n] =
0, altfel

• Fereastra Blackman:
(
0.42 − 0.5 cos( 2πn
M ) + 0.08 cos( 4πn
M ), dacă 0 ≤ n ≤ M
fB [n] =
0, altfel

PS cap. 4: Proiectarea filtrelor – p. 20/71


Ferestre uzuale (3)

• Fereastra Kaiser:
p
 I0 (β 1 − [(n − n0 )/n0 ]2 )

, dacă 0 ≤ n ≤ M
fB [n] = I0 (β)
0, altfel

• I0 (·) este funcţia Bessel de ordinul zero modificată


• Parametrul β permite varierea proprietăţilor ferestrei
• Pentru β = 0 se obţine fereastra dreptunghiulară
• Cu cât β este mai mare, cu atât răspunsul în frecvenţă al
ferestrei are atenuare mai mare, dar tranziţie mai largă

PS cap. 4: Proiectarea filtrelor – p. 21/71


Răspunsuri la impuls ale ferestrelor (1)

• Ferestre dreptunghiulară (stânga), triunghiulară (dreapta)

1.2 1.2

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2
−5 0 5 10 15 20 −5 0 5 10 15 20

PS cap. 4: Proiectarea filtrelor – p. 22/71


Răspunsuri la impuls ale ferestrelor (2)

• Ferestre Hanning (stânga), Hamming (dreapta)

1.2 1.2

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2
−5 0 5 10 15 20 −5 0 5 10 15 20

PS cap. 4: Proiectarea filtrelor – p. 23/71


Răspunsuri la impuls ale ferestrelor (3)

• Ferestre Blackman (stânga), Kaiser cu β = 3 (dreapta)

1.2 1.2

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2
−5 0 5 10 15 20 −5 0 5 10 15 20

PS cap. 4: Proiectarea filtrelor – p. 24/71


Caracteristici de frecvenţă ale ferestrelor (1)

• Ferestre dreptunghiulară (linie întreruptă), Hamming (linie


continuă) şi Blackman (linie-punct), pentru M = 16

10

−10

−20

−30
Amplitudine (dB)

−40

−50

−60

−70

−80

−90

−100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 25/71


Caracteristici de frecvenţă ale ferestrelor (2)

• Ferestre Kaiser cu β = 1 (linie întreruptă), β = 3 (linie


continuă) şi β = 5 (linie-punct), pentru M = 16

10

−10

−20

−30
Amplitudine (dB)

−40

−50

−60

−70

−80

−90

−100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 26/71


Filtre FIR proiectate cu metoda ferestrei (1)

• Ferestre dreptunghiulară (linie întreruptă), Hamming (linie


continuă) şi Blackman (linie-punct)

1.2
10

1
−10

−20
0.8
−30

Amplitudine (dB)
Amplitudine

−40
0.6
−50

−60
0.4

−70

0.2 −80

−90

0 −100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 27/71


Filtre FIR proiectate cu metoda ferestrei (2)

• Ferestre Kaiser cu β = 1 (linie întreruptă), β = 2.1 (linie


continuă) şi β = 3 (linie-punct)

1.2 10

0
1

−10
0.8

Amplitudine (dB)
−20
Amplitudine

0.6

−30

0.4
−40

0.2
−50

0 −60
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 28/71


Exemplu de proiectare

• Dorim un filtru trece-jos, cu ωb = 0.3π şi ωs = 0.5π


• Cu metoda ferestrei, vrem să proiectăm un filtru de ordin
M = 16, cu erori cât mai mici în benzile de trecere şi oprire
• Luăm ωt = 0.4π (empiric !) şi încercăm mai multe ferestre

drept. Hann. Hamm. Black. Kaiser Kaiser Kaiser


β=1 β = 2.1 β=3
∆b 0.057 0.116 0.130 0.194 0.047 0.0336 0.068
∆s 0.103 0.119 0.131 0.197 0.078 0.0336 0.060

• Metoda ferestrei este utilă atunci când specificaţiile sunt


vagi iar optimalitatea nu este necesară

PS cap. 4: Proiectarea filtrelor – p. 29/71


Proiectare ı̂n sens CMMP: filtre FIR cu fază neliniară

• Răspunsul dorit Dc (ω) este complex


• Criteriul de optimizare este
Z
min |Dc (ω) − H(ω)|2
H∈C(M ) ω∈F

• Nu există nici o restricţie asupra coeficienţilor filtrului (e.g.


de tip fază liniară): C(M ) e mulţimea filtrelor FIR de ordin M

PS cap. 4: Proiectarea filtrelor – p. 30/71


Transformarea problemei (1)

• Răspunsul în frecvenţă al filtrului poate fi scris

M
X
H(ejω ) = h[n]e−jωn = hT e(ω)
n=0

• Vectorul coeficienţilor filtrului

h = [ h[0] h[1] . . . h[M ] ]T ∈ RM +1

conţine variabilele problemei de optimizare


• Vectorul

e(ω) = [1 e−jω . . . e−jωM ]T ∈ CM +1

este cunoscut pentru orice frecvenţă ω

PS cap. 4: Proiectarea filtrelor – p. 31/71


Transformarea problemei (2)

• Pătratul erorii poate fi scris în forma

|H(ejω ) − Dc (ω)|2 = [hT e(ω) − Dc (ω)][eH (ω)h − Dc∗ (ω)]


= hT e(ω)eH (ω)h − 2Re[eH (ω)Dc (ω)]h + |Dc (ω)|2

• Matricea
 
1 ejω . . . ejωM
 .. 
 e−jω 1 . ejω(M −1) 
e(ω)eH (ω) =  .  = C(ω)+jS(ω)
 
.. .. .. ..

 . . . 

e−jωM ... ... 1

are structură Toeplitz hermitică

PS cap. 4: Proiectarea filtrelor – p. 32/71


Transformarea problemei (3)

• Partea reală este o matrice Toeplitz simetrică


 
1 cos(ω) . . . cos(ωM )
 .. 
 cos(ω) 1 . cos(ω(M − 1)) 
C(ω) = 
 
.. .. .. .. 

 . . . . 

cos(ωM ) ... ... 1

• Partea imaginară este o matrice Toeplitz antisimetrică


 
0 sin(ω) . . . sin(ωM )
 .. 
 − sin(ω) 0 . sin(ω(M − 1)) 
S(ω) = 
 
.. .. .. .. 

 . . . . 

− sin(ωM ) ... ... 0

PS cap. 4: Proiectarea filtrelor – p. 33/71


Transformarea problemei (4)

• Deoarece S(ω)T = −S(ω), rezultă hT S(ω)h = 0


• Notând g T (ω) = Re[eH (ω)Dc (ω)] putem scrie

|H(ejω ) − Dc (ω)|2 = hT C(ω)h − 2g T (ω)h + |Dc (ω)|2

• Notăm
Z Z
P = C(ω)dω, q= g(ω)dω
ω∈F ω∈F
• Matricea P este pozitiv definită

PS cap. 4: Proiectarea filtrelor – p. 34/71


Problema de optimizare CMMP

• Criteriul de optimizare în sens CMMP capătă forma

T T
min h P h − 2q h
h∈RM +1

• Vectorul coeficienţilor filtrului optim este

h = P −1 q

• Demonstraţie: pentru a minimiza criteriul


V (h) = hT P h − 2q T h anulăm gradientul ∂V∂h(h) = 2P h − 2q,
de unde rezultă h = P −1 q . Acest h corespunde într-adevăr
∂ 2 V (h)
unui punct de minim deoarece Hessianul ∂h2 = 2P este
pozitiv definit.

PS cap. 4: Proiectarea filtrelor – p. 35/71


Algoritmul de proiectare

0. Date de proiectare: ordinul M al filtrului, răspunsul ideal în


frecvenţă Dc (ω) (cu valori complexe) care trebuie aproximat
şi mulţimea de frecvenţe F pe care se face aproximaţia
1. Se calculează matricea P şi vectorul q
Z Z
P = C(ω)dω, q = g(ω)dω
ω∈F ω∈F

2. Se calculează h = P −1 q

PS cap. 4: Proiectarea filtrelor – p. 36/71


Exemplu de proiectare: filtru FIR trece-jos (1)

• Datele de proiectare sunt ordinul filtrului M , frecvenţele ωb


şi ωs , întârzierea de grup n0 şi răspunsul dorit
(
e−jωn0 , dacă |ω| ≤ ωb
Dc (ω) =
0, dacă ωs < |ω| ≤ π

• Pentru a construi matricea P , ţinem seama că

ω2
sin(nω2 ) sin(nω1 )
Z
cos(nω)dω = − = ω2 sinc(nω2 )−ω1 sinc(nω1 )
ω1 n n

• Deoarece F = [0, ωb ] ∪ [ωs , π], elementul de pe diagonala n


a matricei Toeplitz P este

pn = ωb sinc(nωb ) − ωs sinc(nωs ) + πδ[n]

PS cap. 4: Proiectarea filtrelor – p. 37/71


Exemplu de proiectare: filtru FIR trece-jos (2)

• Elementele vectorului q sunt


Z Z ωb
jnω
qn = Re[e Dc (ω)]dω = Re[ej(n−n0 )ω ]dω
Zω∈F
ωb 0
= cos(n − n0 )ωdω = ωb sinc(n − n0 )ωb
0

• Programul Matlab:

T = (0:M)’;
p = wb*sinc(T*wb) - ws*sinc(T*ws) + eye(size(T));
P = toeplitz(p);
q = wb*sinc((T-n0)*wb);
h = P \ q;

PS cap. 4: Proiectarea filtrelor – p. 38/71


Exemplu de proiectare: filtru FIR trece-jos (3)

• M = 16, ωb = 0.3π , ωs = 0.46π , n0 = 8


• Pentru n0 = M/2 filtrul optim are fază liniară !
10

0
Amplitudine (dB)

−10

−20

−30

−40

−50

−60
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

200

100
Faza (val.princ.)

−100

−200
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 39/71


Exemplu de proiectare: filtru FIR trece-jos (4)

• M = 16, ωb = 0.3π , ωs = 0.46π , n0 = 5

10

0
Amplitudine (dB)

−10

−20

−30

−40

−50

−60
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

200

100
Faza (val.princ.)

−100

−200
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 40/71


Alte probleme de proiectare CMMP

• Pentru filtre FIR cu fază liniară de ordin M :

H(ejω ) = hT c(ω)e−jωM/2

• De exemplu, pentru filtrele de tip I:

M
h=[ h[ M
2 ] − 1] . . . h[1] h[0] ] ∈ R +1 ,
h[ M
2
T 2
M
c(ω) = [1 2 cos ω . . . 2 cos(ω( 2 − 1)) 2 cos(ω 2 ) ] ∈ R 2 +1
M M T

• Problema de optimizare CMMP se formulează şi se rezolvă


asemănător, utilizând doar coeficienţii distincţi ai filtrului

• Problema F OPT2D: matricea P şi vectorul q nu sunt


calculate prin integrare, ci printr-o sumă finită
PL
• De exemplu P = 1
L k=1 C(ωk )

PS cap. 4: Proiectarea filtrelor – p. 41/71


Proiectarea filtrelor FIR ı̂n sens Chebyshev

• Ne ocupăm doar de filtre FIR cu fază liniară (pentru care


proiectarea este mai simplă)
• Problema: F OPTINF
• Algoritm: Parks-McClellan
• Discutăm doar elementele esenţiale ale metodei
• Considerăm doar filtre de tip I, al căror răspuns în frecvenţă
are partea reală (K = M/2)

K
X K
X
Hr (ω) = gn cos(nω) = fn (cos ω)n
n=0 n=0

• Algoritmul foloseşte noţiuni de aproximare polinomială

PS cap. 4: Proiectarea filtrelor – p. 42/71


Proprietăţile filtrului optim

• Eroarea cu care răspunsul filtrului aproximează răspunsul


dorit este E(ω) = D(ω) − Hr (ω)
• Pentru un filtru optim, funcţia E(ω) are un număr de
extreme locale, toate cu aceeaşi amplitudine ∆
• Teoremă de alternanţă: pentru soluţia unei probleme
F OPTINF, funcţia eroare E(ω) are L ≥ K + 2 extreme locale
în frecvenţele ω1 , . . . , ωL , cu aceeaşi amplitudine şi cu
semne alternante, i.e.

E(ωk ) = (−1)k ∆, k = 1 : L,

unde ∆ este valoarea maximă a erorii (egală cu norma


infinit, sau Chebyshev, a funcţiei E(ω))

PS cap. 4: Proiectarea filtrelor – p. 43/71


Exemplu de filtru optim

• Pentru M = 16, K = 8 un exemplu de Hr (ω) optim este

ω ω π
b s

• Valoarea maximă a erorii este atinsă în K + 2 = 10 puncte

PS cap. 4: Proiectarea filtrelor – p. 44/71


Algoritmul Parks-McClellan (Remez)

1. Se aleg K + 2 frecvenţe ωk ∈ [0, π], k = 1 : K + 2. Se alege


o toleranţă ε.
2. Se rezolvă sistemul E(ωk ) = (−1)k ∆, k = 1 : K + 2,
necunoscutele fiind coeficienţii f0 , . . . , fK şi valoarea ∆.
3. Se calculează punctele de extrem ωk′ ∈ [0, π], k = 1 : L, ale
răspunsului Hr (ω) obţinut, şi se reţin K + 2 dintre ele, cele
pentru care eroarea |D(ωk′ ) − Hr (ωk′ )| are valorile cele mai
mari.
4. Dacă |ωk − ωk′ | ≤ ε, k = 1 : K + 2, atunci soluţia a fost
obţinută. Altfel, se pune ωk ← ωk′ , k = 1 : K + 2, şi se reia
de la pasul 2.

PS cap. 4: Proiectarea filtrelor – p. 45/71


Explicaţii

• Algoritmul se bazează pe "forţări" succesive ale relaţiei


E(ωk ) = (−1)k ∆ care caracterizează filtrul optim
• După ce la pasul 1 se alege un set arbitrar de frecvenţe ωk ,
nu se obţine eroarea ∆ minimă
• De aceea, punctele de extrem ω ′ , calculate la pasul 3, sunt
k
diferite de punctele iniţiale ωk
• Algoritmul converge !
• Numeroase detalii de implementare: de exemplu, la
proiectarea unui filtru trece-jos, frecvenţele ωb şi ωs fac parte
întotdeauna din setul de frecvenţe ωk

PS cap. 4: Proiectarea filtrelor – p. 46/71


Rezolvarea problemei F OPTINFD

• Date fiind o mulţime discretă de frecvenţe GL = {ω1 , . . . , ωL }


şi un răspuns dorit Dr (ω) real, problema de proiectare a
unui filtru FIR cu fază liniară

min max |D(ωk ) − cT (ωk )h|


h k=1:L

• Vectorul h conţine coeficienţii distincţi ai filtrului, vezi pag. 41


• Problema de optimizare se poate transforma într-o
problemă de programare liniară
• Aceasta se rezolvă cu algoritmi standard (de exemplu
funcţia lp din Matlab)

PS cap. 4: Proiectarea filtrelor – p. 47/71


Transformarea problemei (1)

• Introducem variabila suplimentară

∆ = max |D(ωk ) − cT (ωk )h|


k=1:L

care are semnificaţie de eroare maximă de aproximare pe


mulţimea de frecvenţe GL
• Putem aşadar scrie

−∆ ≤ cT (ωk )h − D(ωk ) ≤ ∆, k = 1 : L,

sau

D(ωk ) − ∆ ≤ cT (ωk )h ≤ D(ωk ) + ∆, k = 1 : L

PS cap. 4: Proiectarea filtrelor – p. 48/71


Transformarea problemei (2)

• Problema de optimizare capătă forma

min ∆
h,∆
cu restricţiile cT (ωk )h − ∆ ≤ D(ωk ), k = 1 : L
−cT (ωk )h − ∆ ≤ −D(ωk ), k = 1 : L

• Vectorul variabilelor problemei de optimizare este


" #
h M ′ +1
ξ= ∈R

unde M ′ este numărul de coeficienţi distincţi ai filtrului

PS cap. 4: Proiectarea filtrelor – p. 49/71


Transformarea problemei (3)

• Notăm

T
   
c (ω1 ) −1 D(ω1 )
 .. ..   .. 

 . .  
 . 

 cT (ω ) −1   D(ω ) 
L L
 ∈ R2L×(M +1) , β =   ∈ R2L

Ψ=
   
 −cT (ω1 ) −1   −D(ω1 ) 
.. ..  ..
   
  
 . .   . 
−cT (ωL ) −1 −D(ωL )

T M ′ +1
γ = [0 . . . 0 1] ∈ R

PS cap. 4: Proiectarea filtrelor – p. 50/71


Programul liniar pentru rezolvarea F OPTINFD

• Problema de optimizare este echivalentă cu programul liniar

min′ γT ξ
ξ∈RM +1

cu restricţiile Ψξ ≤ β

• Numele de program liniar provine din faptul că atât criteriul


cât şi restricţiile sunt liniare în variabila vectorială ξ
• Notaţia Ψξ ≤ β are semnificaţia că fiecare element al
vectorului Ψξ este mai mic sau egal cu elementul
corespunzător al vectorului β
• Cu cât L este mai mare (discretizare mai fină), cu atât
soluţia programului este mai aproape de soluţia problemei
F OPTINF

PS cap. 4: Proiectarea filtrelor – p. 51/71


Exemplu de proiectare: filtru FIR trece-jos

• M = 16, ωb = 0.3π , ωs = 0.46π , L = 100

10

0
Amplitudine (dB)

−10

−20

−30

−40

−50

−60
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

200

100
Faza (val.princ.)

−100

−200
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecventa normalizata

PS cap. 4: Proiectarea filtrelor – p. 52/71


Proiectarea filtrelor IIR prin metode de transformare

• Filtrele analogice au fost primele utilizate în aplicaţii


practice, cu decenii bune înaintea celor digitale
• Metodele de proiectare a filtrelor analogice erau deja bine
dezvoltate atunci când a apărut necesitatea proiectării
filtrelor digitale
• Metodă simplă de proiectare: transformarea (printr-o funcţie
adecvată a) filtrelor analogice în filtre digitale
• Filtrele analogice sunt IIR, deci în mod natural se obţin filtre
digitale IIR
• Dacă H(s) şi G(z) sunt funcţii de transfer în continuu,
respectiv discret, răspunsurile în frecvenţă sunt H(jΩ),
respectiv G(ejω )
• Transformarea continuu-discret este z = f (s). Cu ea se
transformă H(s) în H(z)

PS cap. 4: Proiectarea filtrelor – p. 53/71


Schema de proiectare

discret Specificare
H(z)
(digital) performanţe
6
Transformare Transformare
discret-continuu continuu-discret
?
continuu Performanţe Proiectare
- H(s)
(analogic) timp continuu în continuu

PS cap. 4: Proiectarea filtrelor – p. 54/71


Filtrul Butterworth (analogic)

• Este definit de ordinul său N şi de o frecvenţă de tăiere Ωt


• Răspunsul în frecvenţă al filtrului este

2 1
|H(jΩ)| = H(jΩ)H(−jΩ) =
1 + (Ω/Ωt )2N

• Amplitudinea răspunsului în frecvenţă al filtrului Butterworth


este descrescătoare

• |H(jΩt )| = 1/ 2, H(0) = 1
• Avantaj pentru proiectare: răspunsul în frecvenţă are o
formă analitică simplă

PS cap. 4: Proiectarea filtrelor – p. 55/71


Caracteristica de frecvenţă a filtrului Butterworth

|H(jΩ)|
1

0.707



t

PS cap. 4: Proiectarea filtrelor – p. 56/71


Funcţia de transfer a filtrului Butterworth

• Funcţia de transfer se determină punând s = jΩ

1
H(s)H(−s) =
1 + (s/jΩt )2N

• Cei 2N poli ai funcţiei H(s)H(−s) sunt definiţi de


(−1)1/2N jΩt , deci au forma
 π 
sk = Ωt exp −j (2k − 1 + N ) , k = 0 : 2N − 1
2N
• Polii sunt plasaţi echidistant pe un cerc de rază Ωt centrat în
origine, simetric faţă de axa imaginară
• Pentru H(s) se iau polii cu parte reală negativă, astfel încât
H(s) să fie o funcţie de transfer stabilă

PS cap. 4: Proiectarea filtrelor – p. 57/71


Exemple de poli

• N = 4 (stânga), N = 5 (dreapta)

1 1

0.8 0.8

0.6 0.6

0.4 0.4
Parte imaginara

Parte imaginara
0.2 0.2

0 0

−0.2 −0.2

−0.4 −0.4

−0.6 −0.6

−0.8 −0.8

−1 −1

−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1


Parte reala Parte reala

PS cap. 4: Proiectarea filtrelor – p. 58/71


Filtre Chebyshev

• Filtrele Chebyshev de tip I (ordin N )

2 1
|H(jΩ)| = H(jΩ)H(−jΩ) =
1 + ǫ2 TN2 (Ω/Ωb )

• TN (x) este polinomul Chebyshev de ordinul N


(
cos(N cos−1 (x)), pentru |x| ≤ 1
TN (x) =
cosh(N cosh−1 (x)), pentru |x| > 1

• Răspunsul are ondulaţii egale în banda de trecere şi este


descrescător în banda de oprire
• Parametrul ǫ dictează înălţimea ondulaţiilor
• Filtrul Chebyshev de tipul II se obţine printr-o transformare a
celui de tip I şi are ondulaţii egale în banda de oprire

PS cap. 4: Proiectarea filtrelor – p. 59/71


Răspunsuri ı̂n frecvenţă

• Stânga: tip I, N = 4. Dreapta: tip II, N = 6

|H(jΩ)|
|H(jΩ)|
1
M
b

Ω Ω
Ω Ωs
b

PS cap. 4: Proiectarea filtrelor – p. 60/71


Filtrul eliptic

• |H(jΩ)|2 = H(jΩ)H(−jΩ) =
1
2 (Ω/Ω )
1 + ǫ 2 UN b
• UN (·) este funcţia Jacobi eliptică de ordinul II
• Ondulaţii egale în banda de trecere şi în cea de oprire
• Caracteristică de frecvenţă pentru N = 4

|H(jΩ)|
1
Mb


Ωb Ωs

PS cap. 4: Proiectarea filtrelor – p. 61/71


Proprietăţile unei transformări continuu-discret

• O transformare continuu-discret z = f (s) trebuie să aibă


următoarele proprietăţi:
◦ să fie biunivocă
◦ să transforme semiplanul complex stâng în discul
unitate, astfel încât un filtru analogic stabil să fie
transformat într-un filtru digital stabil şi reciproc;
◦ să transforme axa imaginară în cercul unitate, astfel
încât răspunsul în frecvenţă H(jΩ) al unui filtru analogic
să-şi păstreze alura în transformatul său digital H(ejω )
(notăm H(s) filtrul analogic şi, cu aceeaşi literă,
H(z) = H(f (s)) filtrul digital)

PS cap. 4: Proiectarea filtrelor – p. 62/71


Transformarea biliniară (1)

• Transformarea biliniară este definită prin z =


1+s
1−s
z − 1 1 − z −1
• Transformarea inversă este s = =
z+1 1 + z −1
• Înlocuind s = jΩ şi z = ejω rezultă

jω 1 + jΩ
e =
1 − jΩ
• Transformarea continuu-discret a frecvenţelor este

ω
ω = 2arctgΩ, Ω = tg
2
• Transformarea este neliniară

PS cap. 4: Proiectarea filtrelor – p. 63/71


Transformarea biliniară (2)
ω
π

−π

• Transformarea biliniară transformă semiplanul complex


stâng în discul unitate
• Notăm s = u + jv . Dacă Re(s) = u < 0, atunci
(1 + u)2 < (1 − u)2 şi deci
2 2 2
2
1 + s (1 + u) + v
|z| = = <1
1 − s (1 − u)2 + v 2
PS cap. 4: Proiectarea filtrelor – p. 64/71
Filtrul Butterworth discret

• Fiind o funcţie crescătoare, transformarea în frecvenţă


ω = 2arctgΩ păstrează forma răspunsului în frecvenţă al
unui filtru analogic
• Filtrul Butterworth analogic se transformă în

jω 2 1
|H(e )| =  2N , ωt = 2arctgΩt
tg(ω/2)
1+ tg(ωt /2)

PS cap. 4: Proiectarea filtrelor – p. 65/71


Filtrul Butterworth discret: proiectare

• Date de proiectare: ωb , ωs , ∆b , ∆s
• Etapa 1: transpunem cerinţele de proiectare în domeniul
continuu
ωb ωs
Ωb = tg , Ωs = tg
2 2
• Etapa 2: găsim un filtru Butterworth H(s) pentru care

|H(Ωb )| ≥ 1 − ∆b , |H(Ωs )| ≤ ∆s

• (Detalii în Lab. 6 sau în carte)


• Etapa 3: filtrul discret H(z) se obţine aplicând
transformarea biliniară filtrului analogic H(s)

PS cap. 4: Proiectarea filtrelor – p. 66/71


Caracteristici de frecvenţă

• Filtru Butterworth discret (stânga), analogic (dreapta)


(Mb = 1 − ∆b )

1 1
M M
b b

∆s ∆s
ω Ω
ω ω π Ω Ω
b s b s

PS cap. 4: Proiectarea filtrelor – p. 67/71


Transformări discret-discret ı̂n frecvenţă

• Filtrele IIR analogice discutate sunt de tip trece-jos, iar prin


transformarea biliniară se obţin filtre digitale trece-jos
• Pentru a proiecta altfel de filtre digitale (trece-sus,
trece-bandă etc.), se pot utiliza transformări în frecvenţă,
care obţin filtrul dorit dintr-unul trece-jos
• O astfel de transformare Z = G(z) trebuie
◦ să fie inversabilă
◦ să transforme discul unitate în el însuşi (să se conserve
stabilitatea)
◦ să transforme cercul unitate în el însuşi
• Toate transformările de acest tip sunt funcţii trece-tot !

PS cap. 4: Proiectarea filtrelor – p. 68/71


Transformare trece-jos −→ trece-sus

• Transformarea este trece-tot de ordinul 1

−1 z −1 − c
Z =− −1
, c ∈ R, |c| < 1
1 − cz
• Pe cercul unitate (z = ejω , Z = ejθ ):

e−jω − c 2c − (1 + c2 ) cos ω + j(c2 − 1) sin ω


e−jθ =− =
1 − ce −jω 1 + c2 − 2c cos ω
• Transformarea în frecvenţă este

− c2 ) sin ω
 
(1
θ = arctg
2c − (1 + c2 ) cos ω

PS cap. 4: Proiectarea filtrelor – p. 69/71


Graficul transformării ı̂n frecvenţă

• c = 0 (linie continuă), c = −0.5 (linie-punct), c = 0.5 (linie


întreruptă)

θ
π

PS cap. 4: Proiectarea filtrelor – p. 70/71


Exemplu de filtre trece-sus

1 1

ω ω
π π

• Pentru c = 0, rezultă Z = −z , θ = π − ω
• Răspunsul în frecvenţă al filtrului trece-sus este obţinut prin
oglindire faţă de verticala care trece prin π/2

PS cap. 4: Proiectarea filtrelor – p. 71/71

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