2016-09-04 152 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