📄 wwx.m
字号:
deta=0.0025;%取通带波动=阻带衰减
fa=8500000;%阻带起始频率,单位Hz
fc=8000000;%截止频率,单位Hz
fs=20000000;%采样频率,单位Hz
deltaf=fa-fc;%过渡带宽度
arfa=-20*log10(deta);
f=fa+deltaf/2;
fcuts=[fc fa];%通带截止频率和阻带起始频率范围
mags=[1 0];%表示要设计的是低通滤波
dev=[0.0025 0.0025];%通带波动和阻带衰减
[n,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);%调用matlab的凯撒窗相关函数
hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
figure(1);
impz(hh,1);%画调用matlab中的函数而设计的滤波器的冲激响应
figure(2);
freqz(hh);%画调用matlab中的函数而设计的滤波器的频率响应,幅度和相位
N=((arfa-7.95)*fs)/(14.36*deltaf)+1;%根据公式2-102计算滤波器阶数
N=round(N);%取最接近N的整数
beta=0.1102*(-20*log10(deta)-8.7);%arfa>=50dB时的情况。当arfa>21且<=50时,beta=0.5842*(-20*log10(deta)-21)^0.4+0.7886*(-20*log10(deta)-21)。其余beta=0。
n=N;%最终采用的kaiser窗函数的阶数
w=2*pi*f/fs;%角频率
k=-(n-1)/2:(n-1)/2;%与kaiser窗函数取值范围保持一致
hidk=(sin(k*w)+(k==0))./(k*w+(k==0));%理想滤波器的冲激响应
k=0:n-1;%调用公式的kaiser窗范围
Wk=besselj(0,beta*(1-(2*(k-n/2)/n).^2).^0.5)/besselj(0,beta);%用公式2-96计算的凯撒窗
hi=hidk.*Wk;%调用公式所设计的低通滤波
figure(3);
impz(hi,1);%调用公式所设计的低通滤波的冲激响应
figure(4);
freqz(hi);%调用公式所设计的低通滤波的频率响应,幅度和相位
figure(5);
impz(hidk,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -