【问题标题】:FFT in MATLAB producing amplitude confusion FFT of rect not making sincMATLAB 中的 FFT 产生幅度混淆 FFT 的 rect 不产生 sinc
【发布时间】:2016-09-04 23:39:54
【问题描述】:

我正在 MATLAB 中进行 FFT。当我尝试对矩形进行 FFT 时,它最终不会成为 sinc 函数。 相反,当我尝试更正错误时,我得到 这个使用 abs 的更正我​​在互联网上看到过,但它不会创建 sinc 函数。这是我正在使用的所有代码。

x = linspace(-15,15,257);
x = x(1:256);
y = rectangularPulse(x)
plot(x,y)
Y = fft(y);
plot(x, fftshift(abs(Y)))

任何帮助将不胜感激。

谢谢,

T

【问题讨论】:

    标签: matlab fft rect


    【解决方案1】:

    FFT 不关心输入信号的 x 轴。

    只是,像下面这样更改您的代码。

    x = linspace(0,30,257);
    y = rectangularPulse(x)
    figure(1)
    plot(y)
    Y = fft(y);
    figure(2)
    plot(fftshift(real(Y)))
    

    通过这段代码,你可以看到fft之后的sinc函数。

    在您的原始代码中,FFT 只考虑您的输入信号如下。

    由于 rect 形状与 0 索引相差不大,因此您的 FFT 由于一些数学原因而在 sinc 形状的包络中振荡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2019-08-02
      • 2011-12-07
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多