How to normalise a FFT of a 3 variable function.

Asked by J K

J K (view profile)

on 11 Jul 2019
Latest activity Commented on by Rena Berman

Rena Berman (view profile)

on 19 Sep 2019 at 16:05
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!

Rena Berman

Rena Berman (view profile)

on 19 Sep 2019 at 16:05
(Answers Dev) Restored edit

Answer by Matt J

on 11 Jul 2019
Edited by Matt J

Matt J (view profile)

on 11 Jul 2019

To normalize so that the continuous Fourier transform is approximated, multiply by the sampling intervals, dT1*dT2*dT3

J K

J K (view profile)

on 11 Jul 2019
Thank you. I am going to try a few things and post the answer that worked.
Matt J

Matt J (view profile)

on 12 Jul 2019
Maybe also
F=F*sqrt(T1*T2*T3)/norm(F)
where T1,2,3 are the sampling distances.
J K

J K (view profile)

on 12 Jul 2019
Thank you so much!

Answer by Matt J

on 11 Jul 2019
Edited by Matt J

Matt J (view profile)

on 11 Jul 2019

To normalize so that Parseval's equation holds, divide by sqrt(numel(input)).

Answer by Matt J

on 11 Jul 2019
Edited by Matt J

Matt J (view profile)

on 11 Jul 2019

To normalize so as to obtain Discrete Fourier Series coefficients, divide by N=numel(input).