关于MATLAB FFT频谱泄露和加窗

我们分析的信号,如果只含整数次谐波的话,用FFT分析信号的频谱和相位是非常准确的,如果信号含有确定的间谐波,比如信号含有60HZ和65HZ的频率,那我们也可以准确的分析出信号的频谱和相位,我们只要用矩形窗截取10个周波的信号就可以分析出50HZ/10=5HZ以及5HZ的整数倍的信号的频谱和相位了,分析的相位和频谱都是非常准确的!如果我们需要分析的信号含有不确定的间谐波,比如我们根本不知道信号含有什么样的间谐波,那么此时用FFT分析,必然会有频谱泄露!那么怎么样才能减少频谱泄露呢(注意:这种情况下我们只能减少频谱泄露,而基本上不可能完全消除频谱泄露)?

我们可以有两种方法:方法一:增加采样的长度,方法二:加窗函数。

 
增加采样长度可以分析出更多频率的信号,可以减少频谱泄露,不过增加采样长度必然会对数据处理的实时性造成影响! 理想的窗函数是主瓣很窄,旁瓣衰减很快,矩形窗的主瓣很窄,但是旁瓣衰减却很慢,hanning窗、hamming窗、blackman窗等的旁瓣衰减有了明显的改进,但是主瓣却宽了很多,大概是矩形窗主瓣的二倍,blackman窗的主瓣还要宽,这就造成了信号频谱的频率识别率很低! 什么叫频率识别率呢?简单举个例子解释一下:比如说我取十个

你可能感兴趣的:(MATLAB解决方案)