Úvod do číslicového zpracování signálů - UCZ
Cvičení 3
Řád a mezní kmitočet IIR filtru | Návrhy filtrů | DP | HP | PP | PZ  | Řešený příklad | Filtry libovolného tvaru

kodovani ISO 8859-2
Číslicové filtry s nekonečnou impulsovou odezvou (IIR)
 
Obr.1: Blokové schéma číslicového filtru.



Návrhy číslicových IIR filtrů založených na analogových prototypech
Obr.2: Zvlnění v propustném pásmu rp a odstup nepropustného pásma rs.

Zvlnění se zadává v dB; pozor na notaci dekadických logaritmů !


Určení řádu IIR filtru a mezních kmitočtů

Vstupní parametry :

rp........zvlnění v propustném pásmu (passband ripple)
rs........odstup nepropustného pásma (stopband ripple)
wp.......normovaný hraniční kmitočet specifikující propustné pásmo (v případě propustí vektor dvou kmitočtů)
ws.......normovaný hraniční kmitočet specifikující nepropustné pásmo (v případě propustí a zádrží vektor dvou kmitočtů)
Výstupní parametry : N........ řád filtru
wn.......normovaný mezní (hraniční, kritický, zlomový) kmitočet - pokles o 3 dB; v případě pásmových propustí vektor dvou normovaných mezních kmitočtů specifikující dané pásmo
Použití (viz úloha 3.2) :
[N,wn]=buttord(wp,ws,rp,rs)
[N,wn]=cheb1ord(wp,ws,rp,rs)
[N,wn]=cheb2ord(wp,ws,rp,rs)
[N,wn]=ellipord(wp,ws,rp,rs)

Návrhy filtrů požadovaného řádu a mezních kmitočtů

Vstupní parametry :

N.........řád filtru
rp........zvlnění v propustném pásmu (passband ripple)
rs.........odstup nepropustného pásma (stopband ripple)
wn.......normovaný mezní (hraniční, kritický, zlomový) kmitočet - pokles o 3 dB; v případě propustí a zádrží vektor dvou normovaných mezních kmitočtů specifikující dané pásmo
Výstupní parametry : b.........vektor koeficientů vstupních vzorků standardní diferenční rovnice
a.........vektor koeficientů výstupních vzorků standardní diferenční rovnice

Pozn.: Tyto koeficienty jsou rovněž používány ve funkcích freqz, filter a v dalších.

viz úloha 3.1
Návrh dolních propustí (viz úloha 3.2) [b,a]=butter(N,wn)
[b,a]=cheby1(N,rp,wn)
[b,a]=cheby2(N,rs,wn)
[b,a]=ellip(N,rp,rs,wn)
Návrh horních propustí (viz úloha 3.3) [b,a]=butter(N,wn,'high')
[b,a]=cheby1(N,rp,wn,'high')
[b,a]=cheby2(N,rs,wn,'high')
[b,a]=ellip(N,rp,rs,wn,'high')
Návrh pásmových propustí (viz úloha 3.4) [b,a]=butter(N,[wn1 wn2])
[b,a]=cheby1(N,rp,[wn1 wn2])
[b,a]=cheby2(N,rs,[wn1 wn2])
[b,a]=ellip(N,rp,rs,[wn1 wn2])   [wn1 wn2].......vektor dvou normovaných mezních kmitočtů specifikujících propustné pásmo
Návrh pásmových zádrží (viz úloha 3.5) [b,a]=butter(N,[wn1 wn2],'stop')
[b,a]=cheby1(N,rp,[wn1 wn2],'stop')
[b,a]=cheby2(N,rs,[wn1 wn2],'stop')
[b,a]=ellip(N,rp,rs,[wn1 wn2],'stop')   [wn1 wn2].......vektor dvou normovaných mezních kmitočtů specifikujících nepropustné pásmo

Úloha 3.1

Uveďte diferenční rovnici rezonátoru s následující přenosovou funkcí. Určete vektory koeficientů b a a.


Úloha 3.2

Určete optimální řád a zlomový kmitočet pro dolní propust s následujícími požadavky:

Vyberte a realizujte filtr splňující uvedené požadavky s nejnižším možném řádem. Zobrazte odpovídající kmitočtové charakteristiky.
Řešení :

Nejdříve určíme řád filtru a jeho zlomový kmitočet.

fv = 8000;      % vzorkovaci frekvence
fp = 800;       % propustne pasmo
fs = 1000;      % nepropustne pasmo
rp = 1;         % zvlneni v propustnem pasmu
rs = 20;        % odstup nepropustneho pasma

wp = fp/(fv/2); % normovani k Nyquistove frekvenci
ws = fs/(fv/2);
[n,wn] = buttord(wp,ws,rp,rs) 
[n,wn] = cheb1ord(wp,ws,rp,rs) 
[n,wn] = cheb2ord(wp,ws,rp,rs) 
[n,wn] = ellipord(wp,ws,rp,rs)
Nejmenší řád vyžaduje eliptický filtr (n = 4). Pro něj nyní navrhneme hodnoty koeficientů a, b.
[b,a] = ellip(n,rp,rs,wn);
Pomocí funkce freqz provedeme rozbor frekvenčních charakteristik navrhnuteho filtru.
% Frekvencni charakteristika
N = 1000;
[h,w] = freqz(b,a,N,fv);
        % N... pocet bodu, pro ktere se charakteristika pocita
        % h... prenosova funkce (komplexni !)
        % w... frekvencni osa

% Prenos
A = abs(h);
A_dB = 20*log10(A);

% Faze, nutno rozbalit
faze = angle(h);
faze = unwrap(faze);    % Korekce faze

% Urcime fazove zpozdeni
[Gd,F] = grpdelay(b,a,N,fv);
Ještě charakteristiky vykreslíme:
% Zobrazeni charakteristik
subplot(2,2,1); plot(w,A); title('Elipticky filtr, prenos');
subplot(2,2,3); plot(w,A_dB); title('Prenos [dB]');
subplot(2,2,2); plot(w,faze); title('Faze');
subplot(2,2,4); plot(F,Gd); title('Skupinove zpozdeni');
Obr.3: Charakteristiky filtru.


Úloha 3.3

Určete optimální řád a zlomový kmitočet pro horní propust s následujícími požadavky:

Realizujte Butterworthův filtr optimálního řádu a zobrazte kmitočtové charakteristiky v lineárních a semilogaritmických souřadnicích.

Úloha 3.4

Navrhněte pásmovou propust jako Čebyševův filtr I. typu optimální řádu a splňující požadavky:


Úloha 3.5

Navrhněte pásmovou zádrž jako Čebyševův filtr II. typu splňující následující požadavky:


Návrh filtrů libovolného tvaru (včetně vícepásmových propustí)

Aproximace funkce lineární po úsecích racionální lomenou funkcí metodou nejmenších čtverců

[b,a]=yulewalk(N,f,m) Vstupní parametry : N........řád filtru
f..........vektor normovaného kmitočtu (musí začínat 0 a končit 1, t.j. Nyquistovým kmitočtem)
m.........vektor amplitud (musí odpovídat jednotlivým kmitočtům; délka vektorů f a m musí být stejná !)
Prvky obou vektorů (f, m) představují souřadnice specifikující amplitudovou charakteristiku.

Např.:

m = [0, 0, 1, 1, 0, 0, 1, 1, 0, 0];
f = [0, 0.1, 0.2, 0.4, 0.4, 0.5, 0.6, 0.8, 0.8, 1];
[b,a] = yulewalk(20,f,m);
Obr.4: Aproximace vícepásmové propusti funkcí yulewalk řádu 4 a 20 (plná čára).
viz úloha 3.6

Úloha 3.6

S použitím funkce yulewalk realizujte všechny typy filtrů uvedených v předcházejících příkadech.

a) dolní propust z úlohy 3.2
b) horní propust z úlohy 3.3
c) pásmovou propust z úlohy 3.4
d) pásmovou zádrž z úlohy 3.5
Obr.5: Navrhnuté filtry.


Úloha 3.7

S použitím funkce yulewalk realizujte vícepásmovou propust vyhovující požadavkům zadaným graficky.

Obr.6: Vícepásmová propust.

Tento text vznikl jako podklad pro cvičení z předmětu UCZ na katedře teorie obvodů ČVUT. Pro přípravu těchto stránek bylo využito informací z webových stránek Číslicové Signály a Systémy (CSS), kde je také možno najít další zajímavé informace :-)

Petr Prášek: xprasek@feld.cvut.cz 6.10.2001