Python 从二维功率谱密度函数中提取完整的二维自相关函数
我的问题是信号处理和python之间的界限 我有一个二维功率谱密度函数(PSDF),构建在与随机相位叠加的正空间频率点上(随机数取自均匀分布)。我想用它的二维傅里叶逆变换(在pythonnumpyPython 从二维功率谱密度函数中提取完整的二维自相关函数,python,numpy,image-processing,scipy,signal-processing,Python,Numpy,Image Processing,Scipy,Signal Processing,我的问题是信号处理和python之间的界限 我有一个二维功率谱密度函数(PSDF),构建在与随机相位叠加的正空间频率点上(随机数取自均匀分布)。我想用它的二维傅里叶逆变换(在pythonnumpynumpy.fft.iff2())来检索它的(Nx,Ny))自相关函数。为此,我必须构造复PSDF的二维对称或镜像 这就是我的问题所在,我如何构建镜像?我在1dfft案例中发现了类似问题的基调,这很简单。结果表明,在2dfft2中,镜像的顺序不同 第一象限[1:Nx/2+1,1:Ny/2+1]是第四象限
numpy.fft.iff2()
)来检索它的(Nx,Ny))
自相关函数。为此,我必须构造复PSDF的二维对称或镜像
这就是我的问题所在,我如何构建镜像?我在1dfft
案例中发现了类似问题的基调,这很简单。结果表明,在2dfft2
中,镜像的顺序不同
第一象限[1:Nx/2+1,1:Ny/2+1]
是第四象限的复共轭镜[(Nx/2+2):Nx,(Ny/2+2):Ny]
和第二象限[1:(Nx/2+1),(Ny/2+1):Ny]
是第三象限的复共轭镜[(Nx/2+2):Nx,1:(Nx/2+1)]
(不同语言之间的切片约定可能不同,如果Nx
和Ny
是偶数或奇数,那么请不要太在意)
假设第一象限和第三象限不是彼此的镜像(与第二象限和第四象限相同),这是否意味着您无法使用第一个(Nx/2+1,Ny/2+1)
PSDF值重建完整的(Nx,Ny)
自相关函数?
这里有我遗漏的东西吗
下面是一个python代码示例,使用numpy.fft.fft2d
来说明这一点:
import numpy as np
x1 = np.arange(6)*1e-5
y1 = np.arange(6)*0.25
z = np.zeros( (len(x1),len(y1)) )
z = (x1[:,np.newaxis] + 2* y1[np.newaxis,:]) + 3
z_fft = np.fft.fft2(z)
np.set_printoptions(precision=3)
print(z_fft)
屏幕输出如下所示:
[[ 1.530e+02 +0.000e+00j -9.000e+00 +1.559e+01j -9.000e+00 +5.196e+00j -9.000e+00 +0.000e+00j -9.000e+00 -5.196e+00j -9.000e+00 -1.559e+01j]
[ -1.800e-04 +3.118e-04j -7.692e-16 -2.546e-15j 1.392e-15 -8.802e-16j -1.776e-15 +0.000e+00j 2.161e-15 -6.582e-16j 7.692e-16 +1.007e-15j]
[ -1.800e-04 +1.039e-04j -3.251e-16 +1.776e-15j -1.717e-15 +1.110e-16j 1.776e-15 +0.000e+00j -9.477e-16 -1.110e-16j 1.213e-15 -1.776e-15j]
[ -1.800e-04 +0.000e+00j -8.882e-16 +0.000e+00j 8.882e-16 +8.882e-16j -1.776e-15 +0.000e+00j 8.882e-16 -8.882e-16j -8.882e-16 -0.000e+00j]
[ -1.800e-04 -1.039e-04j 1.213e-15 +1.776e-15j -9.477e-16 +1.110e-16j 1.776e-15 +0.000e+00j -1.717e-15 -1.110e-16j -3.251e-16 -1.776e-15j]
[ -1.800e-04 -3.118e-04j 7.692e-16 -1.007e-15j 2.161e-15 +6.582e-16j -1.776e-15 +0.000e+00j 1.392e-15 +8.802e-16j -7.692e-16 +2.546e-15j]]