------------------------------------------------------------------- ČÍSLICOVÉ FIR A IIR FILTRY - uživatelský návrh v MATLABu ------------------------------------------------------------------- Roman Čmejla, textová verze 10. přednášky ze ZZS, 1.prosince 2014 OBSAH ------------------------------------------------------------- • Návrhy jednoduchých filtrů • Návrhy složitějších filtrů – Porovnání FIR a IIR – Nástroje pro návrh FIR filtrů v MATLABu – Nástroje pro návrh IIR filtrů v MATLABu • Kvantování koeficientů číslicových filtrů • Aplikace ------------------------------------------------------------------- Návrhy jednoduchých filtrů • Přímé umístění nul a pólů uvnitř jednotkové kružnice - DP, HP, PP, PZ - Rezonátory a ekvalizéry - Úzkopásmové zádrže - Hřebenové filtry Návrhy složitějších filtrů • DP, HP, PP, PZ + specifikace • Libovolné frekvenční charakteristiky • Výběr filtrů – Finite Impulse Response (FIR) – Infinite Impulse Response (IIR) • Který? – Složitost (implementace) – Stabilita – Lineární fáze Porovnání FIR a IIR FIR filtr IIR filtr Rovnice Přenosová funkce Stabilita Stabilní Stabilní pokud |póly| < 1 Linearita fáze Snadné dosáhnout Velmi obtížné dosáhnout. Složité postupy Složitost Pro dosažení specif. Požadavek pouze požadavků je potřeba několika koeficientů mnoha koeficientů Další Není citlivé na chyby Pozor na chyby ze vzniklé zaokrouhlením zaokrouhlení a přetečení při implementacích DSP Lineární fázi vyžaduje řada aplikací z: – biomedicíny – telekomunikací – zpracování obrazů – atd. • FIR filtry • Impulsní charakteristika FIR filtrů musí být symetrická nebo antisymetrická – Typ I • Sudý počet nul na z = 1 • Lichý počet nul na z = -1 • Nevhodný pro HP vždy nula na z = -1 – Typ II • Sudý počet nul na z = 1 • Sudý počet nul na z = -1 • Nemá omezení a lze použít k návrhu všech filtrů – Typ III • Lichý počet nul na z = -1 • Sudý počet nul na z = 1 • Nevhodný pro DP nula na z = 1 – Typ IV • Lichý počet nul na z = 1 • Lichý počet nul na z = -1 • nula na z = 1 a nula na z = -1 Nástroje pro návrh FIR filtrů v MATLABu • Metoda váhových oken - příklady ... - funkce fir1.m – umožňuje návrh DP, HP, PP, PZ • Frekvenční charakteristiky ideálních filtrů jsou tvořeny obdélníkovými funkcemi a tedy impulzní odezva je inverzním obrazem obdélníkové funkce, což je funkce sinc(x) = sin(x)/x – Vymezení frekvenčního pásma – Převedení na normovanou (číslicovou) frekvenci – Získání impulsní odezvy pomocí IDFT – Vybrání konečného počtu N vzorků symetricky rozložených kolem 0 – Vážení vhodnou funkcí kvůli potlačení zvlnění – Posunutí impulzní odezvy o (N - 1) vzorků doprava, abychom získali kauzální filtr • Změna normované frekvence • Změna řádu filtru Okno Amin [dB] delta(wn) rp [dB] Pravoúhlé 13,3 0.9 / N 0.7416 Hannovo 31,5 3.1 / N 0.0546 Hammingovo 42,5 3.3 / N 0.0194 Blackmanovo 58,2 5.5 / N 0.0017 rp ... zvlnění v propustném pásmu v dB delta(wn) ... normovaná šířka normovaná šířka přechodného pásma Amin ... odstup prvního postranního laloku v dB N ... délka okna • Metoda frekvenčního vzorkování - příklady ... - funkce fir2.m – umožňuje návrh vícepásmových propustí • Frekvenční charakteristika je Fourierovým obrazem impulzní charakteristiky • Impulzní odezva je inverzním obrazem frekvenční charakteristiky • Použití – v obrazu spektra si stanovíme průběh frekvenční charakteristiky – charakteristiku navzorkujeme s vhodným počtem bodů o N koeficientech – provedeme inverzní DFT, kterou získáme impulzní odezvu o N koeficientech • Remezův algoritmus - příklady ... (výpočet filtrů se zvlněnou frekvenční charakteristikou) - Funkce remezord.m určí pomocné parametry - Funkce remez.m vypočte koeficienty filtru • Rovnoměrná aproximace v propustném i nepropustném pásmu Výhody a nevýhody filtrů FIR • Poměrně jednoduchý a intuitivní návrh • Filtr je nerekursivní (bez zpětných vazeb), je tudíž vždy stabilní (nemůže způsobit kmitání) • Filtry FIR mohou zajistit lineární průběh fázové charakteristiky • S filtry FIR se hůře dosahuje velká strmost přechodu mezi propustným a nepropustným pásmem • Pro dosažení velké strmosti jsou třeba filtry s mnoha koeficienty, takové filtry mají dlouhé zpoždění Nástroje pro návrh IIR filtrů v MATLABu Umožňují navrhovat filtry požadovaných typů (DP, HP, PP, PZ), zvolených pásem, hodnot útlumů a průběhů • Čtyři typy průběhů (podle plochosti charakteristiky) • Butterworth – maximálně plochý průběh bez zvlnění – buttord.m, butter.m • Čebyšev 1 – zvlnění v propustném pásmu – cheb1ord.m, cheby1.m • Čebyšev 2 – zvlnění v nepropustném pásmu – cheb2ord.m, cheby2.m • Eliptický – zvlnění povoleno v obou pásmech – ellipord.m, ellip.m – toleranční schéma N Fm Butterworth 13 850 Čebyšev I 6 800 Čebyšev II 6 941 Eliptický 4 800 Návrh filtrů libovolného tvaru (včetně vícepásmových propustí) metody jsou založené na metodě nejmenších čtverců Př.: yulewalk.m 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); Výhody a nevýhody filtrů IIR • Filtr je rekursivní (se zpětnými vazbami), může být nestabilní (pro amplitudově omezený vstupní signál by generoval signál s neustále rostoucími amplitudami) • Filtr IIR bude stabilní, pokud všechny jeho póly leží uvnitř jednotkové kružnice • S filtry IIR lze dosáhnout velmi strmé přechody mezi propustným a nepropustným pásmem, a to i při malém řádu filtru Kvantování koeficientů číslicových filtrů • Kvantování koeficientů FIR filtrů • Kvantování koeficientů IIR filtrů • Kaskádní spojení IIR filtrů 2.řádu • Limitní cykly