2016-09-04 190 views
1

我正在做MATLAB中的FFT。正如我试图做一个矩形的FFT它不会最终成为一个Sinc函数。 enter image description here而是当我尝试纠正我得到的错误enter image description here使用abs的这种修正我已经在互联网上看到过,但它不会创建sinc函数。这是我使用的所有代码。在MATLAB中产生幅度混乱FFT不计算正弦信号的FFT

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

任何帮助将不胜感激。

感谢,

牛逼

回答

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仅考虑您的输入信号如下。

enter image description here

由于矩形形状有点远,从0指数,你的FFT在一些数学的原因正弦形包络振荡。

+0

谢谢你的帮助! – tadams22

+0

不客气。 – KKS