Python 使用rfft2沿修剪轴创建的阵列的1D ifft

Python 使用rfft2沿修剪轴创建的阵列的1D ifft,python,python-3.x,numpy,fft,Python,Python 3.x,Numpy,Fft,我在尝试对使用rfft2创建的数组进行部分逆变换(沿一维合成)时遇到了一个问题(当然,后来进行了过滤) 问题是我在整个程序中使用实输入,然后使用rfft2从实输入到光谱(傅里叶)域来利用这种对称性是有意义的(我在这个程序中做了很多变换)。这是从实数矩阵a(nx,ny//2-1)生成的(如果ny是奇数,则最后一个数字有+1,但你得到了分数)。我将把这个过程从(x,y)域命名为(kx,ky)域。我可以使用irfft2还原此过程,并获取真实数据 然而,在我的算法中的一个点上,我必须操作中间域中的数据:

我在尝试对使用
rfft2
创建的数组进行部分逆变换(沿一维合成)时遇到了一个问题(当然,后来进行了过滤)

问题是我在整个程序中使用实输入,然后使用
rfft2
从实输入到光谱(傅里叶)域来利用这种对称性是有意义的(我在这个程序中做了很多变换)。这是从实数矩阵a
(nx,ny//2-1)
生成的(如果ny是奇数,则最后一个数字有+1,但你得到了分数)。我将把这个过程从
(x,y)
域命名为
(kx,ky)
域。我可以使用
irfft2
还原此过程,并获取真实数据

然而,在我的算法中的一个点上,我必须操作中间域中的数据:
(kx,y)
。在这个域中,我不知道系数(仍然很复杂)是否具有某种对称关系,但我强烈怀疑它们必须验证
(kx,y)
(-kx,y)
处的系数是彼此的共轭

我想在(kx,ky)域中手动创建一个(nx,ny)复数数组(显式使用对称性),并简单地沿最后(
y
)轴使用
ifft
。然而,阅读起来很难,而且我很容易出错,更不用说效率了,这一步我可以放弃

实际的问题是,我能有效地使用
numpy
来计算这个混合域的展开系数吗


干杯,

为什么要创建此
(kx,y)
?听起来很奇怪谢谢你的评论!完整的答案相当麻烦,但长话短说,我必须将一个函数与一个函数相匹配,该函数允许在x方向上的傅里叶级数展开,在y方向上的双曲三角函数(拉普拉斯方程的解)与一个在两个方向上都有傅里叶展开但在y扩展域中的函数相匹配。然后sin,sinh展开式的系数可以从双周期函数的(kx,y)展开式中得到,原则上你可以这样做。如果您发布了部分相关的代码,我们可能会提供帮助。稍后,我将发布一个带有适当数学知识的代码片段,以澄清问题。目前我正在使用
rfft(irfft2(data,s=size),axis=0)
来完成我所需要的。效率极低,但允许我继续开发算法的其余部分,并在由于过早优化而陷入停滞之前检查基本思想是否有效。与此同时,我会继续思考这个问题,在接下来的几天里,我会提供数学和代码片段。