Python Numpy FFT快速傅里叶变换结果

2024-06-28 11:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用FFT得到二维孔径的相位分布。 输入是一个圆,圆内的所有内容都有值1,圆外的所有内容都有值0。 为了进行良好的变换,我使用了一个输入数组,该数组的大小是圆半径的200倍,并用它制作了一个5000x5000网格。这确保了圆实际上是圆的,并且周围有足够的空间,以便不发生奈奎斯特事件

我需要对孔径进行二维傅里叶变换,然后计算每个点的傅里叶变换相位。 我用于创建输入(光圈)的函数: creating the input aperture

接下来执行numpy fft2二维傅里叶变换: Fourier transforming aperture

其结果是一个二维复数数组(如预期的!),但虚部比实部小得多(17个数量级差虚部~10E-17)。 这不是预期的,而且很可能是错误的。出了什么问题


Tags: the函数fftcreating网格内容input半径
1条回答
网友
1楼 · 发布于 2024-06-28 11:28:39

完全对称输入的FFT相位结果为零,例如严格实数结果,因此atan2(Im,Re)=0(除舍入噪声外,虚部均为零)

(关于(0,0)圆形或(n/2,n/2)的偶数对称性)

当输入偏离中心或以其他方式变得非对称时,相位将变为非零(因此FFT结果中的非零虚部)

相关问题 更多 >