13.01.2015 Views

Capitolul 1: Bancuri de filtre

Capitolul 1: Bancuri de filtre

Capitolul 1: Bancuri de filtre

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!