h = freqs(b, a, w) 根据系数向量计算返回滤波器的复频域响应。
调用这个低通滤波器时,使用下面的函数
sf=filter(a,b,s) %s为需滤波的数据,sf经过你设计的低通滤波器以后的新数据
Fp=2100Fs=2800
Wp=2*pi*FpWs=2*pi*Fs
[N,Wn]=buttord(Wp,Ws,10,30,'s')
[b,a]=butter(N,Wn,'s')
sf=filter(a,b,T)
将模拟频率转化为数字频率,设取样时间为T(要满足抽样定理) Ωp=2π*fp*T Ωs=2π*fs*T 过渡带宽度△Ω=Ωp-Ωs 阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据公式确定滤波器的参数一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下: wp=ws=Ap=1As=100Rp=1-10.^(-0.05*Ap)Rs=10.^(-0.05*As)f=[fp fs]a=[0 1]dev=[Rp Rs][M,wc,beta,ftype]=kaiserord(f,a,dev)M=mod(M,2)+Mh=fir1(M,wc,ftype,kaiser(M+1,beta))omega=linspace(0,pi,512)mag=freqz(h,[1],omega)plot(omega/pi,20*log10(abs(mag)))gridomega1=linspace(0,wp,512)h1=freqz(h,[1],omega1)omega2=linspace(ws,pi,512)h2=freqz(h,[1],omega2)fprintf('Ap=%.4f\n',-20*log10(min(abs(h1))))fprintf('As=%.4f\n',-20*log10(max(abs(h2))))运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化欢迎分享,转载请注明来源:内存溢出
评论列表(0条)