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.
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