簡體   English   中英

Python Numpy FFT 快速傅立葉變換 - 奇怪的結果

[英]Python Numpy FFT fast fourier transform - weird results

我正在嘗試使用 FFT 獲得二維孔徑的相位分布。 輸入是一個圓,圓內的所有值為 1,圓外的值為 0。為了進行良好的變換,我使用了一個 200 倍於圓半徑的輸入數組,並制作了一個 5000x5000格掉它。 這確保了圓圈實際上是圓形的,並且周圍有足夠的空間,以免發生奈奎斯特事件。

我需要對孔徑進行二維傅里葉變換,然后在每個點計算傅里葉變換的相位。 我用於創建輸入(孔徑)的函數:創建輸入孔徑

接下來做 numpy fft2 2D 傅立葉變換:傅立葉變換孔徑

其結果是一個 2D 復數數組(正如預期的那樣!),但虛部比實部小得多(虛部相差 17 個數量級~10E-17)。 這不是預期的,而且很可能是錯誤的。 什么地方出了錯?

完美對稱輸入的 FFT 相位結果為零,例如嚴格實數結果,因此 atan2(Im,Re) == 0 ,(虛部全為零,舍入噪聲除外)。

(關於 (0,0) 或 (n/2,n/2) 的對稱性)

當輸入偏離中心或以其他方式非對稱時,相位將變為非零(因此在 FFT 結果中為非零虛部)。

暫無
暫無

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

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