При синтезе КИХ-фильтров для уменьшения пульсаций АЧХ используется сглаживание импульсной характеристики с помощью специальных функций (окон). Различными авторами предложено достаточно много функций окон, среди которых можно выбрать наиболее подходящее. Конкретное окно тем лучше сглаживает, чем уже у него ширина главного лепестка и чем меньше площади под боковыми лепестками.
5.
Используя функцию DTFT() с 512 частотными отсчетами, вычислим ДВПФ оконных функций из предыдущего пункта и построим в одном окне графики амплитудных спектров в шкале децибел.
>> [H,w]=DTFT(h(n),512);
>> [X,w]=DTFT(x,512);
>> [Y,w]=DTFT(y,512);
>> [Z,w]=DTFT(z,512);
>> subplot(411)
>> plot(w,20*log10(abs(H)))
>> subplot(412)
>> plot(w,20*log10(abs(X)))
>> subplot(413)
>> plot(w,20*log10(abs(Y)))
>> subplot(414)
>> plot(w,20*log10(abs(Z)))
Рис.8 Графики амплитудных спектров окон в шкале децибел.
Как видно из графиков у прямоугольного окна самая маленькая ширина главного лепестка, а самая большая – у окна Блэкмана.
6.
Определим ширину главного лепестка и относительный уровень боковых лепестков в децибелах (относительно амплитуды главного лепестка). Для более точного измерения будем использовать команду zoom. Составим таблицу с измеренными и соответствующими теоретическими значениями величин и их разностями.
тип окна |
ширина главного лепестка (теоретич.) |
ширина главного лепестка (измер.) |
разница |
Прямоугольное |
0.5 |
0.5 |
0 |
Хэмминга |
1 |
0.96 |
0.04 |
Ханна |
1 |
1.1 |
0.1 |
Блэкмана |
1.57 |
1.6 |
0.03 |
тип окна |
относительный уровень боковых лепестков в дБ (теоретич.) |
относительный уровень боковых лепестков в дБ (измер.) |
разница |
Прямоугольное |
-13 |
-13 |
0 |
Хэмминга |
-41 |
-40 |
1 |
Ханна |
-31 |
-29 |
2 |
Блэкмана |
-57 |
-59 |
2 |
7.
Построим графики окон Кайзера и их амплитудных спектров для N = 25, β = 0, β = 1 и β = 5. Используем для этого функцию Matlab kaiser(N, beta) и функцию DTFT() с 512 отсчетами частот.
1) β = 0
>> N=25;
>> k1=kaiser(N,0);
>> subplot(211)
>> plot(k1)
>> [K1,w]=DTFT(k1,512);
>> subplot(212)
>> plot(w,abs(K1))
Рис.9 Окно Кайзера и его амплитудный спектр для β = 0.
2) β = 1
>> k2=kaiser(N,1);
>> subplot(211)
>> plot(k2)
>> [K2,w]=DTFT(k2,512);
>> subplot(212)
>> plot(w,abs(K2))
Рис.10 Окно Кайзера и его амплитудный спектр для β = 1.
3) β = 5
>> k3=kaiser(N,5);
>> subplot(211)
>> plot(k3)
>> [K3,w]=DTFT(k3,512);
>> subplot(212)
>> plot(w,abs(K3))
Рис.11 Окно Кайзера и его амплитудный спектр для β = 5.
Более гибкие, по сравнению с другими окнами, возможности предоставляет так называемое окно Кайзера. - параметр формы окна, с помощью которого можно регулировать амплитуду боковых лепестков и форму окна. При увеличении параметра β форма окна становится более гладкой, и уровень боковых лепестков уменьшается, так, например, при β = 5 он приближается к нулю, но тем шире главный лепесток окна (если при β = 0 она составляет примерно 0.5, то при β = 5 она равна 1 ) и, значит, переходная полоса фильтра.
8.
Проведем расчет (синтез) фильтра по индивидуальному заданию. Построим в заключение расчета график АЧХ спроектированного фильтра и проверим его соответствие заданию.
График спецификации фильтра
Рис. П.2.1
- граничная частота полосы пропускания,
- граничная частота полосы задерживания,
- частота среза фильтра,
- допустимый уровень отклонений (пульсаций) АЧХ в полосе пропускания,
- допустимый уровень отклонений (пульсаций) АЧХ в полосе задерживания.
Пусть заданы следующие исходные требования к фильтру:
·
·
·
·
Проектирование фильтра заключается в выборе типа окна, определении порядка и
коэффициентов (значений ИХ) уравнения фильтра.
1. Частота среза фильтра , соответственно . Нормированная угловая переходная полоса .
2. Определим допустимый уровень пульсаций как или в децибелах дБ. Такому уровню ошибки аппроксимации идеальной АЧХ фильтра соответствует окно Ханна, для которого A = 44 дБ. Поэтому для дальнейшей реализации фильтра выбираем окно Ханна.
3. Определяем порядок фильтра с окном Ханна по выражению
4.
Окно Ханна фильтра
5.
Импульсная характеристика рассчитанного фильтра
График АЧХ:
>> M=81;
>> wc=0.5*pi;
>> n=0:M;
w=0.5-0.5*cos(2*pi.*n/M);
h=w.*((wc*sin(wc.*(n-(M/2))))./(pi*wc.*(n-(M/2))));
[H,w]=DTFT(h,512);
plot(w,abs(H))
xlabel('paд/c')
Рис.12 АЧХ спроектированного фильтра.
Рис.13 Пульсации в полосе пропускания.
Рис.14 Пульсации в полосе задерживания.
Как видно из графиков, спроектированный фильтр удовлетворяет исходным требованиям:
- уровень пульсаций в полосе пропускания не превышает δ1 = 0,004;
- уровень пульсаций в полосе задерживания не превышает δ2 = 0,008;
- граничная частота полосы пропускания составляет ωр = 0,45π ≈ 1,413 рад/с;
- граничная частота полосы задерживания составляет ωs = 0,55π ≈ 1,727 рад/с.
9.
Выполним фильтрацию сигнала speech спроектированным фильтром и оценим качество звучания сигнала до, и после фильтрации.
>> M=81;
>> n=0:81;
>> wc=0.5*pi;
>> h=(0.5-0.5*cos(2*pi*n/80)).*wc/pi.*sinc(wc*(n-M/2));
>> y1=conv(nspeech2,h);
>> stem(y1)
>> sound(y1)
>> sound(nspeech2)
Рис.15 График свертки исходного сигнала и импульсной
характеристики спроектированного фильтра.
В результате фильтрации спроектированным фильтром в сигнале из файла speech.mat на его фоне не стало слышно шумов. Этот фильтр имеет высокую эффективность фильтрации, но иногда его реализация может оказаться слишком сложной и дорогой, поэтому можно использовать фильтры чуть более низкого порядка, при этом фильтрации также будет достаточно качественной.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.