MATLAB中的FFT的采样频率和采样点怎样确定?

在MATLAB中做FFT,首先编写函数,对不同的采样频率和采样点数,计算FFT后的频率序列及其对应的幅值:

function?[f amplitude]?=?yopheeFFT(sampleRate,FFT_points)?  

n?=?0:FFT_points-1;?  

t?=?n/sampleRate;?%采样时间序列?  

f_All?=?n*sampleRate/FFT_points;?%频率序列 %构造混有噪声的周期信号并采样?

signal?=?2*sin(2*pi*10*t)+1*sin(2*pi*20.25*t)+0.2*randn(size(t));?  %对信号进行快速Fourier变换,并求振幅?  

amplitude_All?=?abs(fft(signal,FFT_points))*2/FFT_points;?  

f?=?f_All(1:FFT_points/2);?  

amplitude?=?amplitude_All(1:FFT_points/2);

扩展资料

MATLAB中FFT函数的意义:

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。

模拟信号经过ADC采样之后变成数字信号,可对此数字信号做FFT变换。N个采样点经过FFT之后就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次幂。

假设采样频率为Fs,信号频率为F,采样点数为N。则FFT之后结果为N点复数,其中每一个点对应着一个频率点,该点复数的模值为原始信号在该频率值下的幅度特性。

具体为:假设原始信号在某频率点的幅值为A,则该频点对应的FFT点复数的模值为A的N/2倍。而FFT第一点为原始信号的直流分量,其模值为原始信号模值的N倍。对于相位,FFT复数的相位即为原始信号在该频率点处的相位。