Community
cancel
Showing results for 
Search instead for 
Did you mean: 
104 Views

Scale in DFT

Hello everyone:
I'm new in the forum. I'm wondering which is the correct scale of the mkl dft. I mean, I'm trying to do the fourier transform of a gaussian function, and I want to the forward fft and the backward fft normalized. I know that if I put the backward scale bscale=1/N (being N the size of the array) I get the original function normalized, but I want the transformed function (in frequency space) normalized.
If I put no scale (or default scale) i get the original function scaled by N*N, not N like the fftw, am I right?
I've tried with the forward and backward scale like the fftw, in the form:
fscale= dx/sqrt(twoPI) and bscale = dq/sqrt(twoPI),
being dq=twoPI/(N dx) and qmax=pi/dx (Nyquist sampling rules); but i get the wrong normalization.

thanks for the time,
Alex
0 Kudos
2 Replies
Dmitry_B_Intel
Employee
104 Views

Hi Alex,
MKL(both DFTI and FFTW3 interfaces) implements FFT as describedin MKL Reference Manual. Unless a forward or backward scale is explicitly set, the transform multiplies the L2 norm of the vector by sqrt(N). If you need forward transform to preserve the norm, then do DftiSetValue(hand, DFTI_FORWARD_SCALE, 1.0/sqrt(N) ) before committing the descriptor.
Thanks
Dima
104 Views

Thank you very much. I'm going to try with 1/sqrt(N)
All the best,
Alex
Reply