извлечение полной двумерной автокорреляционной функции из двумерной функции спектральной плотности мощности в numpy - PullRequest
0 голосов
/ 11 февраля 2019

Мой вопрос находится на границе между обработкой сигнала и питоном.

У меня есть 2-мерная функция спектральной плотности мощности (PSDF), построенная на Nx/2 + 1 и Ny/2 + 1 положительных точках пространственной частоты, наложенных со случайной фазой (случайные числа взяты из равномерного распределения).Я хотел бы взять его 2-мерное обратное преобразование Фурье (в питоне numpy numpy.fft.iff2()), чтобы получить его (Nx,Ny)) автокорреляционную функцию.Для этого мне нужно построить 2d симметрии или зеркала комплекса PSDF.

Вот мой вопрос, как мне построить зеркала?Я нашел тон похожих вопросов по делу 1d fft, который прост.Оказывается, что в 2d fft2 зеркала имеют другой порядок;

1-й квадрант [1:Nx/2+1,1:Ny/2+1] является комплексным сопряженным зеркалом 4-го квадранта [(Nx/2+2):Nx,(Ny/2+2):Ny], а 2-й квадрант [1:(Nx/2 +1),(Ny/2+1):Ny] является комплексным сопряженным зеркалом 3-го квадранта [(Nx/2+2):Nx,1:(Ny/2+1)] (Соглашение о нарезке можетразличаются в разных языках, и если Nx и Ny четные или нечетные, поэтому уделите этому немного внимания.

Учитывая, что 1-й и 3-й квадранты не являются зеркальными отражениями друг друга (то же самое для 2-го и 2-го4-й квадрант), означает ли это, что вы не можете восстановить полную функцию автокорреляции (Nx,Ny), используя первые значения (Nx/2+1,Ny/2+1) PSDF?Есть ли что-то, чего мне здесь не хватает?

Ниже приведен пример кода 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]]
...