FFT以后获得的是什么数
FFT以后获得的那一串复数是波形对应频率下的幅度特征,注意这个是幅度特征不是复制,下面要讲两个问题:1.如何获取频率,2.如何获取幅值算法
获取频率
FFT变换如何获取频率?傅里叶变换并没对频率进行任何计算,频率只与采样率和进行傅里叶变换的点数相关,注意这里是进行傅里叶变换的点数而不必定是信号的长度。
FFT变换完第一个数时0Hz频率,0Hz就是没有波动,没有波动有个专业一点的说法,叫直流份量。
后面第二个复数对应的频率是0Hz+频谱分辨率,每隔一个加一次,频谱分辨率Δf计算公式以下:
Δf=FsN
式中:
Fs为采样率
N为FFT的点数
所以只要Fs和N定了,频域就定下来了。spa
FFT变换后的第一个实数 - 直流份量
FFT以后的第一个结果表示了时域信号中的直流成分的多少,所谓直流信号,表明和基准0的偏移量。
上面的结果很差说明,下面再看一个例子:io
oneWave = [1,1,1,1,1,1,1,1];fft(oneWave)
输出:co
8 0 0 0 0 0 0 0
oneWave 的直流份量是1,但计算结果是8,这里又引入一个问题,FFT以后的数值不是真实的幅值,须要进行转转换,第一个点须要除以N,才能还原为原来的结果
FFT变换后的复数模 - 幅度
假设原始信号的峰值为A,那么FFT的结果的每一个点(除了第一个点直流份量以外)的模值就是A
的N/2倍。而第一个点就是直流份量,它的模值就是直流份量的N倍
也就是说,要得出真实幅值,须要把除了第1个点(i=0)以及最后一个点(i=N/2)除以N之外,其他点须要求得的模除以N/2 这是由于傅里叶级数对应时域幅值,其中已经包含了1/N项,而fourier变换中没有该系数, 因此,进行完fft变换后需除以N/2才能与时域对应上。 FFT的计算公式 Fn=∑i=0N−1xie−2πjNni 实际应用中,只有i=0~N/2是有用的 全世界绝大部分的FFT算法计算出来后都须要进行幅度的转换的,幅值根据需求有不一样需求