简介
快速Fourier变换(FFT)是离散傅里叶变换的快速算法,他是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。
方法/步骤
假设数据采集频率为1000Hz,一个信号包含频率为50Hz、振幅为0.7的正弦波和频率为120Hz、振幅为1的正弦波,噪声为零平均值的随机噪声,用FFT方法分析其频谱方法Matlab程序如下:
Matlab程序:
clear
Fs = 1000; % 采样频率
T = 1/Fs; % 采样时间
L = 1000; % 信号长度
t = (0:L-1)*T; % 时间向量
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % 加噪声正弦信号
plot(Fs*t(1:50),y(1:50))
title('零平均值噪音信号');
xlabel('time (milliseconds)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);
plot(f,2*abs(Y(1:NFFT/2)))
title('y(t)单边振幅频谱')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
计算结果为: