Министерство образования РФ
Новосибирский Государственный Технический Университет
Кафедра Систем Сбора и Обработки Данных
Дисциплина «Теория и обработка сигналов», 6 - й семестр
Отчет
ПО ЛАБОРАТОРНОЙ РАБОТЕ № 10
«ЦИФРОВЫЕ ФИЛЬТРЫ
С КОНЕЧНОЙ ИМПУЛЬСНОЙ ХАРАКТЕРИСТИКОЙ»
Факультет: АВТ Преподаватель:
Группа: АТ-53 доц. Щетинин Ю.И.
Вариант: 8
Студенты: Ездакова Е.
Дашиев Т.
Новосибирск, 2008
Цель работы:изучение методов анализа и синтеза фильтров с конечной импульсной характеристикой (КИХ-фильтры, другое название – нерекурсивные фильтры) с использованием сглаживающих оконных функций.
1. Построение графиков импульсной характеристики КИХ-фильтра нижних частот с прямоугольным окном частотой среза для двух значений длины фильтра N = 15 и N = 50.
Matlab Script (labwork10_1.m)
wc=2;%частота среза
%Построение ИХ идеального фильтра по 15 отсчётам
N1=15;
n=0:N1-1;
h1=sin (wc.*(n-(N1-1)./2))./(pi.*(n-(N1-1)./2));
subplot (211);
stem(n,h1);
title ('Импульсная характеристика КИХ-фильтра, N=15');
xlabel('Номер отсчёта n');
ylabel('h[n]');
%Построение ИХ идеального фильтра по 50 отсчётам
N2=50;
n=0:N2-1;
h2=sin(wc.*(n-(N2-1)./2))./(pi.*(n-(N2-1)./2));
subplot(212);
stem(n,h2);
title ('Импульсная характеристика КИХ-фильтра, N=50');
xlabel('Номер отсчёта n');
ylabel('h[n]');
Рис. 1. Графики импульсной характеристики КИХ-фильтра нижних частот с прямоугольным окном
частотой среза для двух значений длины фильтра N = 15 и N = 50.
Комментарии:
При ограничении длины фильтра 15 отсчётами ширина главного лепестка больше чем при ограничении длины фильтра 50 отсчётами, следовательно, чем больше N тем больше сужается главный лепесток ИХ.
2. Вычисление ДВПФ импульсных характеристик и построение их АЧХ в линейном масштабе и в децибелах для 512 отсчетов частоты, используя функцию DTFT. Определение полосы пропускания, переходной полосы и полосы задерживания фильтра по характеристикам в линейном масштабе.
Matlab Function (DTFT.m)
function [X,w] = DTFT(x,M)
% Функция вычисляет значения DTFT от вектора x.
% Обращение [X,w] = DTFT(x,0)
% здесь X - вектор значений DTFT,
% w - вектор угловых частот.
% Если желательно вычислить DTFT с M значениями частоты,
% используется обращение [X,w] = DTFT(x,M)
% Этот вариант используется, когда размер вектора x
% меньше размера вектора частот w,
% при этом x дополняется нулевыми значениями
N = max(M,length(x));
% Приведение FFT к размеру 2^m
N = 2^(ceil(log(N)/log(2)))
% Вычисление fft
X = fft(x,N);
% Вектор частот
w = 2*pi*( (0:(N-1))/N );
w = w - 2*pi*(w>=pi)
% Сдвиг FFT к интервалу от -pi до +pi
X = fftshift(X);
w = fftshift(w);
Matlab Script (labwork10_2.m)
N1 = 16;
N2 = 50;
n1 = 0:N1-1;
n2 = 0:N2-1;
wc = 2;
h1 = sin(wc.*(n1-(N1-1)/2))./(pi.*(n1-(N1-1)/2));
h2 = sin(wc.*(n2-(N2-1)/2))./(pi.*(n2-(N2-1)/2));
[H1,w] = DTFT(h1,512);
[H2,w] = DTFT(h2,512);
%Графики АЧХ в линейном масштабе
figure (1);
subplot(2,1,1);
plot(w./(2*pi),abs(H1)./max(abs(H1)),'r');
title('АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 15');
xlabel('f, Гц'), ylabel('|H1|/max(|H1|)'), grid;
subplot(2,1,2);
plot(w./(2*pi),abs(H2)./max(abs(H2)),'b');
title('АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 50');
xlabel('f, Гц'), ylabel('|H2|/max(|H2|)'), grid;
%Графики АЧХ в логарифмическом масштабе
figure (2);
subplot(2,1,1);
plot(w./(2*pi),20*log10(abs(H1)),'r');
title('АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 15');
xlabel('f, Гц'), ylabel('20lg(|H1|), dB'), grid;
subplot(2,1,2);
plot(w./(2*pi),20*log10(abs(H2)),'b');
title('АЧХ КИХ-фильтра нижних частот с прямоугольным окном для N = 50');
xlabel('f, Гц'), ylabel('20lg(|H2|), dB'), grid;
Рис. 2. Графики АЧХ КИХ-фильтра нижних частот с прямоугольным окном частотой среза
для значений длины фильтра N = 15 и N = 50 в линейном масштабе.
.
Рис.3. Графики АЧХ КИХ-фильтра нижних частот с прямоугольным окном частотой среза
для значений длины фильтра N = 15 и N = 50 в логарифмическом масштабе.
Рис.4. Графики АЧХ КИХ-фильтра нижних частот с прямоугольным окном частотой среза
для значений длины фильтра N = 15 и N = 50 в линейном масштабе для определения
диапазона пропускания, переходной области и полосы задерживания.
Таблица 1. Значения диапазона пропускания, переходной области и полосы задерживания для фильтра с различной длиной (N = 15 и N = 50)
Длина фильтра |
Полоса пропускания, Гц/отсчет |
Переходная область, Гц |
Полоса задерживания, Гц |
15 |
0-0.29 |
0.29-0.35 |
от 0.35 |
50 |
0-0.31 |
0.31-0.33 |
от 0.33 |
Комментарии:
По данным таблицы видно, что при увеличении длины фильтра, уменьшается ширина переходной области.
По графикам видно что из-за усечения возникают пульсации (эффект Гиббса) в полосе пропускания и полосе задерживания, амплитуда которых при увеличении порядка фильтра практически не изменятся, но количество их возрастает с увеличением порядка фильтра.
3. Фильтрация сигнала speech с использованием операции свёртки.
Прослушивание исходного и отфильтрованного через фильтры разного порядка сигнала:
>> load('speech.mat');%загрузка файла speech.mat
>> N1 = 16;
>> N2 = 50;
>> n1 = 0:N1-1;
>> n2 = 0:N2-1;
>> wc = 2;
>> h1 = sin(wc.*(n1-(N1-1)/2))./(pi.*(n1-(N1-1)/2));
>> h2 = sin(wc.*(n2-(N2-1)/2))./(pi.*(n2-(N2-1)/2));
>> y1 = conv(nspeech2,h1); %свертка исходного сигнала с ИХ фильтра (N = 15)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.