程序:
wlp = 0.35*pi
whp = 0.65*pi
wc = [wlp/pi,whp/pi]
N = ceil(8/0.15)
n=0:N-1
window= hanning(N)
[h1,w]=freqz(window,1)
subplot(411)
stem(window)%画窗函数
axis([0 60 0 1.2])
grid
xlabel('n')
title('Hanning窗函数')
subplot(412)
plot(w/pi,20*log(abs(h1)/abs(h1(1)))) %画Hanning窗频谱图
axis([0 1 -350 0])
grid
xlabel('w/pi')
ylabel('幅度(dB)')
title('Hanning窗函数的频谱')
hn = fir1(N-1,wc, hanning (N))%基于窗函数的 FIR 滤波器
[h2,w]=freqz(hn,1,512) %freqz是用离散傅里叶变换的标准公示计算的 fft使用快速傅里
subplot(413)
stem(n,hn)
axis([0 60 -0.25 0.25])
grid
xlabel('n')
ylabel('h(n)')
title('Hanning窗函数的单位脉冲响应')
subplot(414)
plot(w/pi,20*log(abs(h2)/abs(h2(1))))
grid
xlabel('w/pi')
ylabel('幅度(dB)')
title('滤波器相对幅度响应')
结果:
wp=0.2*piws=0.3*piwd=ws-wp %计算过渡带宽度
N=ceil(8*pi/wd)%根据汉宁窗计算所需h(n)长度去大于等于x的最小整数
wn=(0.2+0.3)*pi/2 %计算理想理想低通滤波器通带截止频率
b=fir1(N,wn/pi,hanning(N+1)) %调用fir1计算低通FIR数字滤波器
freqz(b,0.25,512)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)