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

这样做的问题是 DFT 的输出矩阵将以坐标给出,这将与我的可变传播距离成反比。要使用新的坐标来解释 FFT 之外的值,我需要至少值以获得 1 对 1 匹配,但这样做会增加我的随着的增加网格步长。
像这样的事情的正常解决方案是什么?我目前的想法是将部分转换为然后再次应用进化(并为每次进化使用),这应该让我回到相同的网格大小。但是,这将需要应用 FFT 两次,如果可能的话,我宁愿避免这种情况。
任何建议将不胜感激。
编辑:再考虑一下,两步 fft 可能不起作用(我需要更多地考虑这一点)。原因是和依赖于在积分方面似乎有问题。
EDIT2:没关系,在这种情况下会很好,因为每个积分都是固定的距离。因此我可以把它当作一个常数。