MATLAB 中的 FFT 产生振幅混乱 Rect 的 FFT 不产生 sinc
FFT in MATLAB producing amplitude confusion FFT of rect not making sinc
我正在 MATLAB 中进行 FFT。当我尝试对一个矩形进行 FFT 时,它最终并不是一个 sinc 函数。 instead when I try to correct the error I get 这种使用 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
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 shape 离 0 index 有点远,你的 FFT 由于一些数学原因在 sinc 形包络中振荡。
我正在 MATLAB 中进行 FFT。当我尝试对一个矩形进行 FFT 时,它最终并不是一个 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
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 shape 离 0 index 有点远,你的 FFT 由于一些数学原因在 sinc 形包络中振荡。