Kapitola 7. Návrh číslicových filtrů Hraniční kmitočty propustného a nepropustného pásma jsou ve většině případů specifikovány v[hz] společně se vzorkovacím kmitočtem číslicového filtru. Návrhové algoritmy číslicových filtrů však vychází z číslicových úhlových kmitočtů. Proto před začátkem návrhu musí být výchozí hraniční kmitočty normovány vztahem(7.4). Příklad 7. Jsoudányhraničníkmitočtydolnípropusti f p =khz, f s =khzavzorkovací kmitočet f v =0kHz.Určetepříslušnéčíslicovéúhlovékmitočty. Řešení: ˆω p = ω p T= πf p f v = π 5 =0,684, ˆω s = ω s T= πf s f v = π 5 =,57. Přenosová funkce číslicových filtrů IIR má, stejně jako v případě analogových filtrů, tvar racionálně lomené funkce. Díky této podobnosti je možné vhodnou transformací analogové přenosové funkce, definované v rovině p, získat přenosovou funkci IIRvrovině z.tentozpůsobnávrhubýváoznačovánjakonepřímýnebotakéjako transformační. Na transformaci p z klademe dvě nutné podmínky, znázorněné I(p) p-rovina I(z) z-rovina 0 R(p) - R(z) na obrázku 7.. Obrázek 7.: Obecné požadavky na transformační předpis p z. Imaginární osa roviny p = jω se musí transformovat na jednotkovou kružnici vrovině z = e jˆω.tatopodmínkajenutná,abysezachovávalykmitočtové charakteristiky analogového filtru. 69
. Levá polorovina R(p) < 0 roviny p se musí transformovat dovnitř jednotkové kružnice z < roviny z. Tato podmínka zaručuje, že stabilní analogový filtr se bude transformovat na stabilní číslicový filtr. Užívanými transformačními metodami jsou:. invariantní impulsní odezva,. diskrétní aproximace derivace, 3. bilineární transformace. Nejčastěji se používá bilineární transformace. 7... Invariantní impulsní odezva Tato transformační metoda se týka vzájemné identifikace časových odezev filtru na jednotkový impuls. Pod pojmem invariantní impulsní odezva rozumíme, že k impulsníodezvě h a (t)známéhoanalogovéhofiltruhledámeimpulsníodezvučíslicovéhofiltru h d [n],kteráseshodujevokamžicíchvzorkování t=nt sanalogovou předlohou h d [n]=h a (nt). (7.5) To znamená, že rozklad analogové přenosové funkce na parciální zlomky s příslušnou impulsní odezvou H a (p)= N i= h a (t)=l {H a (p)}= k i p p i, (7.6) N k i e p it. (7.7) je nahrazen přenosovou funkcí číslicového filtru, jenž má shodnou impulsní odezvu vbodech t=ntatedy h d [n]=z {H d (z)}= Přenosová funkce takového číslicového filtru má potom tvar H d (z)= N i= i= N k i e p int, (7.8) i= k i e p it. (7.9) z Z předchozích vztahů i z obr.7.3 je zřejmé, že stabilní analogová přenosová funkce spólyvlevépolorovině R(p i ) <0setransformujenastabilníčíslicovoupřenosovou 70
jω p-rovina 3π/T π/t Kapitola 7. Návrh číslicových filtrů z-rovina I(z) e jˆω 0 -π/t σ - R(z) -3π/T Obrázek7.3:Zobrazeníroviny pnarovinu zpřitransformacipólů p i e p it funkci,jejížpólyjsou z i = e p it <.Kmitočtovácharakteristikačíslicovéhofiltru je rovna kmitočtové odezvě periodicky vzorkované analogové přenosové funkce atedy kde H d (e jˆω )= h a(0+) Jestliže je splněna podmínka + T n= h a (0+)= lim p p H a(p). ( H jˆω ) a T +jπ T n, (7.0) H a (jω) =0pro ω π T (7.) a h a (0+)=0 (7.) jsou kmitočtové odezvy analogové a číslicové přenosové funkce až na násobnou konstantu /T přibližně shodné H d (e jˆω ) = T H a(jˆω T )pro ω < π T. (7.3) Čitatel číslicové přenosové funkce musíme proto násobit vzorkovací periodou T. Podmínka(7.) může být splněna pro reálný filtr pouze přibližně. Podmínka(7.) budesplněna,pokudřádjmenovateleanalogovépřenosovéfunkce H a (p)jealespoň odvavyššínežřádčitatele. Popisovaná metoda dává dobré výsledky u transformací přenosových funkcí typu dolní a pásmová propust získaných Butterworthovou a Čebyševovou aproximací, při kterých jsou splněny obě podmínky(7.) a(7.). Metoda se nehodí pro transformace přenosových funkcí, které mají nulové body přenosu na konečných kmitočtech, jež jsou výsledkem inverzní Čebyševovy a Cauerovy transformace. Přenosové funkce se v těchto případech nekorektně transformují. Je to způsobeno rozkladem na parciální zlomky vztahem(7.6). Výhodou uvedené transformační metody je, že zachovává jak modulovou tak i fázovou kmitočtovou charakteristiku analogového filtru. 7
Příklad 7.3 Metodou invariantní impulsní odezvy navrhněte číslicový filtr. Pro transformaci použijtepřenosovoufunkci3.řádutypudolnípropustsω p =s (Butterworthovaaproximace).Použijtevzorkovacíkmitočet ω v =5s. H a (p)= p 3 + p + p+ Řešení: Jmenovatelpřenosovéfunkce H a (p)rozložímenasoučinkořenovýchčinitelůaprovedeme rozklad na parciální zlomky. H a (p)= (p+)(p+0,5+j0,86605)(p+0,5 j0,86605) = = 3 i= k i p p i = = p+ + 0,5+j0,88675 0,5 j0,88675 + p+0,5+j0,86605 p+0,5 j0,86605. Vypočítáme periodu vzorkování T= π = π ω v 5 =,5663706. Sestavímečíslicovoupřenosovoufunkci H d (z)pomocívztahu(7.9),kde H d (z)= + e p T = e,56637 =0,84609, e p T = e ( 0,5 j0,86605),56637 =0,47543 j0,47580, e p 3T = e ( 0,5+j0,86605),56637 =0,47543+j0,47580. 3 i= k i e p it z = 0,84609 z + 0,5+j0,88675 (0,47543 j0,47580)z + 0,5 j0,88675 (0,47543+j0,47580)z = = 0,309909759 z +0,365094 z z 3 0,77969780 z +0,455609 z 0,080059. Číslicovoupřenosovoufunkci H d (z)musímenakonecvynásobitvzorkovacíperiodou T,jakvyplývázevztahu(7.3) T H d (z)= 0,389444089 z +0,753376 z z 3 0,77969780 z +0,455609 z 0,080059. Program V prostředí Matlab navrhněte číslicový filtr metodou invariantní impulsní odezvy. Použijte stejné zadání jako v příkladu 7.3. Vypočítejte kmitočtovou a impulsní charakteristiku analogového a číslicového filtru a obě charakteristiky vykreslete podobně jako na obrázku 7.4. 7
Kapitola 7. Návrh číslicových filtrů Nové operátory a funkce použité v programu: impinvar konverze analogové přenosové funkce na číslicovou přenosovou funkci metodou invariantní impulsní odezvy Program vyžaduje Symbolic Math Toolbox a Signal Processing Toolbox. Vlastní program: fs=5/(*pi); [b,a]=butter(3,, s ) [bz,az] = impinvar(b,a,fs) f=linspace(0,fs,00); Ha=freqs(b,a,*pi*f); Hd=freqz(bz,az,f,fs); figure() subplot(,,) plot(f/fs,abs(ha), b,f/fs,abs(hd), g ) grid Hp=polysym(b)/polysym(a); ha=vpa(ilaplace(hp),5) t=linspace(0,5/fs,00); subplot(,,) plot(t*fs,subs(ha)) grid [hd,td]=impz(bz,az,6,fs); hold on stem(td*fs,hd*fs, g ) hold off 0.8 0.6 0.6 0.5 0.4 0.3 analog digital Hf 0.4 0. 0 0 0. 0.4 0.6 0.8 f/f v ht 0. 0. 0 0. 0 5 0 5 nt Obrázek 7.4: Porovnání kmitočtové charakteristiky a impulsní odezvy 73
7... Aproximace derivace Tato transformační metoda je založena na diskrétní aproximaci derivace spojité funkce, kterou je možné provést několika způsoby. Jednou z možností je náhrada první derivace první zpětnou diferencí podle vztahu dy dt t=nt y[n] y[n ] T, (7.4) kde T jevzorkovacíperioda, y[n]=y(nt)jsouvzorkyspojitéfunkcevbodech t=nt.postupnáhradyderivacebyldemonstrovánnaobrázku.7vkapitole.3., ve které byla také odvozena transformace pro druhou derivaci. Na vztah(7.4) může být aplikována Z-transformace, která vede na výsledek { } dy Z dt t=nt = z T Y(z). (7.5) Pokud dále užijeme vztah pro Laplaceovu transformaci derivace při nulových počátečních podmínkách { } dy L = p Y(p), (7.6) dt lze vyjádřit přímý transformační vztah mezi rovinami p a z ve tvaru p= z T = T z z. (7.7) Ze vztahu(7.7) je možné odvodit, jakým způsobem se transformuje imaginární osaroviny p=jω.zrovnice ( z= p T = jωt = + +jωt ) = ( +e jarctan(ωt)) (7.8) jωt vyplývá,žeprovšechna ω je z =,cožjerovnicekružnicesestředem v,opoloměru.totozobrazeníjeukázánonaobrázku7.5.jezřejmé,ženení jω p-rovina I(z) z-rovina 0 σ - R(z) Obrázek 7.5: Zobrazení roviny p na rovinu z při transformaci zpětnou diferencí splněnaprvníznutnýchpodmínek kladenýchnatransformaci p z abude vizzačátekkapitoly7. 74
Kapitola 7. Návrh číslicových filtrů tedy docházet ke značnému zkreslení kmitočtových charakteristik digitálního filtru. Druhá nutná podmínka je touto transformací splněna. Uvedená metoda se hodí pouze na transformace dolních propustí za předpokladu volby dostatečně velkého vzorkovacího kmitočtu. Kromě náhrady první derivace spojité funkce první zpětnou diferencí je možné použít i první dopřednou diferenci definovanou vztahem dy dt t=nt y[n+] y[n] T. (7.9) Stejně jako v předchozím případě je možné vyjádřit přímý transformační vztah mezirovinami pazvetvaru p= z. (7.0) T Odtud plyne, že imaginární osa roviny p se transformuje podle rovnice z=+pt=+jωt, (7.) zekteréjezřejmé,žeimaginárníosaseposuneojedničkudoprava,jakjeukázáno naobrázku7.6.zuvedenéhozobrazeníjezřejmé,ženenísplněnaanijednaznut- jω p-rovina I(z) z-rovina 0 σ - R(z) Obrázek 7.6: Zobrazení roviny p na rovinu z při transformaci dopřednou diferencí ných podmínek kladených na transformace p z. Kromě zkreslení kmitočtových charakteristik digitálního filtru, může při této transformaci vzniknout nestabilní digitální filtr. 7..3. Bilineární transformace Tato transformační metoda je založena na numerické integraci diferenciální rovnice prvního řádu d y(t)=x(t). (7.) dt Numerickouintegracítétorovnicelichoběžníkovoumetodoupro t t, t je možné vyjádřit následujícím vztahem y(t ) y(t )= t x(t)dt (t t ) x(t )+x(t ) t. (7.3) 75
Vnásledujícímkrokuseprovededosazeníza t =(n )Ta t = nt y(nt) y((n )T)= T (x((n )T)+x(nT)). (7.4) Na tuto diferenční rovnici se dále aplikuje Z-transformace, která vede na výsledek ( z )Y(z)= T (z +)X(z). (7.5) Na výchozí diferenciální rovnici(7.) je možné aplikovat Laplaceovu transformaci, která vede při nulových počátečních podmínkách na výsledek p Y(p)=X(p). (7.6) Přímý transformační vztah pro bilineární transformaci potom vychází ve tvaru p= z z T+z = T z+. (7.7) Ze vztahu(7.7) je možné odvodit, jakým způsobem se transformuje imaginární osaroviny p=jω.zrovnice z= +p T p T = +jω T jω T = e jarctan(ω T ) (7.8) vyplývá,žeprovšechna ω je z =,cožjerovnicekružnicesestředemv, o poloměru. Toto zobrazení je ukázáno na obrázku 7.7. Ze zobrazení je zřejmé, jω p-rovina I(z) z-rovina 0 σ - R(z) Obrázek 7.7: Zobrazení roviny p na rovinu z při bilineární transformaci žebilineárnítransformacesplňujeobětransformačnípodmínky. 3 Nicménězrovnice (7.8) je možné odvodit, že dochází ke zkreslení kmitočtové osy podle vztahu e j ω d T = e jarctan(ωa T ) ω d = ( ) T arctan ωa T. (7.9) V případě, že je návrh soustředěn pouze na modulovou charakteristiku, je možné vliv tohoto zkreslení eliminovat tím, že provedeme předzkreslení analogové kmitočtové osy vztahem ω a = ) (ˆωd T tan. (7.30) 3 vizzačátekkapitoly7. 76
Kapitola 7. Návrh číslicových filtrů typ nový okraj p z transformační formule DP ˆω p κ z κ=ω cotanˆω p p z+ HP ˆω p κ z+ κ=ω tanˆω p p z PP středppˆω 0 κ z αz+ cos(ˆω +ˆω ) z α=cosˆω 0 = cos (ˆω ˆω ) okrajeppˆω <ˆω κ=ω p cotan[(ˆω ˆω )/] z cos(ˆω +ˆω ) PZ středpzˆω 0 κ z α=cosˆω 0 = αz+ cos (ˆω ˆω ) okrajepzˆω <ˆω κ=ω p tan[(ˆω ˆω )/] Tabulka 7.: Kmitočtová transformace analogové DP s okrajem propustného pásma ω p načtyřirůznétypyčíslicovýchpřenosovýchfunkcífiltrů Zahrneme-li toto předzkreslení do návrhových postupů, potom je třeba analogovou proměnnou p v rovnici(7.7) normovat vztahem(7.30). Například má-li analogová dolnípropusthraničníkmitočetokrajepropustnéhopásma ω p,potomponormování bude ω p T tanˆω p. (7.3) Normováním pravé i levé strany definiční rovnice(7.7) dostáváme bilineární transformaci ve tvaru s=κ 0 z z+, (7.3) ve kterém κ 0 =cotanˆω p. (7.33) Vztah(7.3) platí pro transformaci analogové NDP s okrajem propustného pásma Ω p =načíslicovoudpsokrajempropustnéhopásma ˆω p.vtabulce7.jsou uvedeny obecné kmitočtové transformace analogové DP s okrajem propustného pásma ω p načtyřirůznétypyčíslicovýchpřenosovýchfunkcífiltrůdp,hp,ppa PZ. Příklad 7.4 Metodou bilineární transformace navrhněte číslicový filtr. Pro transformaci použijte normovanou přenosovou funkci 3. řádu typu dolní propust s hraničním kmitočtempropustnéhopásma ω p = s,získanoubutterworthovouaproximací. Použijtehodnotuvzorkovacíhokmitočtu ω v =5s. H a (p)= p 3 + p + p+ 77
Řešení: Nejprve vypočítáme periodu vzorkování T= π ω v = π 5 =,56637. Dále provedeme transformaci přenosové funkce analogového filtru užitím vztahu pro bilineární transformaci(7.3), přičemž v našem případě bude κ=ω p cotan ω p T =,37638. Dosazením a úpravou získáme přenosovou funkci číslicového filtru H d (z)=h a (,37638 z z+ )= = (z )3,607455 ) = z (z+) 3+3,788854(z (z+) +,75764 z+ + = 0,098536(z+) 3 z 3 0,577405z +0,47870z 0,056974 Na obr. 7.8 je ukázáno porovnání modulových charakteristik a impulsních odezev analogového a číslicového filtru. Z grafů je vidět, že bilineární transformace, díky kmitočtovému zkreslení, zvětšuje strmost filtru v přechodovém pásmu. 0.8 0.6 0.6 0.5 0.4 0.3 analog digital Hf 0.4 0. 0 0 0. 0.4 0.6 0.8 f/f v ht 0. 0. 0 0. 0 5 0 5 nt Obrázek 7.8: Porovnání kmitočtové charakteristiky a impulsní odezvy 78
Kapitola 7. Návrh číslicových filtrů Program V prostředí Matlab navrhněte číslicový filtr metodou bilineární transformace. Použijte stejné zadání jako v příkladu 7.4. Vypočítejte kmitočtovou a impulsní charakteristiku analogového a číslicového filtru a obě charakteristiky vykreslete podobně jako na obr. 7.8. Nové operátory a funkce použité v programu: bilinear konverze analogové přenosové funkce na číslicovou přenosovou funkci metodou bilineární transformace Program vyžaduje Symbolic Math Toolbox a Signal Processing Toolbox. Vlastní program: fs=5/(*pi); fp=/(*pi); [b,a]=butter(3,, s ) [bz,az]=bilinear(b,a,fs,fp) %přímý návrh digitálního filtru %[bz,az]=butter(3,fp/fs*) f=linspace(0,fs,00); Ha=freqs(b,a,*pi*f); Hd=freqz(bz,az,f,fs); figure() subplot(,,) plot(f/fs,abs(ha), b,f/fs,abs(hd), g ) grid Hp=polysym(b)/polysym(a); ha=vpa(ilaplace(hp),5) t=linspace(0,5/fs,00); subplot(,,) plot(t*fs,subs(ha)) grid [hd,td]=impz(bz,az,6,fs); hold on stem(td*fs,hd*fs, g ) hold off 7..4. Kmitočtové transformace Kmitočtové transformace umožňující transformace digitálního filtru typu dolní propusti na libovolně jiný typ číslicového filtru(dp, HP, PP, PZ), jsou založeny na obdobných požadavcích jako tomu je u analogových filtrů. Jedná se o taková zobrazení g(z), která nemění průběh modulové charakteristiky v propustném a nepropustném pásmu a mění jen polohu okrajů propustného pásma. Takové funkce zobrazení, které budeme uvažovat, jsou typu číslicový fázovací dvojbran g (z)= z α αz, g (z)= z β z β β z. (7.34) βz 79
typ nový okraj z z transformační formule z α DP ˆωp α z HP z α ˆωp α z PP ˆωp a ˆω z αβ β β+ z+ β+ p β+ z+ αβ β PZ ˆωp a ˆω p β+ z z β+ z+ β α β+ z+ β α β+ z α= sin[(ˆω p ˆω p )/] sin[(ˆω p + ˆω p )/] α= cos[(ˆω p ˆω p )/] cos[(ˆω p + ˆω p )/] α= cos[( ˆωp+ ˆωp)/] cos[( ˆω p ˆω p )/] tan[ˆω p /] β= tan[( ˆω p ˆω p )/] α= cos[( ˆωp+ ˆωp)/] cos[( ˆω p ˆω p )/] β=tan[ˆω p /]tan[( ˆω p ˆω p )/] Tabulka 7.: Kmitočtová transformace číslicové dolní propusti s okrajem propustnéhopásmaˆω p načtyřirůznétypypřenosovýchfunkcí Uvažujmenynítransformaci H(z) H(g (z)).protoženajednotkovékružnici platí identita jtanˆω = z +z, (7.35) z=e jˆω afunkcetanˆω sechovájakodolnípropust,vznikálogickáotázka,jakádolnípropustvzniknetransformací g (z) z α tan ˆω = j αz + z α αz z=e jˆω = +α α tanˆω. (7.36) Obdrželi jsme obecný vztah mezi kmitočty transformovaných dolních propustí, kterépřirozeněplatíiprookrajepropustnýchpásem ˆω p aˆω p Vyřešíme rovnici(7.37) a dostaneme tan ˆω p =+α α tanˆω p. (7.37) α= tanˆω tan ˆω tanˆω +tan ˆω = sin[(ˆω p ˆω p )/] sin[(ˆω p + ˆω p )/]. (7.38) Na základě podobných úvah lze sestavit tabulku 7.. Pro typické kmitočty vzniklé transformacísevtabulcepoužívajísymboly ˆω,zatímcovpřípaděpůvodnídolní číslicové propusti kmitočty označujeme ˆω. 80