Capitolul 1: Bancuri de filtre
Capitolul 1: Bancuri de filtre
Capitolul 1: Bancuri de filtre
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 1/75<br />
Prelucrarea avansată a semnalelor<br />
<strong>Capitolul</strong> 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong><br />
Bogdan Dumitrescu<br />
Facultatea <strong>de</strong> Automatică şi Calculatoare<br />
Universitatea Politehnica Bucureşti
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 2/75<br />
Cuprins<br />
• <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> cu două canale<br />
◦ Decimare şi interpolare<br />
◦ I<strong>de</strong>ntităţi remarcabile<br />
◦ Reprezentarea polifază<br />
◦ Reconstrucţie perfectă<br />
◦ <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> ortogonale<br />
◦ <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> biortogonale<br />
◦ Lifting<br />
◦ Meto<strong>de</strong> <strong>de</strong> proiectare<br />
• <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> cu mai multe canale<br />
◦ Proprietăţi generale<br />
◦ <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> modulate
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 3/75<br />
Obiectul principal <strong>de</strong> studiu<br />
• Banc <strong>de</strong> <strong>filtre</strong> (BF) cu două canale<br />
• Semnalul <strong>de</strong> intrare x[n] este filtrat, apoi <strong>de</strong>cimat<br />
• Filtrul H 0 (z) este <strong>de</strong> obicei trece-jos, H 1 (z) trece-sus<br />
• Semnale din sub-benzi, y 0 şi y 1 , pot fi prelucrate (la început<br />
o să presupunem că nu sunt alterate)<br />
• Bancul <strong>de</strong> sinteză face interpolare, apoi filtrare<br />
• I<strong>de</strong>al, ieşirea ˜x[n] este o versiune întârziată a intrării<br />
✓✏ ✓✏<br />
x ✲ ✲<br />
y 0<br />
H 0 (z) ↓2 ✲ ↑2 ✲ ˜x<br />
F 0 (z) 0<br />
✒✑ ✒✑<br />
✲H 1 (z)<br />
✓✏ ✓✏<br />
✲<br />
y 1<br />
↓2 ✲ ↑2 ✲ ˜x<br />
F 1 (z) ✲ 1 ❞ ❄ ˜x ✲<br />
✒✑ ✒✑<br />
Banc <strong>de</strong> analiză<br />
Banc <strong>de</strong> sinteză
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 4/75<br />
Decimare<br />
• Decimatorul cu factorul M efectuează operaţia<br />
x[n]<br />
✗✔y[n] = x[Mn]<br />
✲ ↓M ✲<br />
✖✕<br />
• Ieşirea păstrează doar fiecare al M-lea eşantion al intrării,<br />
eliminându-le pe celelalte<br />
• Relaţia între transformatele Z ale intrării şi ieşirii este<br />
Y (z) = 1 M<br />
M−1<br />
∑<br />
l=0<br />
• În cazul M = 2 se obţine Y (z) = 1 2<br />
X<br />
( )<br />
z 1/M wM<br />
l , w M = e − j2π<br />
M (1)<br />
(<br />
)<br />
X(z 1/2 ) + X(−z 1/2 )
Demonstraţie (1)<br />
• Relaţie elementară între rădăcinile <strong>de</strong> ordinul M ale unităţii<br />
M−1<br />
∑<br />
l=0<br />
w −ln<br />
M<br />
M−1<br />
= ∑<br />
l=0<br />
e j2πln/M =<br />
{<br />
M, dacă n mod M = 0<br />
0, altfel<br />
(2)<br />
• Dacă n mod M = 0, atunci toţi termenii din sumă sunt 1<br />
• Altfel<br />
M−1<br />
∑<br />
l=0<br />
e j2πln/M = 1 − ej2πn<br />
1 − e j2πn/M = 0 PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 5/75
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 6/75<br />
Demonstraţie (2)<br />
• Termenul drept din (1) poate fi scris<br />
1<br />
M<br />
M−1<br />
∑<br />
l=0<br />
X<br />
( )<br />
z 1/M wM<br />
l<br />
= 1 M<br />
= 1 M<br />
(2)<br />
=<br />
n←Mn<br />
=<br />
∞∑<br />
M−1<br />
∑<br />
l=0<br />
n=−∞<br />
∞∑<br />
n=−∞<br />
= Y (z)<br />
∞∑<br />
n=−∞<br />
∞∑<br />
n=−∞<br />
x[n]<br />
M−1<br />
∑<br />
x[n]z −n/M<br />
( ) −n<br />
z 1/M wM<br />
l<br />
l=0<br />
w −ln<br />
M<br />
x[n]z −n/M δ[n mod M]<br />
x[Mn]z −n
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 7/75<br />
Decimare fără pier<strong>de</strong>ri<br />
• Presupunem că semnalul iniţial are spectrul limitat la banda<br />
[−π/M,π/M], <strong>de</strong>ci X(ω) = 0 pentru π/M < |ω| ≤ π<br />
• Spectrul semnalului <strong>de</strong>cimat este<br />
Y (ω) = 1 M<br />
X(ω/M), ω ∈ [−π,π]<br />
• Spectrul semnalului <strong>de</strong>cimat are aceeaşi formă ca spectrul<br />
semnalului iniţial, dar expandată pe întreg intervalul [−π,π]<br />
• Intuitiv, nu se pier<strong>de</strong> informaţie prin <strong>de</strong>cimare<br />
• Aceasta ar fi situaţia în bancurile <strong>de</strong> <strong>filtre</strong>, dacă <strong>filtre</strong>le ar fi<br />
i<strong>de</strong>ale<br />
• Problemă (cazul canalului pentru frecvenţe înalte): luând<br />
M = 2, cum se transformă spectrul unui semnal pentru care<br />
X(ω) = 0 pentru |ω| ≤ π/2
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 8/75<br />
Decimare fără pier<strong>de</strong>ri—exemplu<br />
1<br />
|X(ω)|<br />
... ...<br />
ω<br />
−π<br />
−π/M π/M π 2π 3π<br />
|Y(ω)|<br />
1/M<br />
... ...<br />
ω<br />
−π π 2π 3π
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 9/75<br />
Aliere<br />
• Dacă spectrul semnalului iniţial se întin<strong>de</strong> dincolo <strong>de</strong><br />
frecvenţa π/M, atunci spectrul semnalului <strong>de</strong>cimat nu mai<br />
are aceeaşi formă ca spectrul semnalului iniţial<br />
• Spectrul semnalului <strong>de</strong>cimat este suma unor porţiuni<br />
(expandate) ale spectrului iniţial<br />
• Apare fenomenul <strong>de</strong> aliere
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 10/75<br />
Aliere—exemplu<br />
1<br />
|X(ω)|<br />
... ...<br />
ω<br />
−π<br />
−π/M π/M π 2π 3π<br />
|Y(ω)|<br />
1/M<br />
... ...<br />
ω<br />
−π π 2π 3π
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 11/75<br />
Interpolare<br />
• Interpolatorul cu factorul M introduce M − 1 zerouri între<br />
fiecare două eşantioane ale semnalului <strong>de</strong> intrare<br />
y[n] =<br />
{<br />
x[n/M], dacă n mod M = 0<br />
0, altfel<br />
• Notaţie uzuală<br />
x[n]<br />
✗✔y[n]<br />
✲ ↑M<br />
✖✕<br />
✲<br />
• Relaţia între transformatele Z ale intrării şi ieşirii este<br />
Y (z) <strong>de</strong>f =<br />
∞∑<br />
n=−∞<br />
y[n]z −n =<br />
∞∑<br />
k=−∞<br />
x[k]z −Mk = X(z M )
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 12/75<br />
Transformarea spectrului la interpolare<br />
• Relaţia între spectre: Y (ω) = X(Mω)<br />
• Pe intervalul [−π,π], spectrul semnalului interpolat este<br />
obţinut prin alăturarea a M copii (fiecare comprimată <strong>de</strong> M<br />
ori) ale unei perioa<strong>de</strong> a spectrului semnalului iniţial<br />
• Fenomenul este numit replicare (engl. replication, imaging)<br />
• Aplicarea unui filtru trece-jos (ca pe primul canal al BF)<br />
elimină replicile inutile
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 13/75<br />
Transformarea spectrului la interpolare—exemplu<br />
• Pentru M = 3:<br />
|X(ω)|<br />
1<br />
... ...<br />
ω<br />
−π<br />
π<br />
|Y(ω)|<br />
1<br />
... ...<br />
ω<br />
−π<br />
−π/M<br />
π/M<br />
π<br />
M<br />
... ...<br />
ω<br />
−π<br />
−π/M<br />
π/M<br />
π
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 14/75<br />
Ilustrarea în frecvenţă a funcţionării BF cu două canale<br />
• Figura—la tablă !<br />
• Dacă <strong>filtre</strong>le sunt i<strong>de</strong>ale, atunci semnalele filtrate <strong>de</strong> H 0 (z)<br />
şi H 1 (z) ocupă fiecare doar jumătate din spectru<br />
• Decimarea cu 2 nu pier<strong>de</strong> informaţie<br />
• (Numărul <strong>de</strong> eşantioane în sub-benzi este acelaşi cu al<br />
intrării, <strong>de</strong>ci speram <strong>de</strong> la început să nu se piardă<br />
informaţie)<br />
• Interpolarea extin<strong>de</strong> spectrul util din fiecare sub-bandă pe<br />
tot intervalul [−π,π]<br />
• Filtrele i<strong>de</strong>ale F 0 (z) şi F 1 (z) păstrează doar jumătatea utilă,<br />
în intervalul <strong>de</strong> frecvenţă a<strong>de</strong>cvat<br />
• Prin sumare se reface spectrul iniţial<br />
• Întrebare naturală: ce se întâmplă dacă <strong>filtre</strong>le nu sunt<br />
i<strong>de</strong>ale
Interconexiuni cu <strong>de</strong>cimatoare şi interpolatoare<br />
• Superpoziţie<br />
✓✏<br />
u<br />
a 1 1 ✲ ❜❜ ✲<br />
u<br />
a 1<br />
1 ✲ ↓M ✲ ❜❜<br />
✧✧<br />
✓✏<br />
✒✑✧✧<br />
✲ ↓M<br />
v✲<br />
⇐⇒<br />
✒✑<br />
✓✏<br />
u<br />
a 2 2 ✲ ❜❜ ✲<br />
u<br />
a 2<br />
2 ✲ ↓M ✲ ❜❜<br />
✧✧<br />
✒✑✧✧<br />
✲<br />
✲<br />
v✲<br />
• Decimatorul cu factor M şi interpolatorul cu factor L comută<br />
doar dacă M şi L sunt coprimi (<strong>de</strong>monstraţie !)<br />
✓✏ ✓✏<br />
✲ ↓M ✲ ↑L ✲<br />
✒✑ ✒✑<br />
✓✏ ✓✏<br />
✲ ↑L ✲ ↓M ✲<br />
✒✑ ✒✑<br />
⇐⇒ PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 15/75
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 16/75<br />
I<strong>de</strong>ntităţile nobile—interpolare<br />
• Dacă G(z) e o funcţie <strong>de</strong> transfer oarecare, atunci<br />
✲<br />
✓✏<br />
✓✏<br />
G(z) ✲ ↑M ✲ ⇐⇒ ✲ ↑M ✲ G(z M )<br />
✒✑<br />
✒✑<br />
✲<br />
• Demonstraţie: notăm u intrarea, v ieşirea<br />
• În stânga, după filtrare se obţine G(z)U(z), <strong>de</strong>ci<br />
V (z) = G(z M )U(z M )<br />
• În dreapta, după interpolare se obţine U(z M ), <strong>de</strong>ci din nou<br />
V (z) = G(z M )U(z M )<br />
• Demonstraţi folosind relaţiile în timp !
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 17/75<br />
I<strong>de</strong>ntităţile nobile—<strong>de</strong>cimare<br />
• În cazul <strong>de</strong>cimării, ordinea se inversează:<br />
✓✏<br />
✲ ↓M ✲ G(z) ✲ ⇐⇒ ✲ G(z M )<br />
✒✑<br />
✓✏<br />
✲ ↓M ✲<br />
✒✑<br />
• Demonstraţie: notăm u intrarea, v ieşirea<br />
• În stânga se obţine (vezi (1))<br />
V (z) = 1 M−1<br />
M G(z) ∑<br />
l=0<br />
U<br />
( )<br />
z 1/M wM<br />
l<br />
• În dreapta, obţinem aceeaşi relaţie <strong>de</strong>oarece, aplicând (1)<br />
pentru G(z M ) şi ţinând seama că wM<br />
lM = 1, rezultă<br />
M−1<br />
1 ∑ ( )<br />
G zwM<br />
lM = G(z)<br />
M<br />
l=0
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 18/75<br />
Reprezentarea polifază<br />
• Consi<strong>de</strong>răm M = 2<br />
• Fie G(z) un filtru, pe care îl scriem folosind componentele<br />
polifază<br />
G(z) = G 0 (z 2 ) + z −1 G 1 (z 2 )<br />
• Exemplu: dacă G(z) = 1 + 2z −1 + 3z −2 + 4z −3 , atunci<br />
G 0 (z) = 1 + 3z −1 şi G 1 (z) = 2 + 4z −1<br />
• Filtrul poate fi implementat prin schema echivalentă<br />
✲<br />
G(z)<br />
✲<br />
⇐⇒<br />
✲ G 0 (z 2 )<br />
❄<br />
z −1<br />
✲ G 1 (z 2 )<br />
✲❄<br />
• Deocamdată nu rezultă nici un avantaj, ba dimpotrivă
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 19/75<br />
Reprezentarea polifază şi <strong>de</strong>cimarea<br />
• Filtrarea unui semnal, urmată <strong>de</strong> <strong>de</strong>cimare, poate fi<br />
realizată prin schema echivalentă<br />
✲<br />
G(z)<br />
✓✏<br />
✲ ↓2 ✲<br />
✒✑<br />
⇐⇒<br />
✓✏<br />
✲ ↓2 ✲<br />
❄ ✒✑<br />
z −1 ✓✏<br />
✲ ↓2 ✲<br />
✒✑<br />
G 0 (z)<br />
G 1 (z)<br />
✲❄<br />
• Echivalenţa este imediată: sumarea comută cu <strong>de</strong>cimarea,<br />
apoi se aplică i<strong>de</strong>ntitatea nobilă pentru <strong>de</strong>cimare, pe fiecare<br />
ramură a schemei <strong>de</strong> pe pagina prece<strong>de</strong>ntă (G 0 (z 2 ),<br />
respectiv G 1 (z 2 ), comută cu <strong>de</strong>cimatorul, <strong>de</strong>venind G 0 (z),<br />
G 1 (z))
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 20/75<br />
Avantaje<br />
• Avantajul implementării polifază este că operaţiile <strong>de</strong> filtrare<br />
se execută la frecvenţă <strong>de</strong> două ori mai mică, cu <strong>filtre</strong> mai<br />
scurte<br />
• În plus, nu se fac operaţii inutile<br />
• Atunci când <strong>de</strong>cimarea avea loc după filtrare, jumătate din<br />
operaţiile efectuate la filtrare erau inutile, din moment ce<br />
jumătate din eşantioane erau ignorate
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 21/75<br />
Reprezentarea polifază şi interpolarea<br />
• La interpolare se foloseşte <strong>de</strong> obicei reprezentarea polifază<br />
<strong>de</strong> tip II (componentele polifază apar în ordine inversă)<br />
G(z) = G 1 (z 2 ) + z −1 G 0 (z 2 )<br />
• Filtrarea unui semnal interpolat poate fi realizată prin<br />
schema echivalenta<br />
✓✏<br />
✲ ↑2 ✲<br />
✒✑<br />
G(z)<br />
✲<br />
⇐⇒<br />
✲<br />
✲<br />
G 0 (z)<br />
G 1 (z)<br />
✓✏<br />
✲ ↑2<br />
✒✑❄<br />
z −1 ✓✏<br />
✲ ↑2 ✲❄<br />
✒✑<br />
• Demonstraţia se face similar, pe baza comutativităţii şi a<br />
i<strong>de</strong>ntităţii nobile
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 22/75<br />
BF cu două canale—reprezentare polifază<br />
• Scriem <strong>filtre</strong>le BF cu două canale în reprezentare polifază<br />
• Bancul <strong>de</strong> analiză, tip I<br />
H 0 (z) = H 00 (z 2 ) + z −1 H 01 (z 2 )<br />
H 1 (z) = H 10 (z 2 ) + z −1 H 11 (z 2 )<br />
• Bancul <strong>de</strong> sinteză, tip II (atenţie la indici !)<br />
F 0 (z) = F 10 (z 2 ) + z −1 F 00 (z 2 )<br />
F 1 (z) = F 11 (z 2 ) + z −1 F 01 (z 2 )<br />
• Aplicăm apoi schemele prece<strong>de</strong>nte pentru transformarea<br />
bancului <strong>de</strong> <strong>filtre</strong>
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 23/75<br />
BF cu două canale—reprezentare polifază<br />
• Se obţine schema<br />
✓✏<br />
x ✲ ↓2 ✲<br />
❄ ✒✑<br />
z −1 ✓✏<br />
✲ ↓2 ✲<br />
✒✑<br />
A(z)<br />
y 0<br />
y 1<br />
✲<br />
✲<br />
S(z)<br />
✓✏<br />
✲ ↑2<br />
✒✑❄<br />
z −1 ✓✏<br />
✲ ↑2 ✲❄<br />
✒✑<br />
˜x<br />
• Matricea polifază <strong>de</strong> analiză este<br />
[<br />
H 00 (z) H 01 (z)<br />
A(z) =<br />
H 10 (z) H 11 (z)<br />
• Matricea polifază <strong>de</strong> sinteză<br />
[<br />
F 00 (z) F 01 (z)<br />
S(z) =<br />
F 10 (z) F 11 (z)<br />
]<br />
]
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 24/75<br />
Reconstrucţie perfectă<br />
• Un banc <strong>de</strong> <strong>filtre</strong> posedă reconstrucţie perfectă (RP) dacă<br />
˜x[n] = x[n − D],<br />
un<strong>de</strong> D este un întreg pozitiv—întârzierea<br />
• O primă condiţie este evi<strong>de</strong>ntă din reprezentarea polifază<br />
S(z)A(z) = z −τ I 2<br />
• Întârzierea este D = 2τ + 1 (<strong>de</strong>ci impară !)<br />
• Cea mai simplă soluţie A(z) = S(z) = I, adică (verificaţi !)<br />
H 0 (z) = 1, H 1 (z) = z −1 , F 0 (z) = z −1 , F 1 (z) = 1<br />
• Rezultă D = 1<br />
• Aceste <strong>filtre</strong> sunt inutile, doar arată că RP este posibilă
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 25/75<br />
Exemplu<br />
[<br />
3<br />
• Luăm A(z) =<br />
4 z−1 − 1 8 (1 + z−2 1<br />
)<br />
4 (1 + z−1 )<br />
− 1 4 (1 + z−1 1<br />
)<br />
2<br />
[<br />
]<br />
1 − 1<br />
S(z) =<br />
2 (1 + z−1 )<br />
1<br />
2 (1 + z−1 3<br />
)<br />
2 z−1 − 1 4 (1 + z−2 )<br />
• Rezultă S(z)A(z) = z −1 I, <strong>de</strong>ci se obţine RP cu D = 3<br />
• Filtrele corespunzătoare sunt<br />
H 0 (z) = 3 4 z−2 − 1 8 (1 + z−4 ) + 1 4 z−1 (1 + z −2 ) = (− 1 8 , 1 4 , 3 4 , 1 4 , −1 8 )<br />
H 1 (z) = − 1 4 (1 + z−2 ) + 1 2 z−1 = (− 1 4 , 1 2 , −1 4 )<br />
F 0 (z) = z −1 + 1 2 (1 + z−2 ) = ( 1 2 ,1, 1 2 )<br />
F 1 (z) = − 1 2 z−1 (1 + z −2 ) + 3 2 z−2 − 1 4 (1 + z−4 ) = (− 1 4 , −1 2 , 3 2 , −1 2 , −1 8 )<br />
• Acestea sunt <strong>filtre</strong>le 5/3 (LeGall) din JPEG2000<br />
]<br />
şi
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 26/75<br />
Altă abordare a RP<br />
• Condiţia pe matricea polifază este compactă, dar mai greu<br />
<strong>de</strong> manevrat şi mai puţin intuitivă<br />
• Căutăm condiţii direct pe <strong>filtre</strong><br />
• Aplicând (1) obţinem (în schema BF <strong>de</strong> bază)<br />
Y 0 (z) = 1 2<br />
[<br />
]<br />
H 0 (z 1/2 )X(z 1/2 ) + H 0 (−z 1/2 )X(−z 1/2 )<br />
• După interpolare şi filtrare pe primul canal, rezultă<br />
˜X 0 (z) = 1 2 F 0(z)[H 0 (z)X(z) + H 0 (−z)X(−z)]<br />
• Similar, pe al doilea canal<br />
˜X 1 (z) = 1 2 F 1(z)[H 1 (z)X(z) + H 1 (−z)X(−z)]
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 27/75<br />
Funcţii <strong>de</strong> transfer în BF<br />
• Relaţie intrare-ieşire poate fi scrisă<br />
˜X(z) = T d (z)X(z) + T a (z)X(−z)<br />
• Funcţia <strong>de</strong> transfer <strong>de</strong> distorsie (se aplică direct intrării)<br />
T d (z) = 1 2 [H 0(z)F 0 (z) + H 1 (z)F 1 (z)]<br />
• Funcţia <strong>de</strong> transfer <strong>de</strong> aliere (se aplică intrării modulate)<br />
T a (z) = 1 2 [H 0(−z)F 0 (z) + H 1 (−z)F 1 (z)]<br />
• Valorile i<strong>de</strong>ale sunt T d (z) = z −D , T a (z) = 0<br />
• Problemă: ce semnal are transformata Z egală cu X(−z) <br />
Cum arată spectrul lui
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 28/75<br />
Eliminarea structurală a alierii<br />
• Erorile <strong>de</strong> RP datorate alierii pot fi eliminate prin alegerea<br />
F 0 (z) = H 1 (−z)<br />
F 1 (z) = −H 0 (−z)<br />
(3)<br />
• Rezultă T a (z) = 0<br />
• Reamintire: dacă G(z) e filtru trece-jos, atunci G(−z) este<br />
trece-sus<br />
• Observăm <strong>de</strong>ci că relaţiile <strong>de</strong> mai sus nu contrazic cerinţa<br />
ca H 0 (z) şi F 0 (z) să fie trece-jos iar H 1 (z) şi F 1 (z) trece-sus<br />
• Mai <strong>de</strong>parte presupunem condiţia (3) satisfăcută<br />
• Deci RP se rezumă la condiţia T d (z) = z −D , un<strong>de</strong><br />
T d (z) = 1 2 [H 0(z)H 1 (−z) − H 0 (−z)H 1 (z)] (4)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 29/75<br />
Reconstrucţie aproape perfectă<br />
• Uneori se poate renunţa la cerinţa în<strong>de</strong>plinirii exacte a<br />
condiţiei <strong>de</strong> RP, pentru a simplifica proiectarea sau a obţine<br />
<strong>filtre</strong> cu performanţe mai bune<br />
• De asemenea, <strong>de</strong>pinzând <strong>de</strong> natura prelucrării semnalelor<br />
din sub-benzi, e posibil ca RP să fie inutilă<br />
• In aceste situaţii se lucrează cu reconstrucţie aproximativă<br />
(notată RAP, reconstrucţie aproape perfectă; în engleză,<br />
nearly perfect reconstruction)<br />
• RAP se poate obţine euristic sau impunând condiţii precise<br />
<strong>de</strong> tipul<br />
‖T d (z) − z −D ‖ ≤ ε<br />
• De exemplu, folosind norma infinit<br />
|T d (ω) − e −jDω | ≤ ε, ∀ω ∈ [−π,π]
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 30/75<br />
BF ortogonale<br />
• Vom discuta doar <strong>de</strong>spre <strong>filtre</strong> FIR. Notăm N 0 şi N 1 gra<strong>de</strong>le<br />
lui H 0 (z) and H 1 (z)<br />
• BF ortogonale au N 0 = N 1 = N impar şi se bazează pe<br />
alegerea<br />
• Dacă H 0 (z) = ∑ N<br />
k=0 h kz −k , atunci<br />
H 1 (z) = −z −N H 0 (−z −1 ) (5)<br />
H 1 (z) = ∑ N<br />
k=0 (−1)k h N−k z −k<br />
• In plus, din relaţia (3), rezultă că<br />
F 0 (z) = H 1 (−z) = −(−z) −N H 0 (z −1 ) = z −N H 0 (z −1 )<br />
F 1 (z) = −H 0 (−z) = z −N H 1 (z −1 )<br />
(6)<br />
• Deci <strong>filtre</strong>le <strong>de</strong> sinteză sunt inversele celor <strong>de</strong> analiză
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 31/75<br />
BFO—răspunsuri în frecvenţă<br />
• Din (5) rezultă<br />
|H 1 (ω)| = |H 0 (π − ω)|<br />
• Deci răspunsul în frecvenţă al filtrului trece-sus este cel al<br />
filtrului trece-jos oglindit faţă <strong>de</strong> ω = π/2<br />
• Din (6), condiţia <strong>de</strong> RP T d (z) = z −N se poate scrie<br />
• Rezultă<br />
H 0 (z)H 0 (z −1 ) + H 1 (z)H 1 (z −1 ) = 2<br />
|H 0 (ω)| 2 + |H 1 (ω)| 2 = 2, ∀ω<br />
• Deci răspunsurile celor două <strong>filtre</strong> sunt "complementare"
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 32/75<br />
BFO—exemplu <strong>de</strong> răspunsuri în frecvenţă<br />
• Un exemplu <strong>de</strong> BFO cu N = 19<br />
10<br />
0<br />
−10<br />
Magnitu<strong>de</strong> (dB)<br />
−20<br />
−30<br />
−40<br />
−50<br />
−60<br />
−70<br />
−80<br />
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />
Frequency (ω / π)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 33/75<br />
BFO—condiţia <strong>de</strong> RP<br />
• Folosind (5) and (6), funcţia <strong>de</strong> transfer <strong>de</strong> distorsie este<br />
T d (z) = z −N [ H 0 (z)H 0 (z −1 ) + H 0 (−z)H 0 (−z −1 ) ]<br />
• Notăm (filtrul produs, simetric)<br />
P(z) = H 0 (z)H 0 (z −1 ) = ∑ N<br />
k=−N p kz −k<br />
• Pentru că P(z) + P(−z) are toţi coeficienţii puterilor impare<br />
egali cu zero, condiţia <strong>de</strong> RP este<br />
p 2l = δ l , ∀l = 0 : (N − 1)/2 (7)<br />
• Rezultă T d (z) = z −N , <strong>de</strong>ci RP cu D = N<br />
• Coeficienţii p k <strong>de</strong>pind pătratic <strong>de</strong> cei ai lui H 0 (z), <strong>de</strong>ci<br />
impunerea condiţiei (7) nu e simplă
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 34/75<br />
Condiţie pe componentele polifază<br />
• Scriem H 0 (z) = H 00 (z 2 ) + z −1 H 01 (z 2 )<br />
• Filtrul produs capată forma<br />
P(z) = H 00 (z 2 )H 00 (z −2 ) + H 01 (z 2 )H 01 (z −2 )<br />
+z −1 H 01 (z 2 )H 00 (z −2 ) + zH 00 (z 2 )H 01 (z −2 )<br />
• Primii doi termeni conţin puterile impare, <strong>de</strong>ci condiţia <strong>de</strong><br />
RP este<br />
P 0 (z) <strong>de</strong>f = H 00 (z)H 00 (z −1 ) + H 01 (z)H 01 (z −1 ) = 1 (8)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 35/75<br />
BFO—matricea polifază <strong>de</strong> analiză<br />
• Punând H 1 (z) = H 10 (z 2 ) + z −1 H 11 (z 2 ), din (5) rezultă că<br />
(notăm Ñ = (N − 1)/2)<br />
H 10 (z) = z −ÑH 01 (z −1 ), H 11 (z) = −z −ÑH 00 (z −1 )<br />
• Matricea polifază <strong>de</strong> analiză are <strong>de</strong>ci forma<br />
[<br />
H 00 (z) H 01 (z)<br />
A(z) =<br />
z −ÑH 01 (z −1 ) −z −ÑH 00 (z −1 )<br />
]<br />
• Ţinând seama <strong>de</strong> (8) rezultă că<br />
A T (z −1 )A(z) = I<br />
• Matricea A(z) este paraunitară (<strong>de</strong>finiţie)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 36/75<br />
Ce înseamnă ortogonalitate <br />
• Punând z = e jω , rezultă că<br />
A T (e −jω )A(e jω ) = I<br />
• Deci matricea A(e jω ) este unitară pentru orice frecvenţă ω<br />
• Sistemul (cu 2 intrări, 2 ieşiri) A(z) este lossless<br />
• Rezultă că energia (puterea) semnalului <strong>de</strong> intrare se<br />
conservă la ieşire<br />
• Într-un BFO, energia (totală) în sub-benzi este i<strong>de</strong>ntică cu<br />
cea <strong>de</strong> la intrare
BFO—matricea polifază <strong>de</strong> sinteză<br />
• Se poate <strong>de</strong>monstra (exerciţiu !) că matricea polifază <strong>de</strong><br />
sinteză are forma<br />
S(z) = z −ÑA T (z −1 )<br />
• Rezultă că<br />
S(z)A(z) = z −Ñ I<br />
• Se confirmă RP, cu întârzierea D = 2Ñ + 1 = N PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 37/75
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 38/75<br />
BFO—reprezentarea latice<br />
• Se poate <strong>de</strong>monstra că orice matrice FIR lossless se poate<br />
<strong>de</strong>scompune astfel<br />
A(z) = GÑ+1 ∆(z)GÑ ...G 2 ∆(z)G 1<br />
cu<br />
G k =<br />
[<br />
]<br />
c k −s k<br />
, ∆(z) =<br />
s k c k<br />
[<br />
]<br />
1 0<br />
0 z −1<br />
• Matricele G k sunt rotaţii Givens (c 2 k + s2 k<br />
ortogonale<br />
• Matricea ∆(z) e lossless<br />
= 1), <strong>de</strong>ci matrice
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 39/75<br />
BFO—implementare <strong>de</strong> tip latice<br />
• Bancul <strong>de</strong> analiză<br />
✓✏<br />
x✲<br />
✲ ↓2<br />
✲<br />
β<br />
❄ ✒✑ ✣ ✣ ✣<br />
z −1 · · ·<br />
✓✏<br />
✲ ↓2 ❫ ✲<br />
z<br />
✒✑<br />
−1 ❫ ✲ ✲<br />
z −1 ❫<br />
• Matricele G k se împart la c k<br />
• Rezultă un factor <strong>de</strong> corecţie β<br />
• Bancul <strong>de</strong> sinteză<br />
−α 1 −α 2 −αÑ+1<br />
α 1 α 2 αÑ+1<br />
✓✏<br />
✲<br />
z −1 ✲ ✲<br />
z<br />
✣<br />
✣<br />
−1 ✲ ↑2<br />
αÑ+1 α 2<br />
✣α 1<br />
✒✑❄<br />
· · ·<br />
z −1 ✓✏<br />
−αÑ+1 −α 2 −α 1<br />
❫ ✲ ❫ ❫ ✲ ↑2 ✲❄ y<br />
✒✑<br />
✲<br />
✲
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 40/75<br />
<strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> QMF<br />
• <strong>Bancuri</strong>le <strong>de</strong> <strong>filtre</strong> QMF (quadrature mirror filter) sunt<br />
caracterizate <strong>de</strong> alegerea H 1 (z) = H 0 (−z)<br />
• Istoric, au fost primele propuse, datorită implementării<br />
simple<br />
• Răspunsurile în frecvenţă au proprietăţi similare BFO<br />
• Spre <strong>de</strong>osebire <strong>de</strong> BFO, nu se poate obţine RP în general<br />
• Singurul BF QMF cu RP este cel cu H 0 (z) = (1 + z −1 )/2<br />
• Reprezentare polifază: H 0 (z) = H 00 (z 2 ) + z −1 H 01 (z 2 )<br />
• Rezultă H 1 (z) = H 00 (z 2 ) − z −1 H 01 (z 2 )
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 41/75<br />
Implementare eficientă<br />
• Matricea polifază <strong>de</strong> analiză este<br />
[<br />
H 00 (z) H 01 (z)<br />
A(z) =<br />
H 00 (z) −H 01 (z)<br />
]<br />
• Deci implementarea BF QMF se poate face prin schema<br />
(verificaţi partea <strong>de</strong> sinteză !)<br />
✓✏<br />
x ✲ ↓2 ✲H 00 (z)<br />
❄ ✒✑<br />
z −1 ✓✏<br />
✲ ↓2 ✲H 01 (z)<br />
✒✑<br />
−1<br />
✲<br />
✲H 01 (z)<br />
✣ ✣<br />
−1<br />
❫ ✲ ❫✲ H 00 (z)<br />
✓✏<br />
✲ ↑2<br />
✒✑❄<br />
z −1 ✓✏<br />
✲ ↑2 ✲❄<br />
✒✑<br />
y
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 42/75<br />
BF biortogonale<br />
• <strong>Bancuri</strong>le <strong>de</strong> <strong>filtre</strong> în care matricele polifază nu sunt<br />
ortogonale se numesc biortogonale<br />
• Presupunând RP, relaţia S(z)A(z) = z −τ I spune că<br />
matricele S(z) şi A(z) sunt ortogonale una pe cealaltă<br />
• In cazul RAP, clasificarea ortogonal-biortogonal se aplică<br />
prin extensie, <strong>de</strong>şi formal incorect<br />
• (Deci QMF ar intra la biortogonale . . . )<br />
• Filtrele 5/3 sunt un exemplu simplu <strong>de</strong> BF biortogonal
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 43/75<br />
Alte proprietăţi dorite ale BF<br />
• Fază liniară (<strong>filtre</strong>le au coeficienţi simetrici)<br />
◦ poate fi obţinută pentru BF biortogonale (dar nu e<br />
obligatorie)<br />
◦ imposibilă pentru BF ortogonale<br />
• H 0 (z) nu schimbă semnalul constant şi taie complet<br />
semnalul <strong>de</strong> frecvenţă maximă (−1) n , adică H 0 (1) = 1,<br />
H 0 (−1) = 0<br />
• H 1 (z) are proprietăţi inverse: H 1 (1) = 0, H 1 (−1) = 1<br />
• Condiţii similare pentru F 0 (z), F 1 (z) (cu 2 în loc <strong>de</strong> 1)<br />
• Aceste condiţii pot fi impuse pentru toate tipurile <strong>de</strong> BF<br />
• Justificarea lor: construcţia <strong>de</strong> wavelets
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 44/75<br />
Proprietăţi generale—recapitulare<br />
• <strong>Bancuri</strong>le <strong>de</strong> <strong>filtre</strong> cu două canale au următoarele proprietăţi<br />
referitoare la fază, întârziere şi reconstrucţie perfectă<br />
Tip Relaţii Fază D RP<br />
Ort. H 1 (z) = −z −N H 0 (−z −1 ) NL N RP, RAP<br />
QMF H 1 (z) = H 0 (−z) L, NL ≤ N RAP<br />
Biort. H 0 (z), H 1 (z) L, NL ≤ N 0+N 1<br />
2<br />
RP, RAP<br />
• De obicei se doreşte întârziere mică a BF<br />
• Cu RAP, se poate obţine şi întârziere fracţionară
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 45/75<br />
Lifting<br />
• Schemă <strong>de</strong> lifting în doi paşi<br />
✓✏<br />
✓✏<br />
x ✲<br />
y<br />
↓2<br />
0<br />
✲ ↑2<br />
✒✑ +<br />
❄ ❄ ✻<br />
− ✻ ❄ ✒✑❄<br />
z −1 Λ 1 (z) Λ 2 (z) Λ 2 (z) Λ 1 (z) z<br />
✓✏<br />
−1 ✓✏<br />
✲ +<br />
↓2 ❄ ✻ y 1 ✻ − ❄✲<br />
↑2 ✲❄<br />
✒✑<br />
✒✑<br />
• Acest BF posedă RP prin construcţie !<br />
• Orice număr <strong>de</strong> paşi este acceptabil<br />
• Filtrele Λ i (z) sunt <strong>de</strong> obicei FIR şi scurte<br />
˜x<br />
• Orice BF FIR poate fi reprezentat prin lifting<br />
• De obicei, această reprezentare este cea mai eficientă<br />
pentru implementare
Relaţia cu matricea polifază<br />
• Matricea polifază <strong>de</strong> analiză este<br />
A(z) =<br />
[<br />
1 Λ 2<br />
0 1<br />
] [<br />
1 0<br />
Λ 1 1<br />
]<br />
=<br />
[<br />
1 + Λ 2 Λ 1 Λ 2<br />
Λ 1 1<br />
]<br />
• Matricea polifază <strong>de</strong> analiză a <strong>filtre</strong>lor 5/3 (scalată şi<br />
<strong>de</strong>plasată în timp, ceea ce se poate uşor realiza cu blocuri<br />
<strong>de</strong> întârziere suplimentare) se obţine cu<br />
Λ 1 (z) = − 1 2 (1 + z−1 ), Λ 2 (z) = 1 4 (1 + z) PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 46/75
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 47/75<br />
Transformări reversibile prin lifting<br />
• Schema <strong>de</strong> lifting rămâne RP chiar dacă blocurile<br />
componente sunt neliniare !<br />
• Un BF este reversibil (integer-to-integer)<br />
◦ dacă semnalul <strong>de</strong> intrare x[n] are valori întregi, atunci<br />
semnalele din sub-benzi, y 0 [n] şi y 1 [n] au valori întregi<br />
◦ dacă posedă RP<br />
• Utilitate: codare fără pier<strong>de</strong>ri
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 48/75<br />
Lifting cu rotunjire<br />
• Dacă Λ 1 (z) este FIR, primul pas <strong>de</strong> lifting este<br />
y {1}<br />
1 [n] = y {0}<br />
1 [n] + ∑ i λ 1[i]y {0}<br />
0 [n − i]<br />
• Pentru a obţine valori întregi atunci când intrarea are valori<br />
întregi, se rotunjeşte rezultatul la cel mai apropiat întreg<br />
• Deci, se înlocuieşte expresia <strong>de</strong> mai sus prin<br />
y {1}<br />
1 [n] = y {0}<br />
1 [n] +<br />
⌊<br />
1<br />
2 + ∑ ⌋<br />
i λ 1[i]y {0}<br />
0 [n − i]<br />
• Facând aceeaşi modificare pentru toţi paşii, se obţine o<br />
transformare reversibilă<br />
• În "frecvenţă" (transformarea fiind neliniară, nu se poate<br />
vorbi <strong>de</strong>spre frecvenţă în sens propriu), transformarea nu<br />
este <strong>de</strong>parte <strong>de</strong> proprietăţile BF original
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 49/75<br />
DWT—transformarea wavelet discretă<br />
• Formal, DWT este obţinută prin prelucrarea (recursivă a)<br />
semnalului din sub-banda joasă cu acelaşi BF<br />
• Deci, semnalul y 0 este prelucrat <strong>de</strong> BF <strong>de</strong> analiză,<br />
obţinându-se semnalele y 00 şi y 01<br />
• Mai <strong>de</strong>parte, y 00 este prelucrat <strong>de</strong> BF <strong>de</strong> analiză,<br />
obţinându-se semnalele y 000 şi y 001 , etc.<br />
• Practic se folosesc doar câteva nivele (trei, mai sus)<br />
• Reconstrucţia se face cu BF <strong>de</strong> sinteză, în ordine inversă (şi<br />
cu grijă la sincronizare, datorită întârzierilor posibil diferite)<br />
• În cazul unor <strong>filtre</strong> i<strong>de</strong>ale, benzile <strong>de</strong> frecvenţă sunt: [0,π/8]<br />
pentru y 000 , [π/8,π/4] pentru y 001 , [π/4,π/2] pentru y 01 ,<br />
[π/2,π] pentru y 1<br />
• Mai multe <strong>de</strong>spre wavelets—în semestrul viitor
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 50/75<br />
Proiectarea bancurilor <strong>de</strong> <strong>filtre</strong><br />
• Tipuri <strong>de</strong> meto<strong>de</strong><br />
◦ Rapi<strong>de</strong> şi simple, care nu garanteaza un rezultat optim<br />
din nici un punct <strong>de</strong> ve<strong>de</strong>re<br />
◦ Bazate pe optimizare<br />
• In general, doar optimizarea BF ortogonale poate fi<br />
formulată ca o problemă convexă (obţinându-se <strong>de</strong>ci BF<br />
optim pentru probleme <strong>de</strong> dimensiuni mo<strong>de</strong>rate—gradul<br />
<strong>filtre</strong>lor <strong>de</strong> ordinul sutelor)<br />
• Pentru <strong>filtre</strong>le QMF şi biortogonale se utilizează meto<strong>de</strong> <strong>de</strong><br />
optimizare locală (iniţializate "inteligent")<br />
• BF ortogonale şi QMF sunt caracterizate <strong>de</strong> un singur filtru,<br />
iar cele biortogonale <strong>de</strong> două; optimizarea acestor <strong>filtre</strong><br />
produce rezultate optime şi pentru celelalte<br />
• Discutăm doar cazul <strong>filtre</strong>lor FIR
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 51/75<br />
Criterii <strong>de</strong> optimizare (1)<br />
• Optimizarea unui filtru trece-jos H(z) se poate face prin<br />
minimizarea energiei în banda <strong>de</strong> oprire<br />
E 2 =<br />
∫ π<br />
ω s<br />
|H(ω)| 2 dω<br />
• Banda <strong>de</strong> oprire este [ω s ,π], cu ω s puţin mai mare <strong>de</strong>cât π/2<br />
• Notăm h = [h 0 h 1 ... h N ] T vectorul coeficienţilor filtrului<br />
• Energia în banda <strong>de</strong> oprire poate fi scrisă în forma pătratică<br />
E 2 = h T Ch<br />
• Matricea C este Toeplitz, simetrică şi pozitiv <strong>de</strong>finită, <strong>de</strong>ci<br />
E 2 este funcţie convexă <strong>de</strong> h<br />
• Elementul <strong>de</strong> pe diagonala k este ∫ π<br />
ω s<br />
cos(kω)dω
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 52/75<br />
Criterii <strong>de</strong> optimizare (2)<br />
• Pentru fitrele trece-sus, banda <strong>de</strong> oprire este [0,ω s ], cu ω s<br />
puţin mai mic <strong>de</strong>cât π/2<br />
• Un criteriu alternativ este cel minimax, în care se<br />
minimizează valoarea maximă a răspunsului în frecvenţă în<br />
banda <strong>de</strong> oprire<br />
• Criteriul <strong>de</strong> minimizat este (convex !)<br />
E m = max<br />
ω∈[ω s ,π] |H(ω)|<br />
• Minimizarea energiei este în general mai simplă şi (uneori)<br />
se poate face exact<br />
• Minimizarea erorii maxime este mai dificilă; se poate face<br />
◦ exact, utilizând programarea semi<strong>de</strong>finită<br />
◦ aproximativ, prin discretizare
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 53/75<br />
Restricţii<br />
• În afara RP (sau RAP), celelalte restricţii ale problemei <strong>de</strong><br />
optimizare au fost menţionate anterior<br />
• Faza liniară reduce complexitatea problemei (dar nu şi pe<br />
cea a găsirii soluţiei), prin reducerea numărului <strong>de</strong> variabile<br />
(coeficienţii filtrului sunt simetrici)<br />
• Impunerea unei rădăcini în e.g. z = −1 se face punând<br />
H(z) = (1 + z −1 )Ĥ(z)<br />
• Coeficienţii lui Ĥ(z) <strong>de</strong>vin variabilele problemei <strong>de</strong><br />
optimizare<br />
• Impunerea unei valori e.g. H(0) = 1 produce o restricţie<br />
liniară<br />
• Deci doar RP produce dificultăţi
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 54/75<br />
Proiectarea BF ortogonale<br />
• BFO <strong>de</strong>pin<strong>de</strong> <strong>de</strong> un singur filtru, H 0 (z) (FIR, <strong>de</strong> ordin N<br />
impar)<br />
• Notând P(z) = H 0 (z)H 0 (z −1 ), condiţia <strong>de</strong> RP este p 2l = δ l ,<br />
∀l = 0 : (N − 1/2)<br />
• Se observă că P(ω) = |H(ω)| 2 ≥ 0, ∀ω<br />
• Notăm p = [p 0 p 1 p 2 ... p N ] T (P(z) e simetric)<br />
• Energia în banda <strong>de</strong> oprire este<br />
E 2 =<br />
∫ π<br />
ω s<br />
|H(ω)| 2 dω =<br />
∫ π<br />
ω s<br />
P(ω)dω = c T p<br />
un<strong>de</strong> c 0 = π − ω s şi<br />
c k = 2 ∫ π<br />
ω s<br />
cos(kω)dω = − 2sin(kω s)<br />
k
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 55/75<br />
Problema <strong>de</strong> optimizare BFO<br />
• Se obţine următoarea problemă <strong>de</strong> optimizare<br />
min c T p<br />
s.t. p 2l = δ l , l = 0 : (N − 1/2)<br />
P(ω) ≥ 0, ∀ω<br />
(9)<br />
• După rezolvarea (9), H 0 (z) se obţine prin factorizare<br />
spectrală (discutată mai târziu)<br />
• Dificultatea <strong>de</strong>vine acum condiţia <strong>de</strong> pozitivitate (altfel<br />
criteriul şi prima restricţie sunt liniare)<br />
• Totuşi, problema <strong>de</strong> optimizare este convexă (mulţimea<br />
polinoamelor trigonometrice pozitive este convexă)<br />
• Vom prezenta două variante <strong>de</strong> rezolvare<br />
◦ aproximativă (propusă iniţial)<br />
◦ exactă, utilizând SDP
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 56/75<br />
Optimizare aproximativă a BFO<br />
• I<strong>de</strong>ea originară (potrivită utilizării unui criteriu minimax): se<br />
proiectează ˜P(ω) în sens minimax, impunând condiţia<br />
˜p 2l = δ l<br />
• Se obţine | ˜P(ω)| ≤ ε, ∀ω ∈ [ω s ,π]<br />
• Atunci P(z) = ˜P(z) + ε ≥ 0, ∀ω (ilustrarea răspunsului în<br />
frecvenţă, la tablă)<br />
• Evi<strong>de</strong>nt, ε poate fi <strong>de</strong>terminat doar aproximativ, <strong>de</strong>ci în<br />
practică se alege o valoare mai mare <strong>de</strong>cât cea necesară<br />
pentru a obţine pozitivitatea
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 57/75<br />
Variantă cu discretizare<br />
• Versiune evoluată: se rezolvă (9) prin discretizare<br />
• Se impune condiţia <strong>de</strong> pozitivitate pe o grilă <strong>de</strong> I + 1<br />
frecvenţe ω i = iπ/K<br />
• Se obţine o problemă <strong>de</strong> programare liniară<br />
• Totuşi soluţia ˆP(ω) obţinută poate fi negativă (şi <strong>de</strong> obicei<br />
este) între punctele <strong>de</strong> discretizare<br />
• Deci din nou trebuie adăugată o constantă pozitivă mică la<br />
ˆP(z) (<strong>de</strong> obicei ajustând valoarea adunată până când este<br />
posibilă factorizarea spectrală)<br />
• În concluzie, nu se poate garanta optimalitatea soluţiei
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 58/75<br />
Spre rezolvarea exactă<br />
• Notăm ψ(z) = [1 z z 2 ... z N ] T<br />
• Dacă P(z) = H(z)H(z −1 ), atunci putem scrie<br />
P(z) = ψ(z −1 ) T h · h T ψ(z) = h T Ψ(z)h (10)<br />
un<strong>de</strong><br />
Ψ(z) = ψ(z −1 )ψ(z) T =<br />
⎡<br />
⎢<br />
⎣<br />
1 z z 2 ... z N<br />
z −1 1 z<br />
. .. z N−1<br />
.<br />
. .. . .. . .. .<br />
.<br />
. .. . .. 1 z<br />
z −N ... ... z −1 1<br />
⎤<br />
⎥<br />
⎦<br />
(11)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 59/75<br />
Parametrizarea polinoamelor trigonometrice pozitive<br />
• Teoremă: un polinom P(z) este pozitiv (adică P(ω) ≥ 0, ∀ω)<br />
dacă şi numai dacă există o matrice pozitiv <strong>de</strong>finită Q <strong>de</strong><br />
dimensiune (N + 1) × (N + 1) astfel încât<br />
p k = tr[Θ k Q] (12)<br />
• Matricea Θ k este Toeplitz elementară, cu 1 pe diagonala k<br />
şi zero în rest<br />
• De exemplu, pentru N = 2<br />
Θ 1 =<br />
⎡<br />
⎢<br />
⎣<br />
0 1 0<br />
0 0 1<br />
⎤<br />
⎥<br />
⎦, Θ −2 =<br />
⎡<br />
⎢<br />
⎣<br />
0 0 0<br />
0 0 0<br />
⎤<br />
⎥<br />
⎦<br />
0 0 0<br />
1 0 0<br />
• De ce e (12) bună Pentru că relaţia dintre coeficienţii lui<br />
P(z) şi elementele lui Q este liniară
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 60/75<br />
Observaţie preliminară<br />
• Observăm întâi că (12) este echivalentă cu<br />
• Într-a<strong>de</strong>văr<br />
P(z) =<br />
= tr<br />
P(z) = ψ(z −1 ) T Qψ(z) (13)<br />
N∑<br />
k=−N<br />
p k z k (12) =<br />
[( N<br />
∑<br />
k=−N<br />
N∑<br />
k=−N<br />
Θ k z k )<br />
Q<br />
tr[Θ k Q]z k<br />
= tr [Ψ(z)Q] = tr [ ψ(z −1 )ψ(z) T Q ]<br />
= ψ(z) T Qψ(z −1 ) = ψ(z −1 ) T Qψ(z)<br />
]
Demonstraţie<br />
• "⇒": dacă P(z) este pozitiv, atunci admite factorizare<br />
spectrală, <strong>de</strong>ci relaţia (10) e a<strong>de</strong>vărată<br />
• Din (10) rezultă că relaţia (13), <strong>de</strong>ci şi (12), este a<strong>de</strong>vărată<br />
pentru Q = hh T<br />
• "⇐": dacă (12) are loc pentru Q ≽ 0, atunci din (13) rezultă<br />
că<br />
P(ω) = ψ(e −jω ) T Qψ(e jω ) = ψ(e jω ) H Qψ(e jω ) ≥ 0, ∀ω<br />
• Deci polinomul este pozitiv, Q.E.D.<br />
• Completare: în cazul în care polinomul P(z) are coeficienţi<br />
complecşi, dar ia valori reale pe cercul unitate (<strong>de</strong>ci<br />
p −k = p ∗ k ), teorema este valabilă cu Q hermitică PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 61/75
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 62/75<br />
Optimizarea BFO—problema SDP<br />
• Folosind parametrizarea (12), problema (9) capătă forma<br />
min c T p<br />
s.t. p 2l = δ l , l = 0 : (N − 1/2)<br />
p k = tr[Θ k Q], Q ≽ 0<br />
(14)<br />
• Aceasta este o problemă SDP<br />
• După rezolvarea ei, filtrul H 0 (z) se calculează prin<br />
factorizare spectrală<br />
• Problema (14) se poate rezolva în timp rezonabil pentru N<br />
<strong>de</strong> ordinul sutelor
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 63/75<br />
Factorizare spectrală<br />
• Teoremă (existenţa factorizării spectrale): dacă<br />
P(z) = ∑ N<br />
k=−N p kz k , cu p −k = p k , este pozitiv pe cercul<br />
unitate (P(ω) ≥ 0, ∀ω), atunci există H(z) = ∑ N<br />
k=0 h kz −k<br />
astfel încât P(z) = H(z)H(z −1 )<br />
• Demonstraţie: se bazează în esenţă pe faptul că dacă<br />
rădăcinile lui P(z) (care sunt simetrice faţă <strong>de</strong> cercul<br />
unitate, datorită simetriei coeficienţilor) sunt pe cerc, atunci<br />
ele sunt duble<br />
• Atunci H(z) se poate alege <strong>de</strong> fază minimă, având toate<br />
rădăcinile lui P(z) din cercul unitate şi jumătate din cele <strong>de</strong><br />
pe cerc<br />
• În general, H(z) poate fi ales în mai multe feluri (regula <strong>de</strong><br />
alocare: dacă H(z) are o rădăcină, atunci H(z −1 ) are<br />
simetrica ei)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 64/75<br />
Algoritmi <strong>de</strong> factorizare spectrală<br />
• Cel mai simplu: se calculează rădăcinile lui P(z), dintre<br />
care se aleg jumătate ca mai sus<br />
• Dezavantaj: <strong>de</strong>stul <strong>de</strong> dificil <strong>de</strong> a <strong>de</strong>ci<strong>de</strong> numeric<br />
multiplicitatea rădăcinilor <strong>de</strong> pe cerc (mai ales că <strong>de</strong> multe<br />
ori nu se ştie a priori dacă P(z) e pozitiv)<br />
• Factorizarea spectrală nu este o problemă bine condiţionată<br />
numeric, <strong>de</strong>ci orice algoritm poate înâmpina probleme<br />
• Alţi algoritmi<br />
◦ Newton-Raphson: simplu şi neaşteptat <strong>de</strong> precis<br />
◦ Utilizând SDP (relativ imprecisă şi lentă)<br />
◦ Cu ecuaţia Riccati (precisă, dar lentă pentru N mare)<br />
◦ Metoda Bauer (factorizare Cholesky a unor matrice<br />
Toeplitz din ce în ce mai mari)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 65/75<br />
<strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> cu mai multe canale<br />
• Schema generală<br />
✗✔ ✗✔<br />
x y<br />
✲ ✲ 0<br />
H 0 (z) ↓R 0<br />
✲ ✲<br />
˜x 0<br />
F 0 (z)<br />
✖✕ ✖✕<br />
✲<br />
✲<br />
H 1 (z)<br />
.<br />
H M−1 (z)<br />
✗✔ ✗✔<br />
y<br />
✲ 1<br />
↓R 1<br />
✲ ✲<br />
˜x 1<br />
↑R 1 F 1 (z)<br />
✖✕ ✖✕<br />
.<br />
✗✔ ✗✔<br />
y<br />
✲ M−1<br />
✲↑R M−1<br />
✲ F M−1 (z)<br />
✖✕ ✖✕<br />
↓R M−1<br />
↑R 0<br />
˜x M−1<br />
✲<br />
❄<br />
˜x ✲
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 66/75<br />
Definiţii şi notaţii<br />
• M—numărul <strong>de</strong> canale<br />
• BF este eşantionat critic dacă<br />
M−1<br />
∑<br />
i=0<br />
1<br />
R i<br />
= 1<br />
• În acest caz, numărul <strong>de</strong> eşantioane din sub-benzi este<br />
egal cu numărul <strong>de</strong> eşantioane <strong>de</strong> intrare<br />
• BF este supraeşantionat dacă mai sus e semnul "≥".<br />
Atunci, numărul <strong>de</strong> eşantioane din sub-benzi este mai mare<br />
<strong>de</strong>cât la intrare<br />
• (Semnul "≤" nu apare practic, RP nefiind posibilă)<br />
• BF este uniform dacă R i = R, ∀i = 0 : M − 1<br />
• Altfel, BF este neuniform
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 67/75<br />
Răspunsuri în frecvenţă<br />
• Într-un BF uniform banda <strong>de</strong> trecere a <strong>filtre</strong>lor H i (z) şi F i (z)<br />
este (tipic) [iπ/M,(i + 1)π/M]<br />
• Într-un BF neuniform, benzile <strong>de</strong> trecere pot avea diverse<br />
lăţimi (vezi exemplul DWT, în care apărea un BF neuniform<br />
cu 4 canale)<br />
• Ilustrarea răspunsurilor—la tablă !
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 68/75<br />
Funcţii <strong>de</strong> transfer<br />
• Similar cu cazul M = 2, relaţia <strong>de</strong> intrare-ieşire este<br />
˜X(z) =<br />
M−1<br />
∑<br />
i=0<br />
F i (z) 1 R∑<br />
i −1<br />
R i<br />
l=0<br />
H i (zw l R i<br />
)X(zw l R i<br />
)<br />
• Pentru BF uniforme, relaţia <strong>de</strong>vine<br />
˜X(z) = T 0 (z)X(z) + ∑ R−1<br />
l=1 T l(z)X(zw l R ) (15)<br />
• Funcţia <strong>de</strong> transfer <strong>de</strong> distorsie este<br />
T 0 (z) = 1 R<br />
∑ M−1<br />
i=0 H i(z)F i (z) (16)<br />
• Funcţiile <strong>de</strong> transfer <strong>de</strong> aliere sunt<br />
T l (z) = ∑ M−1<br />
i=0 F i(z)H i (zwR l ), l = 1 : R − 1 (17)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 69/75<br />
Condiţii <strong>de</strong> reconstrucţie perfectă<br />
• Condiţiile <strong>de</strong> RP sunt<br />
T 0 (z) = z −D , T l (z) = 0, l = 1 : R − 1<br />
• În general ele sunt greu <strong>de</strong> în<strong>de</strong>plinit (simultan cu obţinerea<br />
<strong>de</strong> răspunsuri în frecvenţă bune ale <strong>filtre</strong>lor), fiind înlocuite<br />
<strong>de</strong> diverse aproximaţii<br />
• Totuşi, libertate mai mare <strong>de</strong>cât în cazul M = 2, <strong>de</strong> exemplu<br />
se poate obţine ortogonalitate cu <strong>filtre</strong> cu fază liniară
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 70/75<br />
Reprezentarea polifază<br />
• Ne ocupăm în continuare <strong>de</strong> BF uniforme critic eşantionate<br />
(<strong>de</strong>ci R = M)<br />
• Reprezentarea polifază <strong>de</strong> tip I (pentru BF <strong>de</strong> analiză)<br />
H i (z) =<br />
M−1<br />
∑<br />
j=0<br />
z −j H ij (z M )<br />
• Matricea polifază <strong>de</strong> analiză este A(z) = [H ij (z)] i,j=0:M−1<br />
• Reprezentarea polifază <strong>de</strong> tip II (pentru BF <strong>de</strong> sinteză)<br />
F i (z) =<br />
M−1<br />
∑<br />
j=0<br />
z M−j−1 F ji (z M )<br />
• Matricea polifază <strong>de</strong> sinteză este S(z) = [F ij (z)] i,j=0:M−1
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 71/75<br />
BF în formă polifază<br />
• Utilizând i<strong>de</strong>ntităţile nobile, se obţine schema <strong>de</strong> mai jos<br />
• Condiţia <strong>de</strong> RP este S(z)A(z) = z −τ , caz în care rezultă<br />
D = M(τ + 1) − 1<br />
x<br />
✓✏<br />
✲ ↓M ✲<br />
❄ ✒✑<br />
z −1<br />
✓✏<br />
✲ ↓M ✲<br />
❄ ✒✑<br />
z −1<br />
❄<br />
❄<br />
z −1<br />
.<br />
✓✏<br />
✲ ↓M ✲<br />
✒✑<br />
A(z)<br />
y 0<br />
y 1<br />
✲<br />
✲<br />
y M−1<br />
✲<br />
S(z)<br />
✓✏<br />
✲ ↑M<br />
✒✑❄<br />
z −1 ✓✏<br />
✲ ↑M ✲<br />
✒✑❄<br />
.<br />
z −1<br />
❄<br />
❄<br />
z −1<br />
✓✏<br />
✲ ↑M ❄✲<br />
˜x<br />
✒✑
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 72/75<br />
<strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> modulate<br />
• Deoarece proiectarea şi implementarea a 2M <strong>filtre</strong> diferite<br />
este complicată, se preferă utilizarea BF modulate, care<br />
sunt <strong>de</strong>finite <strong>de</strong> unul sau două <strong>filtre</strong> prototip<br />
• Notăm H(z) şi F(z) cele două <strong>filtre</strong> prototip, ambele FIR <strong>de</strong><br />
ordin N<br />
• Notăm h[n], f[n] coeficienţii lor<br />
• Un banc <strong>de</strong> <strong>filtre</strong> cos modulat are <strong>filtre</strong>le <strong>de</strong>finite prin<br />
h i [n] = h[n]cos [( i + 1 2) π<br />
M<br />
f i [n] = f[n]cos [( i + 1 2) π<br />
M<br />
( ) ]<br />
n −<br />
D<br />
2 + (−1)<br />
i π<br />
( ) 4]<br />
n −<br />
D − (−1)<br />
i π<br />
2<br />
4<br />
• D este întârzierea BF<br />
• Uneori se ia H(z) = F(z), pentru simplificarea proiectării<br />
(dar cu rezultate în principiu mai proaste)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 73/75<br />
Comentarii<br />
• Răspunsurile în frecvenţă—la tablă<br />
• BF se poate implementa folosind DCT (<strong>de</strong> altfel forma<br />
prototipurilor este special aleasă în acest scop)<br />
• Problema <strong>de</strong> proiectare: găsirea prototipurilor astfel încât să<br />
se obţină RAP<br />
• Întârzierea poate fi aleasă în intervalul [M,2N − M]<br />
• Optimizarea este în general dificilă (problema nu e nici pe<br />
<strong>de</strong>parte convexă)
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 74/75<br />
BF modulate prin DFT<br />
• BF DFT modulate sunt <strong>de</strong>finite prin<br />
h i [n] = h[n]exp(jπin/M)<br />
f i [n] = f[n]exp(jπin/M)<br />
• Interpretarea în frecvenţă este acum evi<strong>de</strong>ntă<br />
• Dacă H(z) are coeficienţi reali şi banda <strong>de</strong> trecere egală cu<br />
[−π/2M,π/2M], atunci H i (z) are banda <strong>de</strong> trecere<br />
<strong>de</strong>plasată cu iπ/M, adică <strong>de</strong> lăţime π/M, centrată în iπ/M<br />
• Filtrele au coeficienţi complecşi, în general, <strong>de</strong>ci chiar dacă<br />
semnalul <strong>de</strong> intrare e real, semnalele din sub-benzi sunt<br />
complexe<br />
• Totuşi, acest BF se poate implementa eficient<br />
• Singura problemă: nu este un BF uniform pe [0,π] !
PAS cap. 1: <strong>Bancuri</strong> <strong>de</strong> <strong>filtre</strong> – p. 75/75<br />
BF GDFT modulate<br />
• Generalizarea bancurilor <strong>de</strong> <strong>filtre</strong> DFT se face prin alegerea<br />
h i [n] = h[n]exp [jπ(i + i 0 )(n + n 0 )/M]<br />
f i [n] = f[n]exp [jπ(i + i 0 )(n + n 0 )/M]<br />
• Dacă H(z) are coeficienţi reali şi banda <strong>de</strong> trecere egală cu<br />
[−π/2M,π/2M], atunci H i (z) are banda <strong>de</strong> trecere <strong>de</strong><br />
lăţime π/M, centrată în (i + i 0 )π/M<br />
• Un BF uniform pe [0,π] se obţine alegând i 0 = 1/2<br />
• Parametrul n 0 influenţează doar întârzierea