Окно Кайзера является приближением к проляту сфероидального окна, для которого отношение энергии майнлоба к энергии бокового elobe максимизируется. Для окна Кайзера определенной длины параметр β управляет относительным ослаблением бокового колеса. Для заданного β относительное ослабление бокового колеса фиксируется относительно длины окна. Оператор kaiser
(n,beta)
вычисляет длину n
Окно Кайзера с beta
параметра.
Когда β увеличивается, относительное ослабление бокового колеса уменьшается, и ширина основного колеса увеличивается. Этот снимок экрана показывает, как относительное ослабление бокового колеса остается примерно таким же для параметра фиксированного β, так как изменяется длина.
Примеры окон Кайзера с длиной 50 и β параметрами 1, 4 и 9 показаны в этом примере.
Чтобы создать эти окна Кайзера с помощью MATLAB® в командной строке введите следующее:
n = 50; w1 = kaiser(n,1); w2 = kaiser(n,4); w3 = kaiser(n,9); [W1,f] = freqz(w1/sum(w1),1,512,2); [W2,f] = freqz(w2/sum(w2),1,512,2); [W3,f] = freqz(w3/sum(w3),1,512,2); plot(f,20*log10(abs([W1 W2 W3]))) grid legend('\beta = 1','\beta = 4','\beta = 9')
Чтобы создать эти окна Кайзера с помощью командной строки MATLAB, введите следующее:
w1 = kaiser(50,4); w2 = kaiser(20,4); w3 = kaiser(101,4); [W1,f] = freqz(w1/sum(w1),1,512,2); [W2,f] = freqz(w2/sum(w2),1,512,2); [W3,f] = freqz(w3/sum(w3),1,512,2); plot(f,20*log10(abs([W1 W2 W3]))) grid legend('length = 50','length = 20','length = 101')
Существует две формулы проекта, которые могут помочь вам спроектировать конечная импульсная характеристика, чтобы соответствовать набору спецификаций фильтра с помощью окна Кайзера. Чтобы достичь относительного ослабления бокового elobe -α дБ, β (beta
) параметр есть
Для ширины перехода рад/образец, используйте длину
.
Фильтры, разработанные с использованием этой эвристики, будут примерно соответствовать спецификациям, но вы должны проверить это. Для разработки lowpass с частотой среза 0,5 рад/образец, ширина перехода 0,2 рад/образец, и 40 дБ ослабления в полосе пробок, попробовать
[n,wn,beta] = kaiserord([0.4 0.6]*pi,[1 0],[0.01 0.01],2*pi);
h = fir1(n,wn,kaiser(n+1,beta),'noscale');
The kaiserord
функция оценивает порядок фильтра, частоту отключения и бета- параметра окна Кайзера, необходимую для соответствия заданному набору частотного диапазона спецификаций.
Рябь в полосе пропускания примерно такая же, как рябь в полосе упора. Как видно из частотной характеристики, этот фильтр почти соответствует спецификациям:
fvtool(h,1)