凯撒窗的设计
一、思路分析
1、利用公式来设计凯撒窗
设通带波动=阻带衰减为deta=,采样频率fs为20M, 阻带起始频率fa为10M,。可以直接利用公式得到相关的阶数N和凯撒窗的值wk(n)。接下来就是调用fft和plot函数来画出时域和频域的图。
2、调用matlab中的函数来计算并画图。
首先是调用kaiserord函数来计算N、wk(n)、beta的值,接下来可以用两种方法。一是调用fir1和freqz函数,不过只是画出了时域的幅度和相位,所以采用第二种来画出时域和频域的。第二种就是调用matlab中的kaiser函数计算wk(n)的值,并调用wvtool函数画出时域和频域的图。
这里需要注意的是在调用kaiserord函数里,要求f=[fc fa]中的fa和fc在0-fs/2之间,而且在靠近0和fs/2时结果不准确,误差大,所以fs这里取成更大为25MHz。,调用kaiserord函数所得到的结果也是误差大不准确,失去仿真的意义了。
二、程序
deta=;%取通带波动=阻带衰减
fs=20000000;%采样频率,单位Hz,为20M
fa=10000000;%阻带起始频率,单位Hz,为10M
fc=9980000;%截止频率,单位Hz,
N=(-20*log10(deta)-)*fs/(*(fa-fc))+1;%根据公式2-102计算滤波器阶数
N=round(N);%取最接近N的整数
beta=*(-20*log10(deta)-);%deta以dB表示>=50dB时的情况。当deta>21且<=50时
%beta=*(-20*log10(deta)-21)^+*( -20*log10(deta)-21)。其余beta=0。
Wk=kaiser(N,beta);
wvtool(Wk);%调用matlab的凯撒窗函数,但N值是利用公式所算的,画出时域和频域函数
pause
k=0:N-1;
Wk1=besselj(0,beta*(1-(2*(k-N/2)/N).^2).^)/besselj(0,beta);%用公式2-96计算凯撒窗
Wf=fftshift(Wk1,N);%频域
f=(0:N-1)/N;%频率归一化形式
subplot(1,2,1);%画第一幅子图
plot(k,Wk1);%画利用公式计算的时域的凯撒窗函数
grid;%加网格
xlabel('k');
ylabel('Wk(n)');
title('公式计算的凯撒窗函数,时域');
subplot(1,2,2);%画第二幅子图
plot(f,-20*log10(abs(Wf)));%画利用公式计算的频域的凯撒窗函数
grid;
xlabel('f');
ylabel('Wk(f)');
title('公式计算的凯撒窗函数,频域');
pause
fs=25000000;%kaiserord参数的要求,fs必须选择更大的,原因见思路分析
f=[fc fa];
a=[1 0];%对应
凯撒窗的设计一、思路分析1、利用公式来设计凯撒窗设通带波动=阻b 来自淘豆网www.taodocs.com转载请标明出处.