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

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

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


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


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


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


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


Выполнила:


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

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:1022
Символов:10653
Размер:20.81 Кб.