【问题标题】:plotting the spectrum of a 256 point FFT in matlab在matlab中绘制256点FFT的频谱
【发布时间】:2016-01-27 05:48:03
【问题描述】:

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

【问题讨论】:

  • 如果您已经有了 FFt 值,您可以使用 matlab 中 fft 示例的后半部分来显示结果mathworks.com/help/matlab/ref/fft.html
  • 您可以使用二维plot function。对于离散值,我也喜欢使用stem
  • “FFT 系数不是使用 Matlab 生成的”是什么意思?如果你包含一些代码会更清晰

标签: matlab matlab-figure


【解决方案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))

【讨论】:

    猜你喜欢
    • 2013-03-12
    • 2015-11-09
    • 1970-01-01
    • 2012-05-25
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多