How to normalise a FFT of a 3 variable function.

1 view (last 30 days)
J K
J K on 11 Jul 2019
Commented: Rena Berman on 19 Sep 2019
I have this function:
input = exp(-((W-w_o).^2)/deltaW.^2).*exp(-(Kx.^2+Ky.^2)/(deltaK.^2)).*exp(1i.*sqrt((W/c).^2-(Kx.^2+Ky.^2)).*z(j));
this is then fourier transformed:
fourier = fftn(input)
I need to normalise it. Dividing it by length() is not giving good results. Could someone please help!

Answers (3)

Matt J
Matt J on 11 Jul 2019
Edited: Matt J on 11 Jul 2019
To normalize so that the continuous Fourier transform is approximated, multiply by the sampling intervals, dT1*dT2*dT3
  7 Comments
Matt J
Matt J on 12 Jul 2019
Edited: Matt J on 12 Jul 2019
Maybe also
F=F*sqrt(T1*T2*T3)/norm(F)
where T1,2,3 are the sampling distances.

Sign in to comment.


Matt J
Matt J on 11 Jul 2019
Edited: Matt J on 11 Jul 2019
To normalize so that Parseval's equation holds, divide by sqrt(numel(input)).

Matt J
Matt J on 11 Jul 2019
Edited: Matt J on 11 Jul 2019
To normalize so as to obtain Discrete Fourier Series coefficients, divide by N=numel(input).

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!