在matlab中绘制256点FFT的频谱

时间:2016-01-27 05:48:04

标签: matlab matlab-figure

我计算了一个频率为1kHz,峰峰值幅度为2V的纯正弦波的256点FFT。我已经获得了256个FFT系数,现在我必须绘制其频谱。如何使用matlab绘制它? .FFT系数不是使用Matlab生成的。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

为了绘制FFT系数的光谱,您需要以下信息:

  • 采样频率
  • 256个FFT系数

首先,您将256个系数加载到MATLAB变量中。例如,如果将系数保存为变量y_fft,则以下代码行将为您绘制光谱:

% plotting of spectra
p  = abs(y_fft.^2) ;
df = Fs/Npoint_fft ;
ff = 0:df:Fs/2-df ;
figure
plot (ff,p(1:end/2))

在上面的代码中,Fs是采样频率,Npoint_fft等于256。

您可以在MATLAB中生成信号,然后绘制光谱。下面是一些信号生成和绘图的代码:

Fs = 20000 ;
duration = 0.001 ;
t = 0: 1/Fs:duration-(1/Fs) ;
f  = 1000 ;
Npoint_fft = 256 ;

% creation and plotting of signal of 1KHz
y = sin (2 * pi * f * t) ;
plot (t,y)

% 256 point fft
y_fft = fft(y,256) ;

% plotting of spectra
p  = abs(y_fft.^2) ;
df = Fs/Npoint_fft ;
ff = 0:df:Fs/2-df ;
figure
plot (ff,p(1:end/2))