一、实数FFT
输入时域数据为实数时:单一频率的时域信号比如cos和sin在复频域表现为正负对称的两个复数频率.,得出的频谱图是对称的。
例如当采样点为8192时,关于中心点4096对称,求频率时,只需处理0~4096区间的最大幅度值的位置,
频率计算为:最大幅度值位置*采样率/8192,
真实幅度计算为:幅度值*2/8192,n=1 点的信号,是直流分量,幅度值为: 幅度值/8192
二、复数FFT
输入时域数据为复数时:单一频率的复信号在复频域是单一频率,但在时域需要两个正交分量表示,得出的频谱图不对称。
例如当采样点为8192时,最大幅度值位置大于中心点4096时,频率计算为:(最大幅度值位置 - 8192)*采样率/8192,最大幅度值位置小于中心点4096时,频率计算为:最大幅度值位置*采样率/8192
实数快速FFT代码
clc;
fs=100;
Ts=1/fs;%采样时间间隔
N=8192;
n=0:N-1;
t=n*Ts; %x不是直接关于n的函数,因为是固定的采样时间点
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y=fft(x,N);
f=(0:(N-1))*fs/N;
stem(f,2*abs(y)/8192);
复数快速FFT代码
clc;
fs=100;
Ts=1/fs;%采样时间间隔
N=8192;
n=0:N-1;
t=n*Ts; %x不是直接关于n的函数,因为是固定的采样时间点
x=0.5*exp(-j*2*pi*10*t);
y=fft(x,N);
f=(0:(N-1))*fs/N;
stem(f,abs(y)/8192);