Transcript pptx
Signalbehandling og matematik 2 (Tidsdiskrete signaler og systemer) Session 12. Design of digital IIR filters Ved Samuel Schmidt [email protected] http://www.hst.aau.dk/~sschmidt/Mat1/ 1 IIR og FIR filtre • IIR – Systemer med uendelige impuls respons har altid mindst en betydende pol (det vil sige ikke nul poler eller ophævede poler) H ( z) • FIR 1 1 az 1 – Systemer med endelige impuls respons har ingen betydende poler (det vil sige ikke nul poler eller ophævede poler) M Eksempel: General form: H ( z ) bk z k k 0 M H ( z) 1 bz1 Invers transformation: h(n) bk x[n k ] k 0 IIR vs FIR filter • Hvorfor IIR filtre? – IIR filter har stejlere ”sidelobes” end et FIR filter med samme antal koefficienter. – Dermed hurtigere og mindre hukommelses krævende • Hvorfor ikke ? – Et IIR filter har ikke lineær fase – Et IIR filter kan være ustabilt – ET IIR filter er mere sensitivt i for hold til afrundingsfejl Definitioner på filter Navne af frekevnes variabler i kontinuær og diskret domæne Kontinuer signaler Diskrete signaler Frekvens: F (Hz) f=F/Fs (Normaliseret frekvens) Vinkel hastighed : Ω=2πF (Radianer / sekund) ω=2πf (Radianer / sample) Konvertering Ω=ω/T Ω=ΩT Afgrænsning -∞<Ω<∞ -π/T<ω<π/T T= samplings perioden Design af digitale IIR filtre ved hjælp af IIR analoge filtre Specifikation af filteret i digitalt domæne Konverter specifikationer til analogt Design filteret i det analoge domæne Konverter det analoge filter til det digitale domæne Implementer filteret i det digital domæne Stabile systemer in z og s domænet • Z: Poler skal være i enhedscirklen s: Poler skal være i venstre halvdel Im 1 1 *1/3 *1/2 1 *1/3 Re 7 jΩ *1/2 1 σ 3 metoder til konvertering af analoge IIR filtre til digitale IIR filtre • Approksimation af afledte • Impuls invarians • Bilineær Transformation Bilineær Transformation • Ved den Bilineær Transformation sættes s lig med 2 1 z 1 s T 1 z 1 • Det betyder at: 2 1 z 1 H ( z ) H a 1 T 1 z Karakteristika ved Bilineær Transformation • Poler fra højre side i s-planet ligger udenfor enhedscirkelen. • Modsat poler fra venstre side i s-planet som ligger indenfor enhedscirklen Im 1 1 1 Re 10 jΩ 1 σ Karakteristika ved Bilineær Transformation (3) • Sammenhæng mellem ΩT og ω 2 2r sin , 2 T 1 r 2r cos( ) hvis r 1 2 sin 2 tan T 1 cos( ) T 2 2 tan1 T 2 Karakteristika ved Bilineær Transformation (4) Im 1 1 1 Re 12 jΩ 1 σ Agend Design of Digital IIR filters • Design af lowpass filtre – Design af digitale Butterworth filtre – Design af digitale Chebyshev filtre – Design af digitale Elliptic filtre Analogt lavpas Butterworth filter • Er et ”all pole” filter – Kvadreret frekvens amplitude respons H () 2 • • • • 1 2N 1 / c 2 eller N:filter orden Ωc: 3dB knæk frekvens Ωp: Anden knæk frekvens ε: relateret til dæmpning ved knæk frekvens se figur. • Laplace transformation H ( s ) H ( s) 1 1 s 2 / c2 H () N 1 2N 1 2 / p Poler fra analogt Butterworth filter 1 s / 2 2 N c H ( s ) H ( s) 0 1 1 s 2 / c2 N s2 j ( 2 k 1) N 1/ N (1) e 2 c jΩ s2 j j ( 2 k 1) 2N ce e 2 c Ωc σ j 2 s pk c e e j ( 2 k 1) 2N Polerne vil ligge spejlet omkring både den imaginære akse og den reelle akse. Design af digitalt lavpass Butterworth filter • Steps: 1. Konverter specifikationer fra digitale til analoge specifikationer (ω til Ω) Formel 7.26 2. Beregn nødvendig filter orden. Formel 7.293. Dan overførselsfunktionen H(s) ud fra poler i venstre halvplan 4. Bestem Gain ved Ω=0 5. Transformer til z domænet med bilineær transformation. Formel 7.18 6. Omskriv til simple rationel form (bk og ak koefficienter) Konverter specifikationer fra digitale til analoge specifikationer (Step 1) • Hvis specifikationen er opgivet i Hz find den normaliserede vinkel hastighed • ωc=2πFc/Fs • Omdan knækfrekvensen ωc til Ωc 2 tan T 2 • Samme procedure for andre vinkel hastigheder. F.eks. – Stopbånds frekvenser (ωs ) Bestem filter orden (Step 2) Ωc kendt Ω =3 dB cut off frequency c • Hvis filter orden (N) er forud defineret forsæt til næste slide. • Hvis en given dæmpning (δ2) er påkrævet ved Ωs og Ωc findes N ved: H () 2 1 2N 1 / c 1 22 2N 1 s / c 1 2 2 δ2: dæmpning i stopbånd et ved Ωc 1 s / c 2N 1 log 2 1 2 N 2 log s / c Obs: Hvis N ikke er et hel tal rundes op Bestem filter orden (Step 2) Ωc ukendt • • • • Ωs: Stop bånd knæk frekvens Ωp: Pass bånd knæk frekvens δ1: dæmpning i stopbånd et ved Ωp δ2: dæmpning i stopbånd et ved Ωs H ( p ) 1 2 p 2N 1 p / c H ( s ) 1 2 c 2N 1 s / c 2 2 • H () 2 1 2N 1 / c Løs for Ωc log 1 𝛿𝑝 2 −1 / • 𝑁= • Ωc kan findes fra 1 2 −1 𝛿𝑐 2 log Ω𝑠 Ω𝑝 Obs: Hvis N ikke er et hel tal rundes op 2 H ( p ) 1 2 p 2N 1 p / c Bestem overførselsfunktionen fra poler i venstre side af s-planet (Step 3) • Beregn poler: j 2 s pk c e e j ( 2 k 1) 2N k 0,1,2....N 1 • Opstil system funktion fra poler i venstre halv plan 1 H ( s ) H ( s) altså dem fra H(s) 1 s / 2 H ( s) 1 N (s s k 1 pk ) 1 ( s s p1 )(s s p 2 )(s s p 3 )(s s p 4 ) ( s s pN ) 2 N c Bestem gain (Step 4) • Normalt ønskes i gain på 1 ved DC. • Find G så H(0)=1; H (0) G 1 (0 s p1 )(0 s p 2 )(0 s p 3 )(0 s p 4 ) (0 s pN ) G ( s p1 )( s p 2 )( s p 3 )( s p 4 ) ( s pN ) Fra s domæne til z domæme (Step 5) • Brug bilinear transformation H (s) 1 N (s s pk ) 1 s s p1 s s p 2 s s p3 s s p 4 s s pN k 1 2 1 z 1 Bilinear transformation s T 1 z 1 H ( z) 1 1 N 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 ( sk ) s s s s s 1 1 2 3 4 N 1 T 1 z 1 T 1 z 1 T 1 z 1 T 1 z 1 T 1 z T 1 z k 1 Fra kompleks z transformation til tidsdomæne filter (Step 6) H ( z) 1 1 N 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 2 1 z 1 ( sk ) s1 s2 s3 s4 sN 1 1 1 1 1 1 k 1 T 1 z T 1 z T 1 z T 1 z T 1 z T 1 z Simplificer N H ( z) b z k a z k k 0 N k 0 k b0 b1 z 1 b2 z 2 b3 z 3 bN z N 1 a1 z 1 a2 z 2 a3 z 3 a N z N k Invers z-transformation y[n] a1 y[n 1] a2 y[n 2] a3 y[n 3] aN y[n N ] b0 x[n] b1x[n 1] b2 x[n 2] b3 x[n 3] bN x[n N ] Eksempel • Konstruer et digitalt butterworth lavpas filter (fc=40 Hz, Fs=200 sps. og δ2=20dB dæmpning ved fs=60Hz) Eksempel step 1 • Normaliserede vinkel hastighed: – Knækfrekevns ωc=2π 40/200=0.4 π ωc=2πFc/Fs – Stopbåndets hjørne frekvens ωs=2π 60/200=0.6 π • Fra digital til analog vinkel hastighed (T=1) 2 0.4 tan T 2 1.4531rad / s 2 0.6 s tan 2.7528rad / s T 2 c 2 tan T 2 Eksempel: Bestem filter orden (Step 2) • Ønsket dæmpning ved Ωs 20dB c 1.4531rad / s s 2.7528rad / s 2 20dB 10 20 20 0.1 1 log 1 0.01 N 3.6 4 2 log2.753/1.4531 Filter orden N=4 1 log 2 1 2 N 2 log s / c Bestem overførselsfunktionen fra poler i venstre side af s-planet (Step 3) j 2 • Beregn poler: s pk c e e j 2 s pk 1.4531 e e j ( 2 k 1) 8 j ( 2 k 1) 2N k 0,1,2....N 1 k 0,1,2,3 S-Plane 2 (2k 1) 8 0.5 j • Absolut værdi: • Vinkeler: 1 1.4531 5 ( 2 * 0 1 ) 2 8 8 0 2 (2 *1 1) 8 7 8 -0.5 -1 -1.5 -1 -0.5 0 0.5 1 1.5 Bestem overførselsfunktionen fra poler i venstre side af s-planet (Step 3 forsat) Opstil system funktion fra poler i venstre halvplan S-Plane 4 poler i venstre halvplan: 4 poler i venstre halvplan: 0.5 j (0.556072 j1.342475) (1.322475 j 0.556072) 1 0 -0.5 -1 -1.5 -1 -0.5 0 0.5 1 1.5 G H ( s) ( s (0.556072 j1.342475))(s (0.556072 j1.342475))(s (1.322475 j 0.556072))(s (1.322475 j 0.556072)) Tip: multiplikation af kompleks konjugerede s (a jb)s (a jb s2 - 2 a s + b2 + a 2 H ( s) G (s 2 + 1.11214s + 2.11145)(s 2 + 2.68495s+ 2.11145) Bestem gain (Step 4) • Find G så H(0)=1; H (0) G 1 ( 2.11145)( 2.11145) G 4.4582 H (s) 4.4582 (s 2 + 1.11214 s + 2.11145)(s 2 + 2.68495s + 2.11145) Fra s domæne til z domæme (Step 5) • Bilinear transformation H ( s) 4.4582 (s 2 + 1.11214s + 2.11145)(s 2 + 2.68495s+ 2.11145) 2 1 z 1 2 1 z 1 s 1 T 1 z 1 z 1 Bilinear transformation H ( z) 2 1 z 1 1 z 1 2 2 1 z 1 + 1.11214 1 z 1 4.4582 2 1 z 1 + 2.11145 1 z 1 2 2 1 z 1 + 2.68495 1 z 1 + 2.11145 Fra kompleks z transformation til tidsdomæne filter (Step 6) H ( z) H ( z) H ( z) 2 1 z 1 1 z 1 21 z 4 8z 1 -1 2 2 2 1 z 1 + 1.11214 1 1 z 4.4582 2 1 z 1 + 2.11145 1 z 1 4z-2 + 1.11214 2 2 z 2 2 2 1 z 1 + 2.68495 1 1 z 21 z 4.45821 z 1 + 1.11214 2 1 z 1 1 z 1 + 2.111451 z 1 2 2 + 2.6849512 1 z 1 1 z 1 + 2.111451 z 1 2 4 4.45821 z 1 + 2.111451 2 z 1 z 2 4 8z-1 4z-2 + 2.6849512 2 z 2 + 2.111451 2 z 1 z 2 4 4.45821 z 1 H ( z) 8.3357420 3.777088z-1 3.887169z-2 11.48136 3.77709z 1 0.741554z 2 4 1 + 2.11145 4 4.45821 z 1 H ( z) 95.706- 74.851z-1 65.078z-2 - 17.483z-3 + 2.8825z-4 4 0.0104* 4.45821 z 1 H ( z) -4 1 - 0.7820923z -1 0.679976z-2 - 0.182675z-3 + 0.0301187z 0.04636 0.18546z-1 + 0.27819z-2 + 0.18546z-3 + 0.04636z-4 H ( z) 1 - 0.78209z -1 0.67997z-2 - 0.18267z-3 + 0.03011z-4 Mål: b0 b1 z 1 b2 z 2 b3 z 3 bN z N H ( z) 1 a1 z 1 a2 z 2 a3 z 3 aN z N Test af eksempel • Test i matlab b=[0.0464 0.1855 a=[1.0000 -0.7821 freqz(b,a,1000,200) 0.2782 0.6800 0.1855 -0.1827 0.0464]; 0.0301]; • Sammenlign med ”butter” i matlab [b a]=butter(4,[40/100]) b =[0.0466 0.1863 0.2795 a =[1.0000 -0.7821 0.6800 0.1863 -0.1827 0.0466] 0.0301] Chebyshev filter type I • Overførselsfunktion H 2 1 1 2TN2 / p • Hvor ε er relateret til ripples i pasbåndet • Hvor TN er et N ordens polynomium cos(N cos1 x) x 1 TN ( x) 1 cosh(N cosh x) x 1 Chebyshev filter type I Poler • Polerne ligger på en ellipse 2 1 r1 p 2 2 1 r2 p 2 Hvor β er relateret til ε 1/ N 1 2 1 • Polernes location: xk r2 cos(k ) yk r1 sin(k ) Hvor vinklen φk er: k 2 (2k 1) N Chebyshev filter type II • Overførselsfunktion H • 2 1 1 2 TN2 s / p / TN2 s / Bemærk indeholder også nulpunkter • Hvor ε er relateret til ripples i stopbåndet • Hvor TN er samme Chebyshev polynomium cos(N cos1 x) x 1 TN ( x) 1 cosh(N cosh x) x 1 Bestem filter orden (N) på Chebyshev filter N • Hvor • N: filter orden • ε: Ripple i pass bånd • δ2 : Dæmpning i stopbåndet • Ωs : Knæk frekvens • Ωp: Start på stopbånd • Hvor TN er samme Chebyshev polynomium 1 log 1 22 1 22 1 2 / 2 log s / p s / p 2 Transformation af lavpas filtre til andre filter typer. • Transformer et eksisterende filter til ønskede egenskaber. 1 0.5 4 0 Simple transformation Spejl poler omkring IMG. aksen -0.5 -1 -1 0 Real Part Imaginary Part Imaginary Part 1 -0.5 -1 -1 -0.5 0 0.5 Real Part 1 50 Magnitude (dB) Magnitude (dB) 4 0 1 0 -50 -100 -150 -200 -250 0.5 0 0.2 0.4 0.6 0.8 1 Normalized Frequency ( rad/sample) 0 -50 -100 0 0.2 0.4 0.6 0.8 1 Normalized Frequency ( rad/sample) Transformation i analogt domæne Filter type Lavpas>Lavpas Transformation p s s ' p Lavpas>Højpas p ' p Lavpas>Båndpas Lavpas>Stopbånd p Oprindelig knæk frekvens ' p Ny knæk frekvens s s s 2 l u s p s ( u l ) s ( u l ) s p 2 s l u Ny knæk frekvens ' p ' p l , u l , u l : Laveste knækfrekvens u : Højeste knækfrekvens Eksempel • Konverter vores lavpas filter til et højpas filter med knæk frekvens ved ωc=0.5 π H lp ( s) s 4.4582 (s 2 + 1.11214s + 2.11145)(s 2 + 2.68495s+ 2.11145) p ' p p 2.7528rad / s 2 0.5 ' p tan 2 rad / s T 2 s 5.5056 s s H hp ( s) 4.4582 5.5056 5.5056 2 5.5056 5.5056 + 1.11214 + 2.11145 + 2.68495 + 2.11145 s s s s 2 H hp ( s) 4.4582s 4 4.4582s 4 2.11145s2 6.1244s 30.3116 2.11145s2 + 14.7550s 30.3116 4.45822s4 + 44.0858s3 + 218.362s2 + 632.855s+ 918.696 Test af eksempel i Matlab 4.4582s 4 H hp ( s) 4.45822s4 + 44.0858s3 + 218.362s2 + 632.855s+ 918.696 0 44.0858 0 218.3620 0 632.8550 0 10 -5 10 Magnitude b=[4.4582 a=[4.4582 freqs(b,a) -10 10 -15 10 -2 10 -1 10 0 10 Frequency (rad/s) 1 10 2 10 0]; 918.6960]; Transformation i det digitale domæne Eksempel digitalt • Konverter vores lavpas filter til et højpas filter med knæk frekvens ved ωc=0.5 π -4 0.046365 0.18546z-1 + 0.27819z-2 + 0.18546z-3 + 0.046365z H ( z) -3 -4 1 - 0.7820923z -1 0.679976z-2 - 0.182675z + 0.0301187z • Oprindelig knækfrekvens ωp=0.4π • Ny knækfrekvens ω’p=0.5π z 1 a 1 • Transformation: z , hvor 1 1 az a cos p ' p / 2 cos p ' p / 2 2 0.1584 3 z 1 0.1584 z 1 0.1584 z 1 0.1584 z 1 0.1584 0.046365 0.18546 + 0.27819 + 0.18546 + 0.046365 1 1 1 1 1 0 . 1584 z 1 0 . 1584 z 1 0 . 1584 z 1 0 . 1584 z H ( z) 2 3 4 1 1 1 1 z 0.1584 z 0.1584 z 0.1584 z 0.1584 0.679976 - 0.182675 + 0.0301187 1 - 0.7820923 1 1 1 1 1 0.1584z 1 0.1584z 1 0.1584z 1 0.1584z H ( z) 3 2 2 0.1584 1 0.1584z + 0.0301187 z 3 0.046365 0.18546 z 1 0.1584 1 0.1584z 1 + 0.27819 z 1 0.1584 1 0.1584z 1 + 0.18546 z 1 0.1584 1 0.1584z 1 + 0.046365 z 1 0.1584 1 - 0.7820923 z 1 0.1584 1 0.1584z 0.679976 z 1 3 H ( z) 1 2 0.1584 1 0.1584z 1 2 - 0.182675 z 1 0.0754 - 0.0801 z -1 0.1131z -2 - 0.1045z -3 - 0.0197z -4 1.0000 0.9342z -1 1.0437z -2 0.4071z -3 0.0419z -4 3 1 1 0.1584 4 4 4 Test af digitalt eksempel i Matlab 0.0754 - 0.0801z -1 0.1131z-2 - 0.1045z-3 - 0.0197z-4 H ( z) 1.0000 0.9342z-1 1.0437z-1 0.4071z-3 0.0419z-4 Magnitude (dB) b=[0.0754 -0.0801 a=[1.0000 0.9342 freqz(b,a,1000,200) 0.1131 1.0437 -0.1045 0.4071 -0.0197]; 0.0419]; 0 Ups: lille fejl -20 -40 -60 0 10 20 30 40 50 60 Frequency (Hz) 70 80 90 100 0 10 20 30 40 50 60 Frequency (Hz) 70 80 90 100 Phase (degrees) 200 0 -200 -400 Sammenligning mellem filtre • 4. ordens filter (fc=40 Hz, fs =80 Hz ,Fs=200 sps) Magnitude Response (dB) 0 Butter -10 Optimal filter -20 Chev 1 Elliptic Chev 2 Magnitude (dB) -30 -40 -50 -60 -70 -80 -90 -100 0 10 20 30 40 50 Frequency (Hz) 60 70 80 90 Update til næste år • Mere fokus på transformation mellem filter typer • Mere fokus på Butterworth poler • Ny opgaver mindre bi linear