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