簡體   English   中英

MATLAB中的FFT產生幅度混淆rect的FFT不產生正弦

[英]FFT in MATLAB producing amplitude confusion FFT of rect not making sinc

我在MATLAB中執行FFT。 當我嘗試執行rect的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)))

任何幫助將不勝感激。

謝謝,

Ť

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形狀的包絡中振盪。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM