人们如何在使用离散傅立叶变换进行数值积分时处理调整大小的网格步骤?

计算科学 Python 数字 傅立叶分析 傅里叶变换
2021-12-03 13:54:40

我正在尝试按照维基百科上给出的菲涅耳衍射方程使用 FFT 来模拟 Python 上的光传播:

使用 fft 的菲涅耳

这样做的问题是 DFT 的输出矩阵将以坐标给出,这将与我的可变传播距离成反比。要使用新的坐标来解释 FFT 之外的值,我需要至少值以获得 1 对 1 匹配,但这样做会增加我的随着的增加网格步长。(p,q)z(x,y)zz

像这样的事情的正常解决方案是什么?我目前的想法是将部分转换为然后再次应用进化(并为每次进化使用),这应该让我回到相同的网格大小。但是,这将需要应用 FFT 两次,如果可能的话,我宁愿避免这种情况。h(x,y)h(p,q)z/2

任何建议将不胜感激。

编辑:再考虑一下,两步 fft 可能不起作用(我需要更多地考虑这一点)。原因是依赖于在积分方面似乎有问题。pqz

EDIT2:没关系,在这种情况下会很好,因为每个积分都是固定的距离因此我可以把它当作一个常数。z

0个回答
没有发现任何回复~