курсовые,контрольные,дипломы,рефераты
Белорусский Государственный Университет
Информатики и Радиоэлектроники
Кафедра электронных вычислительных средств
Отчёт по лабораторной работе
"Расчет цифровых фильтров с бесконечными импульсными характеристиками"
Выполнила:
Студентка гр. 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;
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');
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');
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- преобразования для перевода фильтра из ВЧ в НЧ. Увидели, что при усечение коэффициентов происходит пропускание ненужных нам частот.
Белорусский Государственный Университет Информатики и Радиоэлектроники Кафедра электронных вычислительных средств Отчёт по лабораторной работе "Расчет цифровых фильтров с бесконечными
Реализация БД визуальными средствами СУБД Access 2003
Реализация почтового клиента и сервера на основе CORBA
Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации
Регистрация хозяйственных операций
Редакторы текстов
Решение обыкновенных дифференциальных уравнений
Решение систем линейных алгебраических уравнений (прямые методы)
Решение финансовых задач при помощи Microsoft Excel
Робота з пакетом Grapher 2.0 for Windows
Робота з пакетом MathCAD 2000 Pro
Copyright (c) 2024 Stud-Baza.ru Рефераты, контрольные, курсовые, дипломные работы.