程序:
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('滤波器相对幅度响应')
结果:
[x,fs,nbits]=wavread('5_1.wav'销旅乎亏悉镇神)x1=enframe(x,200,100)%·
x2=enframe(x,hamming(200),100)%í÷°
figure
subplot(2,1,1),plot(x1(50,:))
figure
subplot(2,1,2),plot(x2(50,:))
常见的窗口有
矩做棚形窗 boxcar()
三角窗 triang()
汉宁窗 hanning()
海明窗 hamming()
布拉克曼窗 blackman()
恺撒窗kaiser(n,beta)
绘制频率响应曲纯轿则线有可以用freqz()函数,比如帆祥:
n=50
figurefreqz(boxcar(n),1)
figurefreqz(hanning(n),1)
figurefreqz(hamming(n),1)
figurefreqz(blackman(n),1)
figurefreqz(kaiser(n,2.5),1)
或者直接用vwtool()工具,例如:
w = kaiser(200,2.5)
wvtool(w)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)