Приклади розв'язання завдань. Приклад 1. Розрахувати реакцію фільтра другого порядку з кінцевою імпульсною характеристикою (КІХ-фільтра другого порядку)
Приклад 1. Розрахувати реакцію фільтра другого порядку з кінцевою імпульсною характеристикою (КІХ-фільтра другого порядку), заданого різницевим рівнянням [10]
y (n) = 0, 1 x (n) + 0, 5 x (n – 1) + 0, 7 x (n – 2), де n = 0: 31; ω Т = 0, 5; х (n) = sin(ω Tn). Розв’язання. У часовій області співвідношення вхід-вихід може описуватися з допомогою різницевого рівняння (РР)
яке задається вектором коефіцієнтів дії
і вектором коефіцієнтів реакції
Перший елемент векторa a 0 завжди дорівнює одиниці. У часовій області співвідношення вхід-вихід може описуватися формулою згортання
де імпульсна характеристика і дія задаються у вигляді скінченних послідовностей (векторів). У пакеті MATLAB математичною моделлю КІХ-фільтра другого порядку називають опис співвідношення вхід-вихід у вигляді рівняння або системи рівнянь, що дає змогу обчислити реакцію на задану дію. Моделювання роботи КІХ-фільтра другого порядку на основі різницевого рівняння (26) — обчислення реакції на вхідну дію за нульових початкових умов (НПУ) — виконується з допомогою функції filter, формат якої має вигляд
filter(b, а, х), де b — вектор коефіцієнтів дії у порядку їх дотримання; Розв’язання: » b = [0.1 0.5 0.7]; Результати розрахунку показано на рис. 17, де окрім дискретних сигналів зображено їхні обвідні.
Рис. 17 Приклад 2 [4]. Розрахувати реакцію фільтра другого порядку з нескінченною імпульсною характеристикою (НІХ-фільтра другого порядку), заданого різницевим рівнянням
у (n) = х (n) + х (n – 1) + х (n – 2) + 0, 7 у (n – 1) – 0, 25 у (n – 2), (30)
де n = 0 … 32; ω Т = 0, 5; х (n) = sin(ω Тn). Розв’язання: » b = [1 1 1]; » stem(n.y), gtext('y(n)') Результати розрахунку показано на рис. 18, де окрім дискретних сигналів зображено їхні обвідні.
Рис. 18 Розрахунок імпульсної характеристики з допомогою різницевого рівняння: функція filter [4]. Для того щоб обчислити імпульсну характеристику БІХ-фільтра за різницевим рівнянням (30), необхідно за дію вибрати одиничний цифровий імпульс — вектор [1 0...], де кількість нулів відповідає довжині імпульсної характеристики (насправді нескінченної). Приклад 3. Обчислити імпульсну характеристику НІХ-фільтра, заданого різницевим рівнянням (30) [4]. Розв’язання. Введемо позначення: h — імпульсна характеристика; delta — одиничний цифровий імпульс завдовжки 51 відлік (одиниця і 50 нулів): » b = [1 1 1]; Графік імпульсної характеристики зображено на рис. 19.
Рис. 19
Розрахунок імпульсної характеристики за коефіцієнтами різницевого рівняння: функція impz. Імпульсну характеристику можна розрахувати безпосередньо за коефіцієнтами різницевого рівняння з допомогою функції impz [4], формат якої має вигляд
[ h, nT ] = impz (b, a, N, Fs), де b — вектор коефіцієнтів дії в порядку їх дотримання; Приклад 4. Визначити імпульсну характеристику БІХ-фільтра за даними попереднього прикладу при N = 50 і Fs = 2000 Гц. Розв’язання: » b = [1 1 1]; Графік імпульсної характеристики (рис. 20) має такий самий вигляд, як і в попередньому прикладі (при обчисленні з допомогою функції filter), за виключенням того, що замість осі нормованого часу n є вісь nT. Рис. 20
Якщо потрібна вісь n, то зручніше використовувати інший формат функції impz: h = impz (b, a, N). Для цього прикладу (рис. 21) » h = impz(b, а, 50); Рис. 21
Моделювання роботи цифрових фільтрів на основі рівняння згортання: функція conv [4]. Моделювання роботи цифрових фільтрів у часовій області на основі рівняння згортання (30) з нульовими початковими умовами виконується з допомогою функції conv, формат якої має вигляд conv(x, h) або conv(h, Jt), де х — вектор відліків дії завдовжки k = length(x); Унаслідок обчислення функція conv повертає вектор реакції завдовжки k + i – 1. Приклад 5. Обчислити реакцію КІХ-фільтра, заданого різницевим рівнянням у прикладі 1 [9]. Розв’язання. Імпульсна характеристика дорівнює вектору коефіцієнтів різницевого рівняння: » b = [0.1 0.5 0.7]; Результати розрахунку показано на рис. 22.
Рис. 22
Приклад 6. Обчислити реакцію НІХ-фільтра, заданого різницевим рівнянням (30). Розв’язання. Імпульсну характеристику цифрового фільтра, розраховану в прикладі 3, обчислимо з допомогою такої програми:
» b = [1 1 1];
Графік імпульсної характеристики зображено на рис. 23.
Рис. 23
Обчислення імпульсної характеристики НІХ-фільтра за відомими реак-цією та дією: функція deconv [5]. Функція deconv виконує операцію, яка є зворотною згортанню. Тому, якщо реакція (вектор у) і дія (вектор х) є відомими, а вектори коефіцієнтів а, b невідомими, імпульсну характеристику можна знайти з допомогою функції deconv, що має в цьому випадку формат h = deconv(y, x),
де у, х, h — вектори відліків реакції, дії та імпульсної характеристики. Обчислення імпульсної характеристики з допомогою функції deconv є можливим тільки в тому випадку, якщо перші елементи векторів х та у відрізняються від нуля. Приклад 7. Обчислити імпульсну характеристику за умови, що дію обчислено з допомогою функції conv в прикладі 3. Розв’язання [9]: » h = deconv(y, х)
??? Error using ==> deconv
У цьому випадку обчислення імпульсної характеристики з допомогою функції deconv є неможливим. Приклад 7. Обчислити імпульсну характеристику НІХ-фільтра за умови, що дія вхідного сигналу
x (n) = cos(0, 5 n).
Розв’язання. Визначимо реакцію НІХ-фільтра:
» b = [0.1 0.5 0.7];
Виконаємо зворотну процедуру: за відомими параметрах x, y знайдемо імпульсну характеристику — вектор h:
» h = deconv (x, y)
|