МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
РОЗРАХУНОК ТА РЕАЛІЗАЦІЯ РЕКУРСИВНИХ ЦИФРОВИХ ФІЛЬТРІВ ІНСТРУКЦІЯ до лабораторної роботи № 5 з курсу “ Цифрова обробка сигналів і зображень” для студентів спеціальності 8.160102 "Захист інформації з обмеженим доступом та автоматизація її обробки" Затверджено на засіданні кафедри "Захист інформації" Протокол №1 від 27.08.2010 Львів 2010 Розрахунок та реалізація рекурсивних цифрових фільтрів: Інструкція до лабораторної роботи № 5 з курсу ”Цифрова обробка сигналів і зображень” для студентів спеціальності 8.160102 "Захист інформації з обмеженим доступом та автоматизація її обробки" / Укл. В. В. Хома, Я. Р. Совин, Я. В. Решетар - Львiв: Національний університет "Львівська політехніка", 2010. - с. 12. Укладачі: Хома В. В., д.т.н., професор Совин Я. Р., к.т.н., доцент Решетар Я. В., асистент Відповідальний за випуск: Дудикевич В.Б., д.т.н., професор Рецензент: Максимович В.М., д.т.н., професор Пархуць Л.Т., к.т.н., доцент Мета роботи – отримати навики розрахунку параметрів і характеристик рекурсивних цифрових фільтрів, а також навчитися застосовувати засоби програмного пакету Simulink MatLab для їх реалізації та дослідження. 1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ ІЗ ПРОЕКТУВАННЯ РЕКУРСИВНИХ ЦИФРОВИХ ФІЛЬТРІВ Завдання цифрового фільтра полягає у забезпеченні частотно-залежної зміни заданої послідовності даних. В загальному випадку цифровий фільтр підсумовує (з ваговими коефіцієнтами) певну кількість вхідних відліків та певну кількість попередніх вихідних відліків: (1) де - відліки вхідного сигналу; - відліки вихідного сигналу; і - коефіцієнти фільтра. Фільтр, який описується рівнянням (1) називається рекурсивним, а більше з чисел і - порядком фільтра. Структурна схема фільтра зображена на рис. 1, в якій означає затримку на один такт.
Рис. 1. Схема цифрового рекурсивного фільтра Відліки сигналу зберігаються в комірках пам’яті, які здійснюють затримку на один такт. Ці відліки перемножуються на коефіцієнти фільтра і підсумовуються, формуючи поточне значення відліку вихідного сигналу. Така форма реалізації фільтра називається прямою (англ. термін direct form I). Існує ще кілька інших форм реалізації рекурсивних фільтрів детально описаних в [1]. Важливою характеристикою фільтрів є передатна функція , яка є відношенням -перетворень вихідної і вхідної послідовності фільтра при нульових початкових умовах: . Виконавши -перетворення виразів (1) і (2), а також враховуючи, що затримка дискретної послідовності на 1 такт відповідає домноженню її -перетворення на отримаємо передатні функції для рекурсивного і нерекурсивного фільтрів відповідно: , (3) . (4) Використовуючи передатні функції можна отримати комплексні частотні характеристики фільтрів. Для цього виконують підстановку , де – період дискретизації. Модуль комплексної частотної характеристики називається амплітудно-частотною характеристикою. Аргумент комплексної частотної характеристики називається фазо-частотною характеристикою. Залежно від виду АЧХ розрізняють: – фільтри нижніх частот (ФНЧ; англ. термін – low-pass filter) – пропускає частоти, менші певної частоти . Діапазон частот від 0 до - називається смугою пропускання, решта частотного діапазону – смугою затримки, частота - називається частотою зрізу. – фільтри верхніх частот (ФВЧ; англ. термін – high-pass filter) – пропускає частоти, більші певної частоти зрізу . – смугові фільтри (СФ; англ. термін – band-pass filter) – пропускає частоти в певному діапазоні …; – режекторні фільтри (РФ; англ. термін – band-stop filter) – пропускає всі частоти, крім тих, які знаходяться в певному діапазоні …; Реальний фільтр відрізняється від ідеального тим, що: загасання в смузі пропускання не рівне нулю (в дБ); загасання в смузі затримки не рівне нескінченності; перехід від смуги пропускання до смуги загасання відбувається поступово, а не стрибкоподібно. Можливі вигляди реальних АЧХ для різних типів фільтрів наведено на рис. 2. На ньому позначено: - гранична частота смуги пропускання; - гранична частота смуги затримки; - максимальне придушення в смузі пропускання; - мінімальне придушення в смузі затримки;
Рис. 2. Характеристики реальних фільтрів: нижніх частот (а), верхніх частот (б), смуговий (в), режекторний (г) Рекурсивні фільтри при реалізації можуть мати різні характеристики, а саме, пульсації в смузі пропускання, пульсації в смузі затримки, крутизна переходу від смуги пропускання до смуги затримки та ін. Найбільш поширеними на практиці є фільтри Баттерворта, Чебишева 1-го і 2-го роду, еліптичні (фільтри Кауера). Фільтр Баттерворта оптимізований для максимально плоскої АЧХ в смузі пропускання. Викиди на АЧХ відсутні, а крутизна росте з порядком N (рис. 3, а). Фільтри Чебишева в області пропускання (1-го роду) або смузі затримки (2-го роду) мають пульсації з певною максимальною амплітудою, однак перехід із зони запирання у зону пропускання відбувається з більшою крутизною ніж у фільтра Баттерворта (рис. 3, б, в). Еліптичні фільтри мають пульсації АЧХ як в смузі пропускання так і в смузі запирання, але найбільшу крутизну перехідної ділянки (рис. 3, г).
Рис. 3. АЧХ ФНЧ Батерворта (а), Чебишева 1-го роду (б), Чебишева 2-го роду (в) та Кауера (г) порядку N 2. РОЗРАХУНОК РЕКУРСИВНИХ ЦИФРОВИХ ФІЛЬТРІВ У СЕРЕДОВИЩІ MATLAB Вибрати мінімально необхідний порядок фільтра дозволяють такі однотипні функції: [n, Wn] = buttord(Wp, Ws, Rp, Rs) – для фільтра Баттерворта, [n, Wn] = cheb1ord(Wp, Ws, Rp, Rs) – для фільтра Чебишева 1-го роду, [n, Wn] = cheb2ord(Wp, Ws, Rp, Rs) – для фільтра Чебишева 2-го роду, [n, Wn] = ellipord(Wp, Ws, Rp, Rs) – для еліптичного фільтра, де Rp – допустимий рівень пульсацій в смузі пропускання (в дБ); Rs - мінімально необхідне загасання в смузі затримки (в дБ); параметри Wp і Ws задають границі смуг пропускання і затримки, нормовані до частоти Найквіста (половина частоти дискретизації). У випадку розрахунку СФ і РФ Wp і Ws повинні бути двоелементними векторами. Вихідними параметрами є мінімально необхідний для виконання заданих вимог порядок фільтра n і частота зрізу Wn. Коефіцієнти знаменника a і чисельника b РЦФ розраховуються такими функціями: [b, a] = butter(n, Wn, type) – розрахунок фільтрів Баттерворта. [b, a] = cheby1(n, Rp, Wn, type) – розрахунок фільтрів Чебишева 1-го роду. [b, a] = cheby2(n, Rs, Wn, type) – розрахунок фільтрів Чебишева 2-го роду. [b, a] = ellip(n, Rp, Rs, Wn, type) – розрахунок еліптичних фільтрів. Параметр type присутній лише при розрахунку ФВЧ і РФ і повинен бути рівним відповідно type=’high’ та type=’stop’. Для знаходження АЧХ можна скористатися функцією freqz: H = freqz(b, a, f, Fs) – обчислює значення комплексної передатної функції ЦФ з коефіцієнтами чисельника b і знаменника a для вектора частот заданого в f і частоти дискретизації Fs. 3. ЕФЕКТИ КВАНТУВАННЯ В ЦФ При практичній реалізації цифрових фільтрів неминуче виникає необхідність заокруглення їх вагових коефіцієнтів і вибірок вхідного сигналу. При використанні цифрових сигнальних процесорів це пов’язано з підтримуваними форматами представлення чисел, при створенні програм обробки сигналів для ПК – з прагненням підвищити швидкодію. Із-за округлення характеристики фільтрів зазнають спотворень, значення яких залежить не тільки від похибки представлення, але і від параметрів фільтра і способу його реалізації. Вплив ефектів округлення значень коефіцієнтів особливо проявляється в рекурсивних фільтрах, оскільки коефіцієнти знаменника функції передачі пов’язані з імпульсною характеристикою нелінійно (рис. 3).
Рис. 3. АЧХ еліптичного ФНЧ 9-го порядку до і після квантування Тому реалізація рекурсивних фільтрів високого порядку у прямій формі недоцільна. В цьому випадку найкраще представляти фільтри у вигляді послідовного сполучення простих ланок другого порядку (такі ланки називають біквадратними): . Тоді функцію передачі можна представити як каскадне сполучення біквадратних ланок:
Здійснити перехід від прямої до каскадної форми дозволяє функція tf2sos: [sos] = tf2sos(b, a) Матриця sos має таку структуру: sos = [ b01 b11 b21 1 a11 a21 b02 b12 b22 1 a12 a22 ... b0L b1L b2L 1 a1L a2L ] Функція, яка реалізує цифрову фільтрацію у MatLab, має назву filter. В найпростішому випадку її синтаксис: y = filter(b, a, x), тут b – вектор коефіцієнтів чисельника функції передачі (нерекурсивної частини), а – вектор коефіцієнтів знаменника функції передачі (рекурсивна частина), х – вхідний сигнал; у – вихідний сигнал фільтра. 4. ЗАВДАННЯ 1. Ознайомитись із теоретичними відомостями. 2. Розрахувати мінімально необхідний порядок РЦФ для забезпечення поставлених у таблиці 1 вимог, знайти коефіцієнти ПФ фільтра та побудувати графіки його АЧХ і ФЧХ, користуючись відповідними процедурами MatLab. Таблиця 1 № Тип фільтру Fs, Гц Fp, Гц Rs, дБ Rp, дБ N, біт Fd, Гц Сигнал
Примітка: В таблиці через позначено частоту зрізу (для смугових і режекторних фільтрів відповідно нижню та верхню); i – рівень коливань характеристик фільтра у смузі пропускання і пригнічення. 3. Виконати альтернативне обчислення коефіцієнтів передатної функції цифрового фільтра рекурсивного із заданими вище параметрами використовуючи процедуру ‘yulewalk’ пакету MatLab та порівняти графіки частотних арактеристик , спроектованих за даними методами. 4. Оцінити вплив 12-бітного квантування коефіцієнтів ПФ фільтра (п.4) на його характеристики при прямій реалізації та каскадній на основі біквадратних ланок. Провести фільтрацію заданого сигналу, що зберігається у файлі Lab_5_варіант у змінній signal. 5. Синтезувати засобами пакету „Simulink” MATLAB схему рекурсивного фільтра у транспонованій формі для варіанту каскадної реалізації. Приклад. Нехай потрібно розрахувати РЦФ Кауера з такими параметрами: Тип фільтру Fs, Гц Fp, Гц Rs, дБ Rp, дБ N, біт Fd, Гц Сигнал
Лістинг програми в середовищі MatLab % Рекурсивний фільтр Fs=[3000 8000]; % задаємо частоти смуг затримки Fp=[2500 8500]; % задаємо частоти смуг пропускання Rs=80; % пульсації (придушення) в смузі затримки Rp=1.3; % пульсації в смузі пропускання N_bit=14; % кількість біт для представлення дробової частини коефіцієнтів fd=48000; % частота дискретизації f_N = fd/2; % частота Найквіста Fs_norm = Fs/f_N; % нормовані частоти смуги затримки Fp_norm = Fp/f_N; % нормовані частоти смуг пропускання [n, Wn] = ellipord(Fp_norm, Fs_norm, Rp, Rs); % визначаємо мінімальний порядок фільтра n та % частоти зрізу Wn n % виводимо порядок фільтра fc = Wn * f_N % виводимо частоти зрізу [b, a] = ellip(n, Rp, Rs, Wn, 'stop'); % знаходимо коефіцієнти чисельника та % знаменника фільтра b = b(:); % перетворюємо вектор рядок у стовпець a = a(:); b % виводимо коефіцієнти чисельника a % виводимо коефіцієнти знаменника f = 0 : 1 : f_N; % задаємо вектор частот для розрахунку АЧХ h = freqz(b, a, f, fd); % розраховуємо комплексний коефіцієнт передачі figure(11); plot(f, abs(h)); grid on; % будуємо графік АЧХ bq = round(2^N_bit * b) / 2^N_bit; % квантуємо коефіцієнти чисельника aq = round(2^N_bit * a)/ 2^N_bit; % квантуємо коефіцієнти знаменника hq = freqz(bq, aq, f, fd); % розраховуємо комплексний коефіцієнт передачі % квантованого фільтра figure(12); plot(f, abs(h), f, abs(hq)); grid on; % будуємо графік АЧХ фільтру до і після квантування sos = tf2sos(b, a); % переходимо від прямої до каскадної форми фільтру sosq = round(2^N_bit * sos) / 2^N_bit; % квантуємо коефіцієнти біквадратних ланок [bs, as] = sos2tf(sos); % повертаємось до прямої форми представлення hs = freqz(bs, as, f, fd); % розраховуємо комплексний коефіцієнт передачі figure(13); plot(f, abs(hs)); grid on; % будуємо графік АЧХ load Lab_2 % завантажуємо сигнал signal_f1 = filter(b, a, signal); % проводимо фільтрацію сигналу 5. ЗМІСТ ЗВІТУ Мета роботи. Повний текст завдання. Лістинг програми, числові і графічні результати та необхідні розрахунки . Висновок. 6. КОНТРОЛЬНІ ЗАПИТАННЯ Що означають поняття рекурсивних і не рекурсивних ЦФ? Як виглядає передатна функція рекурсивних і нерекурсивних фільтрів? Які фільтри більш чутливі до квантування коефіцієнтів? Яким чином можна зменшити вплив ефекту квантування коефіцієнтів? Назвіть основні типи та властивості рекурсивних фільтрів? Які відмінності між ідеальним і реальним ЦФ? Як розраховуються коефіцієнти нерекурсивних фільтрів? 7. СПИСОК ЛІТЕРАТУРИ Сергиенко А. Б. Цифровая обработка сигналов. – СПб.: Питер, 2002. – 608 с. Дьяконов В. MATLAB. Обработка сигналов и изображений. Специальный справочник. – СПб.: Питер, 2002. – 608 с. Шрюфер Э. Обработка сигналов: цифровая обработка дискретизированных сигналов. – К.: Либідь, 1995. – 320 с. Лазарев Ю. Ф. MatLab 5.х. – К.: BHV, 2000. – 384 с. Бабак В. П., Хандецький В. С., Шрюфер Е. Обробка сигналів: Підручник. – К.: Либідь, 1996. – 392 с.