使用窗函数可以控制频谱主瓣宽度、旁瓣抑制度等参数,从而更好地进行波形频谱分析和滤波器参数的设计。将窗函数与信号的时域波形或频谱进行相乘的过程,就称为对信号做时域加窗和频域加窗。不同窗函数与信号时域波形相乘就是以不同窗函数对时间无限长的连续信号 进行时间段截取。
3分析实例
试对 进行频谱分析,要求分析的频率范围为0~100Hz,频率分辨率为1Hz。根据所要求的分析频率范围可以确定信号的采样率为 Hz,采样时间间隔(时间分辨率)为 ms,而根据要求的频率分辨率可以得出信号时域截断长度为 s。因此,对截断信号的采样点数为:
(6)
现应用MATLAB语言工具,使用数值计算的方法对其进行频谱估计。分别用矩形窗、汉明窗和汉宁窗进行时域加窗,分析信号幅度谱曲线,程序代码如下:
fs=200;deltaf=1;T=1/fs;L=1/deltaf;N=floor(fs/deltaf)+1;t=0:T:L;
freq=0:deltaf:fs;
ft=(sin(2*pi*50*t)+sin(2*pi*80*t))';
ftrectwin=rectwin(N).*ft./sqrt(sum(abs(rectwin(N).^2))./N);
fthamming=hamming(N).*ft./sqrt(sum(abs(hamming(N).^2))./N);
fthann=hann(N).*ft./sqrt(sum(abs(hann(N).^2))./N);
fwrectwin=T.*fft(ftrectwin,N);
fwhamming=T.*fft(fthamming,N);
fwhann=T.*fft(fthann,N);
subplot(3,1,1);plot(freq,10*log(abs(fwrectwin)));title('矩形窗频谱');
ylabel('幅度dB');axis([0,200,-50,0]);gridon;
subplot(3,1,2);plot(freq,10*log(abs(fwhamming)));
title('汉明窗频谱');ylabel('幅度dB');axis([0,200,-50,0]);gridon;
subplot(3,1,3);plot(freq,10*log(abs(fwhann)));title('汉宁窗频谱');
ylabel('幅度dB');axis([0,200,-50,0]);gridon;
程序执行后结果如图1所示:

图13种加窗后的幅度频谱图
可以看出,图1中3种加窗后对信号的频谱估计与理论值都有一定的误差,这是由于在实际分析过程中,要对连续信号采样和截断。加矩形窗的频谱误差最大,那是因为事实上,加矩形窗等价于截取时不作加窗处理。从图1中3种加窗后的幅度谱估计曲线来看,应用汉明窗和汉宁窗都比应用矩形窗(等价于不加窗)的估计精度要高。
4结论
以上对带限确知连续时间信号的频谱分析的数值计算方法进行了分析,在分析过程中要对信号进行采样和截断,因此会出现一定误差,但只要合理选择分析参数可以使误差在工程允许的范围之内。对于随机信号,由于是无限大能量的功率信号,它不满足傅里叶变换条件,而且也不存在解析表达式,因此就不能够应用确知信号的频谱计算方法去分析随机信号的频谱。但可以用以上确知信号频谱分析的方法分析随机信号的功率谱,因此同样适应于随机信号的频域研究。
参考文献
1 高西全,丁玉美.数字信号处理[M].西安:西安电子科技大学出版社.2010.90-110.
2 邵玉斌. Matlab/Simulink通信系统建模与仿真实例分析[M]. 北京:清华大学出版社.2008:166-180.
3 张登奇,杨慧银.信号的频谱分析及MATLAB实现[J].湖南理工学院学报(自然科学版).2010,23(3):29-33. 2/2 首页 上一页 1 2 |