FFT笔记
在写程序时,发现对FFT相关细节有所遗忘,现回忆并记录下来。
以matlab的fft函数为标准,假设数据为 x ( n ) , n = 1 , 2 , . . . , 512 x(n),n=1,2,...,512 x(n),n=1,2,...,512,做完FFT后得到 X ( k ) , k = 1 , . . . 512 X(k),k=1,...512 X(k),k=1,...512,则第一个点 X ( 1 ) X(1) X(1)为直流分量对应的点,第257个点 X ( 257 ) X(257) X(257)为频率为Fs/2的分量对应的点。
假设 x ( n ) x(n) x(n)为实序列,则 X ( k ) X(k) X(k)满足共轭对称性,其关于第257个点对称,也即:
X ( k ) = X ∗ ( 257 ∗ 2 − k ) , k = 2 , 3 , . . . 256 X(k)=X^*(257*2-k),k=2,3,...256 X(k)=X∗(257∗2−k),k=2,3,...256
注意直流分量点和Fs/2分量点都只有一个,没有点与它们相对称。
由于对称性,当 x ( n ) x(n) x(n)为实序列时, X ( k ) X(k) X(k)的第258至512个点可以在前面找到对称点,因此是冗余的,因而通常为了简便计算取 X ( 1 ) , X ( 2 ) , . . . , X ( 257 ) X(1),X(2),...,X(257) X(1),X(2),...,X(257)也即FFT点数的一半加一个点作为计算结果。
注意:此笔记的index都是从1开始,而非0