Білоруський Державний Університет
Інформатики і радіоелектроніки
Кафедра електронних обчислювальних засобів
Звіт з лабораторної роботи
"Розрахунок цифрових фільтрів з нескінченними імпульсними характеристиками"
Виконала:
Студентка гр. 610701
Липко Ю.А.
Перевірив:
Родіонов М.М.
Мінськ 2009
Мета роботи: Розрахунок НІХ-фільтрів з різними апроксимаціями ідеальної АЧХ в пакеті Matlab та вивчення їх властивостей.
Завдання № 1: Розрахуйте аналоговий фільтр-прототип НЧ відповідно до варіанта (варіант № 8). Для отриманого фільтра побудуйте його АЧХ, ФЧХ а також діаграму нулів і полюсів.
Фільтр Чебишева 1 роду, 4-го порядку.
n = 4;
Rp = 1;
[Z, p, k] = cheb1ap (n, Rp);
[B, a] = zp2tf (z, p, k);
figure (1);
zplane (z, p);
title ('Lowpass Chebyshev Filter');
figure (2);
subplot (211);
[H, w] = freqs (b, a);
plot (w, abs (h), 'r');
title ('Amplitude response');
subplot (212);
plot (w, unwrap (angle (h)), 'r');
title ('Phase response');
Рисунок 1 - Діаграма нулів і полюсів
Малюнок 2 - АЧХ і ФЧХ фільтра НЧ виду Чебишева 1 роду
Завдання № 2: Перетворити отриманий фільтр-прототип у фільтр заданого виду з необхідними частотами зрізу (Варіант 8 - 650Гц). Побудуйте графіки АЧХ, ФЧХ і діаграму нулів і полюсів.
fs = 650;% частота зрізу
[B1, a1] = lp2lp (b, a, fs);
[Z1, p1, k1] = tf2zp (b1, a1);
figure (3);
zplane (z1, p1);
title ('Lowspass Chebyshev Filter');
figure (4);
subplot (211);
[H, w] = freqs (b1, a1);
plot (w, abs (h), 'm');
title ('Amplitude response');
subplot (212);
plot (w, unwrap (angle (h)), 'm');
title ('Phase response');
Рисунок 3 - Діаграма нулів і полюсів
Малюнок 4 - АЧХ і ФЧХ фільтра НЧ виду Чебишева 1 роду
Завдання № 3: Використовуючи функцію Matlab bilinear, яка реалізує метод білінійної z-перетворення, отримаєте Дискретизований аналог фільтра з попереднього завдання. Побудуйте АЧХ, ФЧХ, групову затримку і діаграму нулів і полюсів отриманого фільтра.
Fs = 2600;
[Zt, pt, kt] = bilinear (z1, p1, k1, Fs);
[Bt, at] = zp2tf (zt, pt, kt);
figure (5)
zplane (zt, kt);
title ('Bilinear Conversion');
figure (6);
subplot (311);
[H, w] = freqz (bt, at)
plot (w, abs (h), 'g');
subplot (312);
plot (w, unwrap (angle (h)), 'g');
subplot (313);
grpdelay (bt, at, 64, Fs );%%% групова затримка
Малюнок 5 - Діаграма нулів і полюсів
Малюнок 6 - АЧХ, ФЧХ і групова затримка фільтра
Завдання № 4: Розрахуйте цифровий ФВЧ з параметрами заданими для кожного варіанту. Визначити який порядок будуть мати різні типи фільтрів. Порівняти ефективність апроксимацій при більш жорстких і більш м'яких вимогах до АЧХ.
close all;
clear all;
clear all;
Wp = 0.4;% нормована гранична частота придушення
Ws = 0.7;% нормована гранична частота пропускання
Rp = 0.5;% допустима нерівномірність у смузі пропущення
Rs = 70;% мінімальне загасання в смузі придушення
%%%%%%%%%%%%%% Фільтр Баттерворта %%%%%%%%%%%%
[N1, Wn1] = buttord (Wp, Ws, Rp, Rs);
sprintf ('battervorta -% d', n1)
[Z, p, k] = butter (n1, Wn1, 'high');
[B, a] = zp2tf (z, p, k);
figure;
zplane (z, p);
figure;
title ('battervorta');
freqs (z, p);
%%%%%%%%%%%%%% Фільтр Чебишева 1 роду %%%%%%%%
[N2, Wn2] = cheb1ord (Wp, Ws, Rp, Rs);
[Z, p, k] = cheby1 (n2, Rp, Wn2, 'high');
[B, a] = zp2tf (z, p, k);
figure;
zplane (z, p);
figure;
freqs (z, p);
%%%%%%%%%%%% Фільтр Чебишева 2 роду %%%%%%%%%%
[N3, Wn3] = cheb2ord (Wp, Ws, Rp, Rs);
[Z, p, k] = cheby2 (n3, Rs, Wn3, 'High');
[B, a] = zp2tf (z, p, k);
figure;
zplane (z, p);
figure;
freqs (z, p);
%%%%%%%%%%% Фільтр Еліптичний %%%%%%%%%%%%%
[N4, Wn4] = ellipord (Wp, Ws, Rp, Rs);
[Z, p, k] = ellip (n4, Rp, Rs, Wn4, 'high');
[B, a] = zp2tf (z, p, k);
figure;
zplane (z, p);
figure;
freqs (z, p);
sprintf ('chebysheva1 -% d', n2)
sprintf ('chebysheva2 -% d', n3)
sprintf ('elipticheskiy -% d', n4)
Малюнок 7 - Діаграма нулів і полюсів фільтра Баттерворта
.
Рисунок 8 - АЧХ, ФЧХ фільтра Баттерворта
Рисунок 9 - Діаграма нулів і полюсів фільтра Чебишева 1 роду
Рисунок 10 - АЧХ, ФЧХ фільтра Чебишева 1 роду
Малюнок 11 - Діаграма нулів і полюсів фільтра Чебишева 2 роду
Рисунок 12 - АЧХ, ФЧХ фільтра Чебишева 2 роду
Малюнок 13 - Діаграма нулів і полюсів еліптичного фільтра
Рисунок 14 - АЧХ, ФЧХ еліптичного фільтра
Завдання № 5: Дослідіть як позначиться на АЧХ і ФЧХ фільтрів із завдань 1-3 усікання коефіцієнтів передавальної функції до чотирьох десяткових розрядів. До двох десяткових розрядів.
close all;
clear all;
n = 4;
fs = 1000;
fc = 300;
Rp = 1;
Rs = 70;
Wn = fc * 2 / fs;
%%%%%%%%%%%% Butterworth %%%%%%%%%%%
figure;
[B, a] = butter (n, Wn);
[H, f] = freqz (b, a, 1024, fs);
b = round (b * 10000) / 10000;
a = round (a * 10000) / 10000;
[H2, f] = freqz (b, a, 1024, fs);
b = round (b * 1000) / 1000;
a = round (a * 1000) / 1000;
[H3, f] = freqz (b, a, 1024, fs);
b = round (b * 100) / 100;
a = round (a * 100) / 100;
[H4, f] = freqz (b, a, 1024, fs);
subplot (211);
plot (f, 20 * log10 (abs (h)), 'k');
hold on;
plot (f, 20 * log10 (abs (h2)), 'g');
plot (f, 20 * log10 (abs (h3)), 'b');
plot (f, 20 * log10 (abs (h4)), 'r');
legend ('Ideal', '4 categories ', '3 categories', '2 categories ');
grid on;
title ('Amlitude response');
ylabel ('Butterworth');
subplot (212);
plot (f, angle (h), 'k');
hold on;
plot (f, angle (h2), 'g');
plot (f, angle (h3), 'b');
plot (f, angle (h4), 'r');
grid on;
title ('Phase response');
ylabel ('Butterworth');
%%%%%%%%%%%% Chebyshev1 %%%%%%%%%%%
figure;
[B, a] = cheby1 (n, Rp, Wn);
[H, f] = freqz (b, a, 1024, fs);
b = round (b * 10000) / 10000;
a = round (a * 10000) / 10000;
[H2, f] = freqz (b, a, 1024, fs);
b = round (b * 1000) / 1000;
a = round (a * 1000) / 1000;
[H3, f] = freqz (b, a, 1024, fs);
b = round (b * 100) / 100;
a = round (a * 100) / 100;
[H4, f] = freqz (b, a, 1024, fs);
subplot (211);
plot (f, 20 * log10 (abs (h)), 'k');
hold on;
plot (f, 20 * log10 (abs (h2)), 'g');
plot (f, 20 * log10 (abs (h3)), 'b');
plot (f, 20 * log10 (abs (h4)), 'r');
legend ('Ideal', '4 categories ', '3 categories', '2 categories ');
grid on;
title ('Amlitude response');
ylabel ('Chebyshev1');
subplot (212);
plot (f, angle (h), 'k');
hold on;
plot (f, angle (h2), 'g');
plot (f, angle (h3), 'b');
plot (f, angle (h4), 'r');
grid on;
title ('Phase response');
ylabel ('Chebyshev1');
%%%%%%%%%%%% Elliptic %%%%%%%%%%%%%
figure;
[B, a] = ellip (n, Rp, Rs, Wn);
[H, f] = freqz (b, a, 1024, fs);
b = round (b * 10000) / 10000;
a = round (a * 10000) / 10000;
[H2, f] = freqz (b, a, 1024, fs);
b = round (b * 1000) / 1000;
a = round (a * 1000) / 1000;
[H3, f] = freqz (b, a, 1024, fs);
b = round (b * 100) / 100;
a = round (a * 100) / 100;
[H4, f] = freqz (b, a, 1024, fs);
subplot (211);
plot (f, 20 * log10 (abs (h)), 'k');
hold on;
plot (f, 20 * log10 (abs (h2)), 'g');
plot (f, 20 * log10 (abs (h3)), 'b');
plot (f, 20 * log10 (abs (h4)), 'r');
legend ('Ideal', '4 categories ', '3 categories', '2 categories ');
grid on;
title ('Amlitude response');
ylabel ('Elliptic');
subplot (212);
plot (f, angle (h), 'k');
hold on;
plot (f, angle (h2), 'g');
plot (f, angle (h3), 'b');
plot (f, angle (h4), 'r');
grid on;
title ('Phase response');
ylabel ('Elliptic');
Рисунок 15 - АЧХ і ФЧХ фільтра Баттерворта
Рисунок 16 - АЧХ і ФЧХ фільтра Чебишева 1 роду
Рисунок 17 - АЧХ і ФЧХ еліптичного фільтра
Висновок: У результаті виконаної лабораторної роботи, були вивчені фільтри НЧ і ВЧ та їх типи. Програмування їх в Matlab. Вивчено метод білінійної z-перетворення для перекладу фільтра з ВЧ в НЧ. Побачили, що при усікання коефіцієнтів відбувається пропускання непотрібних нам частот.