МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

РОЗРАХУНОК ТА РЕАЛІЗАЦІЯ
РЕКУРСИВНИХ ЦИФРОВИХ ФІЛЬТРІВ
ІНСТРУКЦІЯ
до лабораторної роботи № 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,
Гц
Сигнал

1.
ФНЧ Баттерворта
20
10
60
2.0
14
120
Lab_5_1.mat

2.
ФВЧ Баттерворта
150
180
55
1.9
12
1000
Lab_5_2.mat

3.
СФ Баттерворта
[400 1000]
[490 880]
60
2.1
18
4000
Lab_5_3.mat

4.
РФ Баттерворта
[50 150]
[35 165]
65
2.2
11
500
Lab_5_4.mat

5.
ФНЧ Чебишева 1-го роду
10000
9000
80
1.2
11
40000
Lab_5_5.mat

6.
ФВЧ Чебишева 1-го роду
2.5
2
60
1.5
12
15
Lab_5_6.mat

7.
СФ Чебишева 1-го роду
[40 165]
[65 140]
65
1.3
9
450
Lab_5_7.mat

8.
РФ Чебишева 1-го роду
[300 500]
[270 530]
70
1.4
14
2000
Lab_5_8.mat

9.
ФНЧ Чебишева 2-го роду
300
280
85
20
11
800
Lab_5_9.mat

10.
ФВЧ Чебишева 2-го роду
700
650
80
15
12
5000
Lab_5_10.mat

11.
СФ Чебишева 2-го роду
[2000 4000]
[2200 3800]
70
12
8
12000
Lab_5_11.mat

12.
РФ Чебишева 2-го роду
[100 200]
[80 220]
65
10
9
700
Lab_5_12.mat

13.
ФНЧ Кауера
5
4.8
90
1.9
12
30
Lab_5_13.mat

14.
ФВЧ Кауера
2000
2400
85
2.1
10
15000
Lab_5_14.mat

15.
СФ Кауера
[400 900]
[450 850]
80
2.0
12
3500
Lab_5_15.mat

16.
РФ Кауера
[3000 5000]
[2700 5300]
85
1.1
8
25000
Lab_5_16.mat

Примітка:
В таблиці через позначено частоту зрізу (для смугових і режекторних фільтрів відповідно нижню та верхню); i – рівень коливань характеристик фільтра у смузі пропускання і пригнічення.
3. Виконати альтернативне обчислення коефіцієнтів передатної функції цифрового фільтра рекурсивного із заданими вище параметрами використовуючи процедуру ‘yulewalk’ пакету MatLab та порівняти графіки частотних арактеристик , спроектованих за даними методами.
4. Оцінити вплив 12-бітного квантування коефіцієнтів ПФ фільтра (п.4) на його характеристики при прямій реалізації та каскадній на основі біквадратних ланок. Провести фільтрацію заданого сигналу, що зберігається у файлі Lab_5_варіант у змінній signal.
5. Синтезувати засобами пакету „Simulink” MATLAB схему рекурсивного фільтра у транспонованій формі для варіанту каскадної реалізації.
Приклад. Нехай потрібно розрахувати РЦФ Кауера з такими параметрами:
Тип фільтру
Fs,
Гц
Fp,
Гц
Rs,
дБ
Rp,
дБ
N,
біт
Fd,
Гц
Сигнал

РФ Кауера
[3000 8000]
[2500 8500]
80
1.3
14
48000
Lab_5.mat


Лістинг програми в середовищі 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 с.