DSP

用FFT估计单频正弦信号的幅度

2019-07-13 19:48发布

用FFT估计单频正弦信号的幅度
本文主要依据如下链接文章翻译整理而成,图片及公式也来源于该文,版权归原作者所有。 http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5714405&contentType=Journals+%26+Magazines&sortType%3Dasc_p_Sequence%26filter%3DAND%28p_IS_Number%3A5714377%29
        FFT是数字信号处理中最常用,也是最重要的算法。在实践中,人们常用FFT来估计信号的频率。但有时候,也需要估计单频正弦信号的幅度,这时候用FFT还能做得到吗?         答案是显然的,用FFT同样可以估计单频正弦信号的幅度。假定信号的幅度为A,频率为f, 信号采样点数为N。FFT之后,在频率f处会出现一个谱峰,幅度用M表示。在没有频谱泄露的情况下,有如下关系:                                                           Mpeak=A*N/2    (1)         但我们知道,由于FFT有明显的栅栏效应,只有很少的频率点不存在频谱泄露,如图1(a)所示。于是,对那些存在频谱泄露的点来说,用式(1)来估计信号幅度会有很大的误差,最大可达36.3%,如图1(b)所示。                     
                                                                                         图1          于是,在选取谱峰之后,还要对其幅度值进行一定程度的校正,才能得到幅度的更好的估计。校正的方法之一对谱峰及其附近的值进行如下加权:                    
其中:                 
加权之后的效果如图2所示,最大估计误差约为0.0166dB。                     
                                                         图2  另外一种校正方式如下:                     
其中         
这种校正方式的最大估计误差约为0.0082dB。