stem(k1)
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Окно Кайзера, beta = 0')
[K1,w]=DTFT(k1,512);
subplot(212)
plot(w,abs(K1))
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Амплитудный спектр')
k2=kaiser(N,1);
figure(2)
subplot(211)
stem(k2)
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Окно Кайзера, beta = 1')
[K2,w]=DTFT(k2,512);
subplot(212)
plot(w,abs(K2))
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Амплитудный спектр')
k3=kaiser(N,5);
figure(3)
subplot(211)
stem(k3)
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Окно Кайзера, beta = 5')
[K3,w]=DTFT(k3,512);
subplot(212)
plot(w,abs(K3))
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 8);
title ('Амплитудный спектр')
Рис. 8. Графики: окно Кайзера для β = 0 и его амплитудный спектр.
Рис. 9. Графики: окно Кайзера для β = 1 и его амплитудный спектр.
Рис. 10. Графики: окно Кайзера для β = 5 и его амплитудный спектр.
Для прямоугольного окна и окон: Хэмминга, Ханна и Блэкмана единственным управляемым параметром является размер окна. Но относительные уровни боковых лепестков и, значит, пульсации (отклонения) в полосах пропускания и задерживания у таких окон не зависят от длины окна.
Более гибкие возможности предоставляет так называемое окно Кайзера. Функция, описывающая его поведение
Здесь - модифицированная функция Бесселя первого рода нулевого порядка,
М - порядок фильтра, позволяющий управлять шириной переходной области фильтра,
- параметр формы окна, с помощью которого можно регулировать амплитуду боковых лепестков и форму окна.
При увеличении относительный уровень боковых лепестков уменьшается, и график амплитудного спектра становится более гладким. Но увеличивается ширина главного лепестка, и, следовательно, увеличивается ширина переходной полосы.
Для построения окна Кайзера в Matlab используется функция kaiser(N, beta).
8. Расчет фильтра. Построение графика АЧХ спроектированного фильтра.
График спецификации фильтра
- граничная частота полосы пропускания,
- граничная частота полосы задерживания,
- частота среза фильтра,
- допустимый уровень отклонений (пульсаций) АЧХ в полосе пропускания,
- допустимый уровень отклонений (пульсаций) АЧХ в полосе задерживания.
Исходные требования к фильтру:
· ,
· ,
· рад/с,
·
рад/с.
Проектирование фильтра:
1. Частота среза фильтра , Нормированная угловая переходная полоса .
2. Определение допустимого уровень пульсаций как или в децибелах . Такому уровню ошибки аппроксимации идеальной АЧХ фильтра соответствует окно Блэкмана, для которого A = 74 дБ.
3. Определение порядка фильтра с окном Блэкмана по выражению:
4. Окно Блэкмана фильтра:
5. Импульсная характеристика рассчитанного фильтра:
M=60;
n=0.001:M;
wc=0.65*pi;
w=0.42-0.5*cos(2*pi*n./M)+0.08*cos(4*pi*n./M);
h=w.*((wc*sin(wc.*(n-(M/2))))./(pi*wc*(n-(M/2))));
[H,w]=DTFT(h,512);
figure(1)
plot(w,abs(H)), grid
xlabel('rad/s')
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 10);
title ('Амплитудно-частотная характеристика фильтра')
figure(2)
plot(w,20*log10(abs(H)))
set (gca, 'FontName', 'Time New Roman Cyr', 'FontSize', 10);
title ('Логарифмическая АЧХ фильтра')
grid
xlabel('rad/s')
Рис.11. Амплитудно-частотная характеристика спроектированного фильтра.
Рис. 12. Логарифмическая амплитудно-частотная характеристика спроектированного фильтра.
Рис.13. Пульсации в полосе пропускания.
Рис.14. Пульсации в полосе задерживания.
Из графиков можем сделать вывод, что спроектированный фильтр соответствует исходным требованиям. Полоса пропускания фильтра от 0 до 1.72 рад/с (по требованиям до ), полоса задерживания начинается с 2.4 рад/с (по требованиям с ). Пульсации в полосе пропускания и в полосе задерживания не превышают 0.0005.
9. Фильтрация сигнала speech при помощи спроектированного фильтра и оценка качества звучания сигнала до и после фильтрации.
Matlab Script (labwork10_8)
load('speech.mat');
M=61;
n=0:M-1;
wc=0.65*pi;
w=0.42-0.5*cos(2*pi*n./M)+0.08*cos(4*pi*n./M);
wc = 0.5*pi;
h = w.*(wc*sin(wc.*(n-(M/2))))./(pi*wc*(n-(M/2)));
y = conv(nspeech2,h);
[Y,w] = DTFT(nspeech2,512);
subplot(2,1,1);
plot(w./(2*pi),abs(Y));
title ('Амплитудный спектр исходного сигнала');
xlabel('f, Гц');grid;
[Y1,w] = DTFT(y,512);
subplot(2,1,2);
plot(w./(2*pi),abs(Y1));
title ('Амплитудный спектр сигнала после фильтрации спроектированным фильтром');
xlabel('f, Гц');grid;
Рис.15. График свертки исходного сигнала и импульсной характеристики спроектированного фильтра.
Комментарии:
При прослушивании отфильтрованного сигнала, наблюдается хорошее подавление шумов, но и уровень полезного сигнала стал ниже.
Выводы:
· При выполнение данной лабораторной работы был разработан КИХ-фильтр методом взвешивающих окон. Этот метод заключается в переходе от идеального фильтра к его ИХ при помощи преобразования Фурье, усечения этой характеристики и улучшения ее при помощи той или иной оконной функции (окно Хэмминга,окно Ханна, окно Блэкмана, окно Кайзера и др.), удовлетворяющей требованиям полосы пропускания и задерживания разрабатываемого КИХ-фильтра, определения порядка фильтра с учетом выбранной оконной функции и нахождения коэффициентов ИХ фильтра.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.