Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

de_la_Calle__Alejand

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-19-2012
09:05 AM

104 Views

Scale in DFT

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

Link Copied

2 Replies

Dmitry_B_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-19-2012
07:26 PM

104 Views

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

de_la_Calle__Alejand

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-19-2012
11:46 PM

104 Views

Thank you very much. I'm going to try with 1/sqrt(N)

All the best,

Alex

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.