ЛАБОРАТОРНА РОБОТА №1 ПРОЄКТУВАННЯ РЕКУРСВИНИХ ЦИФРОВИХ ФІЛЬТРІВ ЗА АНАЛОГОВИМ ПРОТОТИПОМ Теоретична частина Одним із завдань, що часто зустрічається на практиці, є створення фільтрів, які пропускають сигнали в певній смузі частот і затримують інші частоти. При цьому розрізняють [4;5]: а) фільтри нижніх частот (ФНЧ; англ. low -pass filter), які пропускають частоти, менші за деяку частоту зрізу ω0; б) фільтри верхніх частот (ФВЧ; англ. high -pass filter), що пропускають частоти, більші за деяку частоту зрізу ω0 ; в) смугові фільтри (СФ; англ. band -pass filter), що пропускають частоти в деякому діапазоні ω1 ÷ ω2 (для них характерні також середня частота ω0 = (ω0 + ω2)/2 і ширина смуги пропускання Δω = ω2 – ω1); г) режекторні фільтри (інші можливі назви – загороджувальні фільтри, фільтри– пробки, смугово -затримувальні фільтри; англ. band -stop filter), що пропускають на вихід всі частоти, крім тих що лежать у певному діапазоні ω1 ÷ ω2 (вони теж можуть характеризуватися середньою частотою ω0 = (ω1+ω2)/2 і шириною смуги затримування Δω = ω2 – ω1). Ідеальну форму АЧХ фільтрів цих чотирьох типів наведено на рис. 1.1. а в б г Рис. 1.1. АЧХ фільтрів різного типу: а – ФНЧ; б – ФВЧ; в – смуговий фільтр; г – режекторний фільтр Однак така ідеальна (прямокутна) форма АЧХ не може бути реалізована на практиці. Тому в теорії аналогових фільтрів розроблено низку методів апроксимації прямокутних АЧХ. Функції, що реалізують ці методи, розглянемо пізніше. Крім того, розрахувавши ФНЧ, можна нескладними перетвореннями змінити його частоту зрізу, перетворити його на ФВЧ, смуговий або режекторний фільтр із заданими параметрами. Тому обчислення аналогового фільтра починають із розрахунку так званого фільтра - прототипу, що являе собою ФНЧ із частотою зрізу, яка дорівнюе 1 рад/с (тобто ω0 = 1 рад/с). Потім застосовують функції перетворення частоти зрізу і перетворення типів фільтрів, які ми розглянемо в лабораторній роботі 2. Усі функції MATLAB для розрахунку аналогових прототипів повертають вектори-стовпці нулів і полюсів функції передачі, а також значення коефіцієнта підсилення. Порівнюючи результати застосування фільтрів різного типу в будь-якій системі обробки сигналів, слід пам’ятати про те, що частоту зрізу для різних фільтрів визначають по - різному. Детальну інформацію щодо цього наведено в наступних розділах, присвячених конкретним фільтрам. Зауважимо, що для фільтра Баттерворта частоту зрізу визначають за рівнем 1/ 2 , для фільтра Чебишева 1-го роду й еліптичного фільтра – за рівнем пульсацій у смузі пропускання, для фільтра Чебишева 2-го роду – за рівнем пульсацій у смузі затримування. Нарешті, для фільтра Бесселя саме поняття частоти зрізу є досить умовне. Фільтр Баттерворта Функція передачі фільтра-прототипу Баттерворта (Butterworth filter) не має нулів, а її полюси рівномірно розташовані на s–площині в лівій половині кола одиничного радіуса (див. рис. 1.2,а). У зв’язку з таким розміщенням полюсів формула для АЧХ фільтра Баттерворта дуже проста: K(ω) = 1 , 1+(ω / ω)2n де ω0 – частота зрізу (для фільтра - прототипу вона дорівнює 1 рад /с); n – порядок фільтра. Коефіцієнт передачі на нульовій частоті дорівнює 1, а на частоті зрізу незалежно від порядку фільтра -1/ 2 ≈ 0,707 = -3 дБ. За ω → ∞ АЧХ наближається до нуля. АЧХ фільтра Баттерворта (див. рис. 1.2,б) максимальна плоска за ω = 0 і. ω → ∞. Це означає, що в даних точках дорівнюють нулю 2n –1 похідних АЧХ за частотою. У цілому АЧХ монотонно спадає від одиниці до нуля в разі зміни частоти від нуля до нескінченності. Фільтр Чебишева 1- го роду Функція передачі фільтра Чебишева 1-го роду (англ. Chebyshev type I filter) також не має нулів, а її полюси розташовані в лівій половині еліпса на s–площині (див. рис. 1.3,а). АЧХ фільтра Чебишева 1-го роду описують таким чином: K(ω) = 1 , 1+ε2 Tn 2 (ω / ω) де ω0 – частота зрізу, Тn (х) – поліном Чебишева n – го порядку ( n – порядок фільтра), ε – параметр, що визначає величину пульсацій АЧХ у смузі пропускання. Зауважения. Поліноми Чебишева визначають таким чином: Tn (x) = cos (n⋅arcos(x)). Для обчислення Tn (x) можна застосувати рекурентне співвідношення Tn (x) = 2⋅x⋅T(n -1)(x) – T(n-2)(x), де T0 (x) = 1 і Tn (x) = x. Поліном Чебишева Тn (х) за x ≤ 1 коливається в діапазоні -1 ... +1, а за |x| > 1 необмежено зростає за абсолютною величиною. Тому АЧХ фільтра Чебишева 1-го роду в смузі пропускання (за |ω| ≤ ω0) коливається між значеннями 1/ і 1, а поза смугою пропускання (за |ω| ≤ ω0) монотонно згасає до нуля (див. рис. 1.6,б). Коефіцієнт передачі на нульовій частоті дорівнює 1 у разі непарного порядку фільтра і 1/ 1+ε2 – у випадку парного. На частоті зрізу коефіцієнт передачі фільтра дорівнює 1+ε2 , тобто рівню пульсацій АЧХ у смузі пропускання. За ω = ∞ АЧХ наближається до нуля. Порівняно з фільтром Баттерворта того ж порядку фільтр Чебишева забезпечує більш крутий спад АЧХ в області переходу від смуги пропускання до смуги затримування. Значення параметра ε і рівень пульсацій Rp (у децибелах) пов’язані таким чином: Rp = 20⋅lg( 1+ε2 ) = 10⋅lg(1+ε2) дБ, ε ε2 = 10 (Rp /10) – 1. АЧХ фільтра Чебишева 1– го роду є максимально плоска. Фільтр Чебишева 2–го роду Функція передачі фільтра Чебишева 2-го роду (англ. Chebyshev type II filter), на відміну від попередніх випадків, має і нулі, і полюси (рис. 1.4,а). Вона пов’язана з функцією передачі фільтра Чебишева 1–го роду таким чином: H2(s) = 1 – H1(1/s), де H1(1/s) і H2(1/s) – функції передачі фільтрів - прототипів Чебишева 1-го і 2-го роду відповідно. Полюси функції передачі фільтрів-прототипів Чебишева 1-го і 2-го роду (р1i і p2i відповідно) пов’язані один з одним співвідношенням p2i = 1/p1i . Фільтри Чебишева 2-го роду називають ще інверсними фільтрами Чебишева (англ. inverse Chebyshev filter). АЧХ фільтра Чебишева другого роду описують таким чином: 1 ε2 1+ 2 Tn (ω0/ω) , де ω0 – частота зрізу; Tn(х) – поліном Чебишева n-го порядку; n – порядок фільтра; ε – параметр, що визначає величину пульсацій АЧХ у смузі затримання. У результаті вищезазначеного перетворення функції передачі АЧХ фільтра Чебишева 2–го роду поводить себе так: у смузі пропускання вона монотонно згасає, а в смузі затримання коливається між нулем і значенням 1/ 1+ε2 (рис. 1.4,б). Зауваження. Частотою зрізу фільтра Чебишева 2-го роду вважають не кінець смуги пропускання, а початок смуги затримування. Коефіцієнт передачі фільтра на нульовій частоті дорівнює 1, на частоті зрізу – заданому рівню пульсацій у смузі затримування. За ω → ∞ коефіцієнт передачі дорівнює нулю за непарного порядку фільтра і рівню пульсацій – за парного. Значення параметра ε і рівень пульсацій Rs (у децибелах) пов’язані так: Rs = 20⋅lg( 1+ε2 ) = 10⋅lg(1+ε2) дБ, ε2 = 10 (Rs /10) – 1. За ω = 0 АЧХ фільтра Чебишева 2-го роду є максимально плоска. Еліптичний фільтр Еліптичні фільтри (фільтри Кауера; англ. elliptic filter, Cauer filter) у деякому сенсі об’єднують властивості фільтрів Чебишева 1–го і 2–го роду, оскільки АЧХ еліптичного фільтра має пульсації заданої величини як у смузі пропускання, так і в смузі затримання (рис. 1.5,б). За рахунок цього можна забезпечити максимально можливу (за фіксованого порядку фільтра) крутість спаду АЧХ, тобто перехідної зони між смугами пропускання і затримування. Функція передачі еліптичного фільтра має як полюси, так і нулі. Нулі, як і у випадку фільтра Чебишева 2–го роду, є суто уявні й утворюють комплексно–сполучені пари (рис. 1.5,а). Кількість нулів функції передачі дорівнює максимальному парному числу, що не перевершує порядку фільтра. АЧХ еліптичного фільтра описують такою формулою: K(ω) = 1 1+ε2 Rn 2 (ω / ω, L) , де ω0 – частота зрізу; n – порядок фільтра; Rn (...) – раціональна функція Чебишева n–го порядку; ε і L – параметри, що визначають величину пульсацій у смугах пропускання і затримування. Фільтр Бесселя На відміну від фільтрів попередніх типів, фільтри Бесселя (англ. Bessel filter) не апроксимують прямокутну АЧХ – їх АЧХ (рис. 1.6,б) за формою близька до кривої Гаусса (точніше, наближається до неї зі зростанням порядку фільтра). Практична цінність фільтрів Бесселя полягає в тому, що для них залежність групового часу затримки від частоти є максимально гладка в точці ω = 0 і групова затримка дуже мало змінюється в смузі пропускання. Функція передачі фільтра Бесселя має тільки полюси, що лежать на колі з центром у позитивній області речової осі (рис. 1.6,а). Сама функція передачі має такий вигляд: H(s) = ∑ d0 dk⋅sk n k=0 Коефіцієнти полінома знаменника обчислюють за такою формулою: (2n - k)! dk = 2n-k k! (n - k)! Практична частина Фільтр-прототип Баттерворта. У MATLAB розрахунок аналогового фільтрапрототипу Баттерворта здіснюють за допомогою функції buttap: [z, p, k] = buttap(n) де вхідний цілочисловий параметр n – порядок фільтра. На рис.4.2 показано розташування полюсів фільтра Баттерворта 5-го порядку на комплексній площині, а також його АЧХ і ФЧХ. Даний рисунок одержано за допомогою нижчеподаної послідовності команд MATLAB: >> [z, p, k] = buttap(5); >> figure(); plot(p, 'x') >> axis equal >> axis([–1.5 1.5 –1.5 1.5]) >> w = 0:0.01:5; >> [b, a] = zp2tf(z, p, k); >> h = freqs(b, a, w); >> figure(); >> plot(w, abs(h)), grid >> figure(); >> plot(w, unwrap(angle(h))), grid а % нулі й полюси прототипу % графік розташування полюсів % коефіцієнти функції передачі % комплексний коефіцієнт передачі % графік АЧХ % графік ФЧХ в Рис. 1.2. Характеристики фільтра Баттерворта 5–го порядку: а – розташування полюсів на комплексній площині; б – АЧХ Фільтр-прототип Чебишева 1-го роду. У MATLAB фільтр-прототип Чебишева 1-го роду обчислюють за допомогою функції cheblap: [z, p, k] = cheblap(n, Rp), де n–порядок фільтра; Rp – рівень пульсації в смузі пропускання (у децибелах). На рис. 1.3 показано розташування на комплексній площині полюсів фільтра Чебишева 1-го роду 5-го порядку із рівнем пульсацій 0,5 дБ, а також його АЧХ і ФЧХ: а в Рис. 1.3. Характеристики фільтра Чебишева 1-го роду 5-го порядку з рівнем пульсацій у смузі пропускання 0,5 дБ: а – розташування полюсів на комплексній площині; б – АЧХ Даний рисунок одержано за допомогою застосування послідовності команд MATLAB, аналогічній застосованій для фільтра Баттерворта Фільтр-прототип Чебишева 2-го роду. У MATLAB фільтр-прототип Чебишева 2-го роду обчислюють за допомогою функції cheb2ap: [z, p, k] = cheb2ap (n, Rs), де n – порядок фільтра; Rs – рівень пульсацій у смузі затримання (у децибелах). На рис. 1.4 показано розташування на комплексній площині полюсів фільтра Чебишева 2–го роду 5–го порядку із рівнем пульсацій 20 дБ, а також його АЧХ і ФЧХ: б а Рис. 1.4. Характеристики фільтра Чебишева 2-го роду 5-го порядку з рівнем пульсацій у смузі затримування 20 дБ: а – розташування нулів і полюсів на комплексній площині; б – АЧХ Даний рисунок одержано за допомогою застосування послідовності команд MATLAB, аналогічній застосованій для фільтра Баттерворта. Еліптичний фільтр-прототип. У MATLAB еліптичний фільтр-прототип розраховують за допомогою функції ellipap: [z, p, k] = ellipap(n, Rр, Rs), де n – порядок фільтра; Rp – рівень пульсацій у смузі пропускання; Rs – рівень пульсацій у смузі затримування. Рівні пульсацій вказують у децибелах. На рис. 1.5,а показано розташування на комплексній площині нулів і полюсів еліптичного фільтра 5-го порядку з рівнем пульсацій 0,5 дБ у смузі пропускання і 20 дБ у смузі затримування, а також його АЧХ і ФЧХ: б а Рис. 1.5. Характеристики еліптичного фільтра 5-го порядку з рівнем пульсацій у смузі пропускання 0,5 дБ і в смузі затримування 20 дБ: а – розташування нулів і полюсів на комплексній площині; б – АЧХ Даний рисунок одержано за допомогою застосування послідовності команд MATLAB, аналогічній застосованій для фільтра Баттерворта. Фільтр-прототип Бесселя. У MATLAB фільтр-прототип Бесселя обчислюють за допомогою функції besselар: [z, p, k] = besselap (n), де n – порядок фільтра. На рис. 1.6 показано розташування на комплексній площині нулів і полюсів фільтра Бесселя 5-го порядку, а також його АЧХ: Рис. 1.6. Характеристики фільтра Бесселя 5-го порядку: а – розташування полюсів на комплексной площині; б – АЧХ Даний рисунок одержано за допомогою застосування послідовності команд MATLAB, аналогічній застосованій для фільтра Баттерворта. Наступний етап після розрахунку фільтра-прототипу – його перетворення з метою отримати фільтр заданого типу з необхідними частотами зрізу. Для цього застосовують наведені нижче чотири функції MATLAB. Принцип складання їх імен такий: спочатку йде скорочення lр, яке означає, що вхідним фільтром є ФНЧ (англ. low-pass), потім − символ перетворення 2 і в кінці – позначення типу вихідного фільтра [6]: • lр2lр – зміна частоти зрізу ФНЧ (англ. low-pass); • lp2hp – перетворення ФНЧ на ФВЧ (англ. high-pass); • lp2bp – перетворення ФНЧ на смуговий фільтр (англ. band-pass); • lp2bs – перетворення ФНЧ на режекторний фільтр (англ. band-stop). Усі ці функції можуть перетворювати фільтри, задані двома способами, – у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі або в просторі станів. Їх розрізняють за кількістю вхідних і вихідних параметрів. Ми розглянемо тільки перший спосіб. Зміна частоти зрізу ФНЧ Зміна частоти зрізу ФНЧ–прототипу передбачає просте масштабування частотної осі яке здійснюють шляхом заміни змінної s у виразі для функції передачі: s , s→ ωo де ωo – необхідна частота зрізу ФНЧ. Таке перетворення здійснюють за функцією lр2lр: [b1, a1] = lp2lp (b, a, w0). Вхідними параметрами функції є опис фільтра (у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі – b, а) і необхідна частота зрізу w0. У результаті повертається результат – перелічені параметри фільтра. Перетворення ФНЧ на ФВЧ Перетворення ФНЧ-прототипу на ФВЧ вимагає інверсії частотної осі; ії здійснюють шляхом подальшої заміни змінної s у виразі для функції передачі: ω0 s→ s , де ω0 – необхідна частота зрізу ФВЧ. Таке перетворення здійснюють за допомогою функції lp2hp: [b1, a1] = lp2hp (b, a, w0). Вхідними параметрами функції є опис фільтра (у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі – b, a) і необхідна частота зрізу w0. Повертається результат – перелічені параметри фільтра. Перетворення ФНЧ на смуговий фільтр Перетворення ФНЧ - прототипу на смуговий фільтр вимагає більш складної трансформації частотної осі, ніж у попередніх випадках. Так, нульову і нескінченну частоти необхідно перетворювати на нескінченне значення на частотній осі ФНЧпрототипу (на ділянці, де його коефіцієнт передачі наближаеться до нуля). Частоти на кінцях необхідної смуги пропускання повинні після перетворення давати значення ± 1, що дорівнюють частоті зрізу ФНЧ-прототипу. Нарешті, перетворення слід здійснювати за допомогою дрібнораціональної функції, щоб зберегти дрібнораціональну структуру функції передачі. Зазначені вимоги задовольняє така заміна змінної s: (s / ω0)2 + 1 s→Q , s / ω0 де ω0 = ω1 ω2 ; Q = ω0 / (ω0 - ω0); ω1 і ω2 відповідно нижня і верхня межі смуги пропускання фільтра. Таке перетворення здійснююють за допомогою функції lр2bр: [b1, a1] = lp2bp (b, a, w0, Bw). Вхідними параметрами функції є опис фільтра (у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі – b, а), середня частота w0 і ширина Bw смуги пропускання фільтра (у радіанах на секунду). Результат – перераховані параметри фільтра. Зауваження. Середня частота смуги пропускання – це середнє геометричне, а не середнє арифметичне частот зрізу: ω0 = ω1 ⋅ ω2 . Смугу пропускання обчислюють без особливостей: Bω0 = ω2 - ω1. Як приклад обчислимо смуговий фільтр Чебишева 1-го роду 5-го порядку із смугою пропускання від 1 кГц до 9 кГц і рівнем пульсацій у смузі пропускання 3 дБ: >> [z, p, k] = cheblap (5, 3); >> [b, a] = zp2tf (z, p, к); >> fl = 1еЗ; >> f2 = 9еЗ; >> w0 = 2 * pi * sqrt (fl * f2); >> Bw = 2 * pi * (f2 – f1); >> [b, a] = Ip2bp (b, a, w0, Bw); >> f = 0:1:20 ЕЗ; >> H = freqs (b, a, 2 * pi * f); >> figure(); plot (f/1000, abs (h)), grid % ФНЧ–прототип % функція передачі % нижня частота зрізу % верхня частота зрізу % середня частота % смуга пропускання % смуговий фільтр % вектор частот для розрахунку % частотна характеристика % графік АЧХ >> axis tight >> figure >> plot (f/1000, unwrap (angle (h))), grid % графік ФЧХ Побудовані графіки АЧХ і ФЧХ наведено на рис. 2.1. Слід звернути увагу, що характеристики фільтра несиметричні – вони стиснуті ліворуч та розтягнуті праворуч. Проаналізувавши формулу заміни змінної, застосовану для перетворення ФНЧ на смуговий фільтр, з’ясуємо, що частоти, на яких коефіцієнт передачі має однакові значення, пов’язані співвідношенням ω1⋅ω2 = ω02. Тому графіки стануть симетричними, якщо застосувати логарифмічний масштаб по осі частот. Асиметрія частотних характеристик проявляється тим сильніше, чим більше відношення межових частот смуги пропускання фільтра. Саме з огляду на це в розглянутому прикладі спеціально застосовано частоти зрізів із суттевою (у 9 разів) різницею щодо відношення. a b Рис. 2.1. Графіки АЧХ і ФЧХ смугового фільтра Чебишева 1–го роду 5–го порядку із смугою пропускання від 1 кГц до 9 кГц і рівнем пульсацій у смузі пропускання 3 дБ: а – АЧХ; в – ФЧХ Перетворення ФНЧ на режекторний фільтр Для перетворення ФНЧ-прототипу на режекторний фільтр трансформація частотної осі має бути обернена стосовно попереднього випадку. Нульова і нескінченна частоти повинні перетворюватися на нульове значення на частотній осі ФНЧ– прототипу (там, де коефіцієнт передачі великий). Частоти на краях необхідної смуги затримування, повинні після перетворення набувати значення ± 1, що дорівняє частоті зрізу ФНЧ-прототипу. Крім того, деяке значення частоти в смузі затримування повинно перетворюватися на нескінченність (там, де коефіцієнт передачі ФНЧ-прототипу наближається до нуля). Нарешті, для збереження дробово-раціональної структури функції передачі слід здійснити перетворення за допомогою дробово-раціональної функції. Зазначені вимоги задовольняє така заміна змінної s: s→ s / ω0 , Q⋅((s / ω0)2 +1) де ω0 = ω1 ω2 ; Q = ω0 / (ω0 - ω0); ω1 і ω2 – відповідно нижня і верхня межі смуги затримування фільтра. Дане перетворення виконують функцією lp2bs: [b1, a1] = lp2bs (b, a, w0, Bw). Вхідними параметрами функції є опис фільтра (у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі фільтра-прототипу b, a), середня частота w0 і ширина Bw смуги затримування режекторного фільтра (у радіанах на секунду). Повертається результат – коефіцієнти поліномів чисельника і знаменника функції передачі режекторного фільтра b1 і a1. Усе сказане вище стосовно зв’язку середньої частоти з частотами зрізу й асиметрії характеристик смугових фільтрів справедливо і для режекторних фільтрів. Розрахунок аналогових фільтрів Для розрахунку аналогового фільтра необхідно виконати дві основні операції: розрахувати ФНЧ-прототип і перетворити його до потрібного типу фільтра із заданими частотами зрізу. Необхідну послідовність дій здійснюють за допопомогою таких функцій MATLAB: • • • • • butter (n, w0, type, 's') cheby1 (n, Rp, w0, type, 's') cheby2 (n, Rs, w0, type, 's') ellip (n, Rp, Rs, w0, type, 's') besself (n, w0, type, 's') – розрахунок фільтрів Баттерворта; – розрахунок фільтрів Чебишева 1-го роду; – розрахунок фільтрів Чебишева 2-го роду; – розрахунок еліптичних фільтрів; – розрахунок фільтрів Бесселя. Параметри всіх функцій задають однаково, тому не аналізуватимемо кожну функцію окремо. Перераховані функції, за винятком функції besself, дозволяють розраховувати як аналогові, так і дискретні фільтри. Ознакою аналогового фільтра служить рядок 's', застосований як останній вхідний параметр. Особливості застосування даних функцій для розрахунку дискретних фільтрів розглянемо в лабораторній роботі 3. Параметри n, Rp, Rs (їх склад залежить від типу фільтра) – це параметри фільтра - прототипу: n – порядок фільтра; Rp – рівень пульсацій у смузі пропускання (у децибелах); Rs – рівень пульсацій у смузі затримування (у децибелах). Докладний опис цих параметрів наведено в лабораторній роботі 1. Параметри w0 і type застосовують спільно для задання типу фільтра і значень його частот зрізу (у радіанах на секунду): • ФНЧ: w0 – скаляр, параметр type відсутній; • ФВЧ: w0 – скаляр, type = 'high'; • смуговий фільтр: w0 – двоелементний вектор частот зрізу [w1 w2], параметр type відсутній; • режекторний фільтр: w0 – двоелементний вектор частот зрізу [wl w2], type – 'stop1'. Зауваження. Слід підкреслити, що в даних функціях під час розробки смугових і режекторпих фільтрів як параметри задають саме частоти зрізу, а не середню частоту і смугу пропускання (або затримування), як у функціях перетворення фільтрів-прототипів. Залежно від кількості вихідних параметрів, застосованних у процесі виклику, функції можуть повертати результати розрахунку у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі (два вихідні параметри): [b, а] = ... або нулів і полюсів (три вихідні параметри): [z, р, k] = ... З урахуванням усього сказаного подамо перелік дій, виконуваних функціями розрахунку аналогових фільтрів: 1. Розрахування фільтра-прототипу із заданими параметрами АЧХ. 2. Перетворення фільтра-прототипу до необхідного типу із заданими частотами зрізу. 3. Перетворення опису фільтра до вигляду, заданого під час виклику. Вибір порядку фільтра Розглянуті вище функції розрахунку фільтрів вимагають задавати як вхідні параметри порядок фільтра і його частоту зрізу. При цьому поняття частоти зрізу для фільтрів різних типів визначають по–різному. Однак вихідними даними під час розробки фільтрів, як правило, є інші параметри: частотні межі смуг пропускання (ωp) і затримування (ωs), а також допустима нерівномірність АЧХ у смузі пропускання (Rp) і мінімальне згасання у смузі затримування (Rs) (рис . 2.2). Сірим кольором області на рисунку позначено допуски, в які повинна уміститися АЧХ фільтра у смугах пропускання та затримування. а б в г Рис. 2.2. Задання вихідних параметрів для розрахунку ФНЧ (а); ФВЧ (б); смугового (в) і режекторного (г) фільтрів Вибрати мінімально необхідний порядок фільтра можна за допомогою таких однотипних функцій пакета Signal Processing: [n, Wn] = buttord (Wp, Ws, Rp, Rs, 's') [n, Wn] = cheb1ord (Wp, Ws, Rp, Rs, 's') [n, Wn] = cheb2ord (Wp, Ws, Rp, Rs, 's') [n, Wn] = ellipord (Wp, Ws, Rp, Rs, 's') Зауваження. Дані функції дозволяють вибирати порядок як для аналогових, так і для дискретних фільтрів. Останній параметр 's' – ознака розрахунку аналогового фільтра. Застосування цих функцій для визначення необхідного порядку дискретних фільтрів наведено в лабораторній роботі 3. Вхідний параметр Rp – допустимий рівень пульсацій у смузі пропускання (у децибелах); Rs – мінімально необхідне згасання у смузі затримування (у децибелах). Параметри Wp і Ws задають межі смуг пропускання і затримування. Спосіб задання цих параметрів залежить від типу проектованого фільтра: • ФНЧ: Wp і Ws – числа, при цьому повинна виконуватися нерівність Wp < Ws; • ФВЧ: Wp і Ws – числа, при цьому повинна виконуватися нерівність Wp > Ws; • смуговий фільтр: Wp і Ws – двоелементні вектори, при цьому повинні виконуватися нерівності Ws(1) < Wp(1) < Wp(2) < Ws(2); • режекторний фільтр: Wp і Ws – двоелементні вектори, при цьому повинні виконуватися нерівності Wp(1) < Ws(1) < Ws(2) < Wp(2). Значення параметрів Wp і Ws були позначені на рис. 2.2 як ωp і ωs відповідно. Вихідними параметрами є мінімально необхідний для виконання заданих вимог порядок фільтра n і частота зрізу фільтра Wn. Дані параметри застосовують під час виклику функції розрахунку фільтра. Повернення значення Wn дозволяє незважати на те, що поняття частоти зрізу має різний зміст. Для еліптичних фільтрів і фільтрів Чебишева 1-го роду Wn = Wp, для фільтрів Чебишева 2-го роду Wn = Ws, а для фільтрів Баттерворта значення Wn (нагадаємо, що воно визначає частоту зрізу за рівнем 3 дБ) залежить від заданого рівня пульсацій Rp так: 𝜔𝜔𝑛𝑛 = 2𝑛𝑛 �10 𝜔𝜔𝑝𝑝 𝑅𝑅𝑝𝑝 ⁄10 . −1 Оскільки порядок фільтра – величина цілочислова, то можна передбачити, що фільтр мінімально необхідного порядку забезпечує деякий запас стосовно вихідних параметрів. Його можна застосовувати по–різному: або зробити пульсації у смузі пропускання таким, що точно дорівнюють заданим, але збільшити згасання у смузі затримування, або точно дотриматися заданого згасання у смузі затримування, зменшивши при цьому пульсації у смузі пропускання. Для еліптичних фільтрів можливий ще один варіант – звуження перехідної зони за рахунок розширення смуги затримування. Поведінка функцій вибору порядку фільтра в цьому аспекті залежить від того, що під час розрахунку фільтра необхідно застосовувати ті самі параметри пульсацій Rp і Rs, що і в ході вибору порядку фільтра. Тому для фільтрів Баттерворта і Чебишева 1-го роду буде збільшуватися згасання у смузі затримування, для фільтрів Чебишева 2-го роду – зменшуватися пульсації у смузі пропускання, а для еліптичних фільтрів – розширюватися смуга затримування. Система MATLAB нараховує більше двадцяти функцій синтезу дискретних фільтрів. Більша їх частина зосереджена в пакеті Signal Processing, три функції розрахунку конкретних фільтрів − у пакеті Communications, ще кілька рідко застовуваних – у спеціалізованому пакеті Filter Design. Крім того, до пакета Signal Processing входить програма FDATool (англ. Filter Design and Analysis Tool), що реалізує графічний інтерфейс для розрахунку фільтрів і перегляду їх характеристик. До складу пакета Signal Processing входить функція bilinear, яка дозволяє синтезувати дискретний фільтр методом білінійного z-перетворення за довільними аналоговими прототипами. Крім того, є готові функції розрахунку фільтрів Баттерворта, Чебишева 1-го і 2-го роду, а також еліптичних фільтрів (фільтрів Кауера). У лабораторній роботі 4 було розглянуто функції MATLAB для розрахунку аналогових варіантів даних фільтрів. У ході розрахунку дискретних фільтрів застосовують ті ж самі функції, тільки без останнього параметра 's'. Крім того, частоти зрізу задають як нормовані до частоти Найквіста. Аналогічне «подвійне призначення» мають і функції вибору порядку фільтра (див. розділ «Вибір порядку фільтра» лаб. роб. 4). У принципі можна здійснювати синтез дискретних фільтрів, звернувшись до матеріалу лабораторної роботи 2. Однак, для зосередження інформації про синтез дискретних фільтрів в одному місці коротко повторимо синтаксис виклику функцій і опис їх параметрів. Функції синтезу стандартних фільтрів Функції синтезу стандартних фільтрів виконують розрахунок дискретних ФНЧ, ФВЧ, смугових і режекторних фільтрів за аналоговими прототипами фільтрів Баттерворта, Чебишева (1–го і 2–го роду) і Кауера методом білінійного z-перетворення. Необхідну при цьому послідовність дій оформлено у вигляді таких функцій MATLAB: • butter(n, w0, type) – розрахунок фільтрів Баттерворта; • cheby1(n, Rp, w0, type) – розрахунок фільтрів Чебишева 1-го роду; • cheby2(n, Rs, w0, type) – розрахунок фільтрів Чебишева 2-го роду; • ellip (n, Rp, Rs, w0, type) – розрахунок еліптичних фільтрів (фільтрів Кауера). Параметри всіх функцій задають так само, як це було описано в інструкції до лабораторної роботи 5 у розділі «Розрахунок аналогових фільтрів». При розрахунку дискретних фільтрів дані функції виконують: зрізу. 1. Обчислення фільтра-прототипу із заданими параметрами АЧХ. 2. Перетворення фільтра-прототипу до необхідного типу із заданими частотами Для одержання дискретного фільтра із заданими частотами зрізу необхідно скорегувати частоти зрізу аналогового прототипу, щоб компенсувати спотворення частотної осі. Так, для синтезу дискретного ФНЧ із частотою зрізу ω0д аналоговий фільтр-прототип повинен мати частоту зрізу ω0а , пов’язану із ω0д таким чином: ω0д ⋅T 2 ω0а = T tg 2 . 3. Перетворення аналогового фільтра на дискретний за допомогою функції bilinear. 4. Перетворення опису фільтра до вигляду, заданого в разі виклику функції. Для прикладу задамо дуже жорсткі вимоги до АЧХ фільтра нижніх частот – вузьку перехідну смугу, малі пульсації в смузі пропускання і значне згасання в смузі затримування – і з’ясуємо, яким буде мінімальний порядок для фільтрів чотирьох стандартних типів: >> Wp = 0.2; % кінець смуги пропускання >> Ws = 0.21; % початок смуги затримування >> Rp = 1; % пульсації АЧХ у смузі пропускання (дБ) >> Rs = 60; % згасання у смузі затримання (дБ) >> [N, Wn] = buttord (Wp, Ws, Rp, Rs) n = 145 Wn = 0.2009 >> [n, Wn] = cheb1ord(Wp, Ws, Rp, Rs) n = 26 Wn = 0.2000 >> [n,Wn] = cheb2ord(Wp, Ws, Rp, Rs) n = 26 Wn = 0.2095 >> [n, Wn] = ellipord(Wp, Ws, Rp, Rs) n = 10 Wn = 0.2000 Згідно з одержаними результатами для фільтра Баттерворта потрібен дуже великий порядок. Порядок фільтрів Чебишева обох типів приблизно у п’ять разів менший. І, нарешті, мінімальний порядок потрібен у разі синтезу еліптичного фільтра. Функція bilinear Функція bilinear призначена для синтезу дискретних фільтрів за довільними аналоговими прототипами за методом білінійного z-перетворення. Вона може перетворювати задані різними способами аналогові описи систем на дискретні, а тому має декілька варіантів синтаксису: [bz, az] = bilinear(b, a, Fs, Fp) [zz, pz, kz] = bilinear(z, p, k, Fs, Fp), де b, а – коефіцієнти поліномів чисельника і знаменника функції передачі аналогового прототипу; z, р, k – відповідно нулі, полюси і коефіцієнт підсилення аналогового прототипу. Аналогічні ідентифікатори з літерою z наприкінці позначають відповідні параметри синтезованої дискретної системи. Функція розрізняє способи задання опису аналогового прототипу за розміром переданих параметрів. Якщо два перші вхідні параметри – вектори-рядки, то їх уважають коефіцієнтами поліномів чисельника і знаменника функції передачі. Якщо ж два перші вхідні параметри – вектори-стовпці, то їх уважають нулями і полюсами функції передачі. Зауваження. Аналоговий прототип у разі застосування функції bilinear повинен бути фізично реалізованим, тобто степінь полінома чисельника функції передачі не повинна перевищувати степень полінома її знаменника. Параметр Fs задає частоту дискретизації в герцах. Останній вхідний параметр – Fp – необов’язковий. За його відсутності білінійне z-перетворення виконують за формулою 2 𝑧𝑧 − 1 1 − 𝑧𝑧 −1 𝑠𝑠 = = 2𝑓𝑓д , 𝑇𝑇 𝑧𝑧 + 1 1 + 𝑧𝑧 −1 2 ω𝑇𝑇 𝐾𝐾̇д (ω) = 𝐾𝐾̇а � tg � ��,а трансформацію частотної осі описують співвідношеннями 𝑇𝑇 2 2 ω𝑇𝑇 𝐾𝐾̇а (ω) = 𝐾𝐾̇д � arctg � ��. 𝑇𝑇 2 Тому в області низьких частот частотні характеристики аналогового і дискретного фільтрів майже збігаються. Далі, в міру прискорення зростання функції тангенса, частотна характеристика дискретного фільтра все сильніше стискається за горизонталлю (у порівнянні з аналоговим прототипом) і на частоті Найквіста, що дорівнює π/Т, досягає такого значення, яке частотна характеристика аналогового фільтра мала б на нескінченній частоті (рис. 3.1). Рис. 3.1. Трансформація частотної осі за білинійного z-перетворення Якщо під час виклику застосовано параметр Fp, то він задає частоту (у герцах), на якій комплексні коефіцієнти передачі аналогової і дискретної систем збігатимуться. Для цього здійснюють попереднє масштабування частотної осі в s-області, у результаті чого застосована в ході білінійного z-перетворення підстановка набуде вигляду: 𝐹𝐹𝑝𝑝 π 1 − 𝑧𝑧 −1 𝐹𝐹𝑠𝑠 𝑠𝑠 = = 2𝐹𝐹𝑠𝑠 . 𝐹𝐹𝑝𝑝 1 + 𝑧𝑧 −1 tg �π � 𝐹𝐹𝑠𝑠 При цьому трансформація частотної осі має такий вигляд: 𝑓𝑓д = 𝑓𝑓 tg �π д � 𝐹𝐹𝑠𝑠 𝑓𝑓а= 𝐹𝐹𝑝𝑝 , 𝐹𝐹𝑝𝑝 tg �π � 𝐹𝐹𝑠𝑠 𝐹𝐹𝑝𝑝 𝐹𝐹𝑠𝑠 𝑓𝑓а arctg � tg �π �� , π 𝐹𝐹𝑝𝑝 𝐹𝐹𝑠𝑠 тобто комплексний коефіцієнт передачі аналогової системи на частоті fa буде збігатися з комплексним коефіцієнтом передачі дискретної системи на частоті fд. Із формул бачимо, що якщо fa = Fp, то fд = i⋅Fp. На низьких частотах fa і fд пов’язані приблизно лінійно: 𝐹𝐹𝑝𝑝 𝐹𝐹𝑠𝑠 𝑓𝑓а ≈ 𝑓𝑓д за 𝑓𝑓д ≪ 𝐹𝐹𝑝𝑝 . 𝐹𝐹𝑝𝑝 tg �π � 𝐹𝐹𝑠𝑠 π Функція impinvar Функція impinvar призначена для синтезу дискретних фільтрів за довільними аналоговими прототипами за методом інваріантної імпульсної характеристики. Синтаксис виклику функції такий: [bz, az] = impinvar (b, a, Fs, tol). Вхідні параметри b, а – коефіцієнти чисельника і знаменника функції передачі аналогового прототипу; Fs – частота дискретизації (за замовчуванням її значення дорівнює 1 Гц). Параметр tol задає відносний поріг виявлення кратних полюсів. Два близько розташовані полюси вважають збіжними, якщо відстань між ними, поділена на більший із їх модулів, менша tol. Вихідні параметри bz і az – коефіцієнти чисельника і знаменника функції передачі для синтезованого дискретного фільтра. Функція impinvar при синтезі фільтра виконує такі дії: 1. Перетворення функції передачі аналогового прототипу на суму простих дробів. 2. Обчислені полюси р трансформуються в exp(p/Fs). 3. Перетворює функцію передачі із суми простіших дробів назад до дробовораціонального вигляду. Як приклад синтезуємо за методом інваріантної імпульсної характеристики ФНЧ Чебишева 1-го роду 2-го порядку із частотою зрізу 10 кГц та частотою дискретизації 100 кГц: >> f0=10e3; >> [b, a] = cheby1(2, 3, f0*2*pi, 's'); >> Fs = 100e3; >> [bz, az] = impinvar(b, a,Fs); >> [hz, wz] = freqz(bz, az,[ ],Fs, 'whole'); >> h = freqs(b, a, 2*pi*wz); >> plot(wz, abs(h), ':') >> hold on >> plot(wz, abs(hz)) >> hold off >> xlabel('Frequency (Hz)') >> ylabel( 'Magnitude') >> xlim([0 Fs]) >> grid on % частота зрізу % аналоговий фільтр % дискретний фільтр % ЧХ дискретного фільтра % ЧХ аналогового фільтра Результат работи цієї програми показано на рис. 3.2. Рис. 3.2. АЧХ аналогового прототипу (пунктир) і дискретного фільтра (суцільна лінія), синтезованого методом інваріантної імпульсної характеристики Завдання до лабораторної роботи 1. Розрахувати коефіцієнти фільтра Баттерворта ФНЧ із заданою частотою зрізу. Отримати частотні характеристики фільтра. Промоделювати фільтрацію сигналу, отримати АЧХ та ФЧХ вихідного сигналу. 2. Розрахувати коефіцієнти фільтра Чебишева ФНЧ із заданою частотою зрізу. Отримати частотні характеристики фільтра. Промоделювати фільтрацію сигналу, отримати АЧХ та ФЧХ вихідного сигналу. Порівняти характеристики. 3. Розрахувати коефіцієнти фільтра Чебишева ФВЧ, СФ, РФ. Відфільтрувати сигнал одного за файлів SPEAK(1-4) . Отримати спектри сигналу на виході фільтрів. 4. Повторити завданняя 1-3 з використанням fdatool. 5. Проаналізувати вплив вибору порядку фільта на результати фільтрації різної форми сигналів.