MATLAB里面的FFT函数,用的是复数形式的fourier公式计算方法,返回的值是Cn。但是注意,这个Cn跟三角函数形式的fourier公式里的Cn意义不一样。三角函数形式的傅里叶展开式中的Cn表示的直接就是振幅,C0为直流分量,Cn为三角展开式中各谐波分量的幅值,即an与bn的平方和开平方,FFT函数求模值与这个值相差2/N倍数。所以如果用三角形式的fourier公式直接编程,返回Cn,能直接得到振幅,而用MATLAB自带函数FFT得到的要*2/N,但是直流分量,幅度*1/N。 下面是一个正弦函数实例推导:
|
|