У меня уже был фазовый экран (2-D матрица NxN и LxL в масштабе размеров, например: N = 256, L = 2 метра).
Я хотел бы найти функцию фазовой структуры - D (r), определенную как D (delta (r)) = <[x (r) -x (r + delta (r))] ^ 2> (<.> - усреднение по ансамблю, r - положение на фазовом экране в метре, x - значение фазы в точке на фазовом экране, дельта (r) является переменной и не фиксированной) в программе Matlab.Есть ли у вас какие-либо предложения для моей цели?
P / S: Я пытался вычислить D (r) с помощью автокорреляции (определяется как B (r)), но этот расчет все еще остается в некоторых приближениях.Поэтому я хочу точно рассчитать результат D (r).Пожалуйста, посмотрите на это изображение, чтобы лучше понять определения D (r) и B (r) .Ниже приведен код моей функции для расчета B (r).
% Code copied from "Numerical Simulation of Optical Wave Propagation with Examples in Matlab",
% by Jason D. Schmidt, SPIE Press, SPIE Vol. No.: PM199
% listing 3.7, page 48.
% (Schmidt defines the ft2 and ift2 functions used in this code elswhere.)
function D = str_fcn2_ft(ph, mask, delta)
% function D = str_fcn2_ft(ph, mask, delta)
N = size(ph, 1);
ph = ph .* mask;
P = ft2(ph, delta);
S = ft2(ph.^2, delta);
W = ft2(mask, delta);
delta_f = 1/(N*delta);
w2 = ift2(W.*conj(W), delta_f);
D = 2 * ft2(real(S.*conj(W)) - abs(P).^2, delta) ./ w2 .*mask;`
%fire run
N = 256; %number of samples
L = 16; %grid size [m]
delta = L/N; %sample spacing [m]
F = 1/L; %frequency-domain grid spacing[1/m]
x = [-N/2 : N/2-1]*delta;
[x y] = meshgrid(x);
w = 2; %width of rectangle
%A = rect(x/2).*rect(y/w);
A = lambdaWrapped;
%A = phz;
mask = ones(N);
%perform digital structure function
C = str_fcn2_ft(A, mask, delta);
C = real(C);