标签: matlab fft rect
我在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)))
非常感谢任何帮助。
谢谢,
Ť
答案 0 :(得分:2)
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只考虑您的输入信号如下。
由于矩形形状距离0指数很远,因此您的FFT会因为某些数学原因而在sinc形状的包络中振荡。