为什么Matlab快速傅里叶算法分析出来的幅度谱需要校正
一切的根源,让我们回到DFT定义上面来,观察FFT算法对直流分量和非直流分量频率的影响。下面请大家注意观察这个式子,假设信号具有直流分量A,假设采样点为N个,那么得到的采样点显然是这样的序列:[A,A,...,A][A,A,...,A][A,A,...,A],现在我们回到DFT的定义:
DFT{x(n)}=∑n=0n=N−1x(n)e−jwnDFT\{x(n)\}=\sum_{n=0}^{n=N-1}x(n)e^{-jwn}DFT{x(n)}=∑n=0n=N−1x(n)e−jwn
显然对于直流分量来说,则www取0时,得到的DFT在这一点的值为NANANA,那么,我们对幅度谱进行修正时,对于直流分量,直接除以傅里叶变换点数NNN即可。而对于非零频率,为了简化分析,我们只分析这样的一个信号ejw0ne^{jw_{0}n}ejw0n,它的DFT结果只在w=w0w=w_{0}w=w0处有幅度为1的冲击。那么,对于一般的周期信号,我们一般是表示为余弦形式的。
借用欧拉公式ejwn=cos(wn)+j.sin(wn)e^{jwn}=cos(wn)+j.sin(wn)ejwn=cos(wn)+j.sin(wn),我们有cos(wn)=ejwn+e−jwn2cos(wn)=\frac{e^{jwn}+e^{-jwn}}{2}cos(wn)=2ejwn+e−jwn,那么,利用这样的一个关系,在双边谱中,幅度不仅扩大了N倍,同时又有了一个12\frac{1}{2}21倍的关系,那么,我们对于非零频率的矫正,就应该除以N2\frac{N}{2}2N,到这里,才对FFT分析实际信号有了进一步的理解。