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

using MKL's fft in fixed point dsp codes

yen__raymond
Beginner
616 Views

Hi,

We've started exploring MKL's FFT in our dsp programs. We were able to set up FFT and get correct output. One issue we have now is that: the data flows before and after FFT are all in fixed point, int32_t, e.g.. Other than converting vectors btw int32_t and float/double, bf and af FFT, is there any other options, any provision in MKL that we missed, or Intel's IPP would be a better option, b/c they do seem to have some vector/image data type conversion tools. Any advice? Thanks.

Best,

Raymond

0 Kudos
4 Replies
Khang_N_Intel
Employee
616 Views

Hi Raymond,

If your applications involve image processing, I highly recommend that you try our latest version of the Intel(R) IPP since Intel(R) IPP contains many highly optimized function in the image processing domain.

In fact, Intel(R) just announced the release of the Intel(R) Parallel Studio XE (PSXE) 2019 Update 1 today.  Intel(R) IPP 2019 Update 1 is a part of the Intel(R) PSXE 2019 Update 1.

 

Best Regards,

Khang

0 Kudos
yen__raymond
Beginner
616 Views

Hi Khang,

Thanks so much for the reply about image processing tools. Actually our processing jobs are more on 1-D real and/or complex integer vector signal processing, e.g. fft, filter, channel codec, etc. So my questions are: to use MKL's FFT for such cases, do we have to do (int vector) <-> (float vector) conversion before and after FFT? does MKL have such vector data type converting provision? or if IPP's FFT can handle integer vector as input/output directly (at least from spec, they seem avail.), so no conversion in the middle of data flow is needed?

Thanks again.

Best regards,

Raymond  

0 Kudos
Gennady_F_Intel
Moderator
616 Views

So my questions are: to use MKL's FFT for such cases, do we have to do (int vector) <-> (float vector) conversion before and after FFT? does MKL have such vector data type converting provision?

>>  MKL doesn't support such sort of conversions

or if IPP's FFT can handle integer vector as input/output directly (at least from spec, they seem avail.), so no conversion in the middle of data flow is needed?

>> IPP FFT either doesn't handle such mode, but IPP has many conversions between different datatypes. For example, for your case you may try to use IppStatus ippsConvert_32s64f(const Ipp32s* pSrc, Ipp64f* pDst, int len); and vice versa functions...

>> some more comments about IPP. Actually there 4 major domains: Signal Processing, Image Processing, Compression and Cryptography.

regard to FFT performance -- we expect the same performance between MKL and IPP.

--Gennady

 

0 Kudos
yen__raymond
Beginner
616 Views

HI Gennady,

I got it. Thank you so much for your detailed explanation and information. Will start looking in those directions. 

Best regards,

Raymond

 

0 Kudos
Reply