Расчет цифровых фильтров с бесконечными импульсными характеристиками

СОДЕРЖАНИЕ: Расчет аналогового фильтра-прототипа низких частот. Получение дискретизированного аналога фильтра Чебышева при помощи метода билинейного z-преобразования. Влияние усечения коэффициентов передаточной функции на амплитудно-частотную характеристику.

Белорусский Государственный Университет

Информатики и Радиоэлектроники

Кафедра электронных вычислительных средств

Отчёт по лабораторной работе

Расчет цифровых фильтров с бесконечными импульсными характеристиками

Выполнила:

Студентка гр. 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- преобразования для перевода фильтра из ВЧ в НЧ. Увидели, что при усечение коэффициентов происходит пропускание ненужных нам частот.

Скачать архив с текстом документа