, . .
, . , , mu = 0 = 1/sqrt (2π) ( a = 1/(2 * sigma ^ 2) = π ),

( ):

, , .
, wikipedia, , , .
, - ( , , , , , true ). ( N)

mu = 0 sigma = sqrt (N/2π) ( ):

buildKernel sqrt (rows/2π) sqrt (cols/2π) :
function result = buildKernel(rows, cols, mu, sigma)
if (length(mu)>1)
mu_h = mu(1);
mu_w = mu(2);
else
mu_h = mu;
mu_w = mu;
endif
if (length(sigma)>1)
sigma_h = sigma(1);
sigma_w = sigma(2);
else
sigma_h = sigma;
sigma_w = sigma;
endif
center_w = mu_w + floor(cols / 2);
center_h = mu_h + floor(rows / 2);
r = transpose(normpdf([0:rows-1],center_h,sigma_h));
c = normpdf([0:cols-1],center_w,sigma_w);
result = repmat(r * c, [1 1 3]);
% normalize so that kernel sums to 1
sumKernel = sum(result(:));
result = result ./ sumKernel;
end
, FFT . , ,
g1FFTin = buildKernel(rows, cols, mu, [sqrt(rows/2/pi) sqrt(cols/2/pi)]);
, freq_G1 ( ) g1FFTin * sqrt(rows*cols).
, , , , FFT () , FFT sigma , . , , :
g1FFTin = buildKernel(rows, cols, mu, sigma);
, :
g1FFT = circshift(g1FFTin, [rows/2, cols/2, 0]);
freq_G1 = fft2(g1FFT);
freq_G1 = circshift(freq_G1, [-rows/2, -cols/2, 0]);
freq_G1 , :
freq_G1_approx = (rows*cols/(2*pi*sigma^2))*buildKernel(rows, cols, mu, [rows cols]/(2*pi*sigma));