Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

inverse fft with real result

mjc
Beginner
315 Views

Let me know if you've heard this before!

I am trying to write an ipps-based function that does something like following MatLab code:

result = ifft( theFT.*conj(theFT) );

Here, theFT is a complex vector and multiplying by its conjugate yields the squared magnitude, which is real. We then get the inverse real fft.

My questions are about formatting the data efficiently for IPP. If I call MagSquared, that gives me a real vector, but I need something in perm (or pack or ccs) format to pass to ippsFFTInv. Is there a convenient function for converting from real to perm? If not, should I write my own function to compute the magnitude and store it in perm format?

thanks for your attention

 

 

0 Kudos
2 Replies
Igor_A_Intel
Employee
315 Views

Hi Mjc,

all packed formats (Pack, Perm, Ccs) are intended for storing complex data. Your vector is real - so the easiest way is to convert it to complex (for example using ippsSampleUp) and then apply complex iFFT instead of developing your own function for RealToPerm conversion.

regards, Igor

0 Kudos
mjc
Beginner
315 Views

That would not be efficient, requiring twice the amount of computation. I have determined that a simple hand-written routine is best.

0 Kudos
Reply