Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

very basic fft question

madir
Beginner
466 Views

Hello,

I would like to perform a basic fft of audio data:

N real samples -----> N/2+1 complex numbers (No need to obtain the conjugate symmetric other half...)

Furthermore I would like the complex numbers to be in the MKL_Complex format, not separate arrays for real and complex.

How do I set up such an fft using the dfti interface?

I must say the documentation is annoyingly confusing! Can someone spare me the pain?

Thanks in advance!

0 Kudos
8 Replies
mecej4
Honored Contributor III
466 Views
An alternative to relying solely on the documentation is to use the example source files provided with MKL. Most of them are quite simple and may cover only one issue, but they should help you to get started.
0 Kudos
madir
Beginner
466 Views
Thanks, but I have yet to find an example that covers what I want to do.
0 Kudos
Todd_R_Intel
Employee
466 Views
From your description,

basic_sp_real_dft_1d.c

for single-precision floating point or

basic_dp_real_dft_1d.c

for double-precision floating point in the examples\dftc sub-directory of Intel MKL look like the closest to what you want. Maybe you could take a look and tell us how what you want is different.

Todd
0 Kudos
madir
Beginner
466 Views
Hi Todd,

Thank you very much for your help! Unfortunately those files do not exist anywhere in ..\Intel\ComposerXE-2011\mkl\examples

Maybe I don't have the most recent version of MKL. I got it a year ago or so. Have those examples been added recently?
0 Kudos
mecej4
Honored Contributor III
466 Views
What do you have in ...\Intel\ComposerXE-2011\mkl\examples\dftc\source ?

The examples have been there for quite a while, even in earlier versions of MKL 10.3.
0 Kudos
madir
Beginner
466 Views
163 files, but none of those mentioned above.
0 Kudos
Dmitry_B_Intel
Employee
466 Views
Hi,

Looks like you use MKL 10.3.4 or earlier.
I attach the source code of basic_sp_real_dft_1d.c for your convenience.

The sequence of steps needed to compute FFT is described on the first page of FFT documentation.
We would appreciate if you shared what in the documentation caused your confusion, for we could improve it.

Thanks
Dima
0 Kudos
madir
Beginner
466 Views
Hi Dmitry,

Thanks for the code, I'll check it out. Sorry for my late reply, I have been overwhelmed with work:)

One thing struck me, the example uses malloc() rateher than mkl_malloc. Surely 16 byte aligned allocation using mkl_malloc must be required for maxiumum performance, am I wrong?
0 Kudos
Reply