- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello all,
I'd like to use the Noise Reduction implementation provided by Intel on a PCA architecture.
First, it seems that, despite what the implementation and the PCA manual say, the "ippsFFTFwd_RToCSS_32s16s_Sfs" and "ippsFFTInv_CCSToR_32s16s_Sfs" functions are only available on PC, not on PCA.
I have tried to get around that problem by using the only FFT functions that I have found to be available: "ippsFFT*_CToC_16s_Sfs". Of course, this requires me to do some type conversion. It works just fine for the forward transform, however I can't seem to get the inverse transform to work.
I have implemented the following on PC:
ippsFFTInv_CCSToR_32s16s_Sfs((Ipp32s*)pNRState->pFilterOutput, pNewTimeFilterOutput16s,
pNRState->pFFTR, 0, pNRState->pBuffer); ippsFFTInv_CToC_16sc_Sfs(pInputFFT, pOutputFFT,
pNRState->pFFTR2, 0, pNRState->pBuffer2);
pInputFFT is a Ipp16sc array, pNRState->pFilterOutput is a Ipp32sc array. They contain exactly the same values (no overflow).
After execution, pNewTimeFilterOutput16s (Ipp16s array) contains the correct values. What I want is to get those values in pOutputFFT (Ipp16sc array).
The problem is that pOutputFFT's elements have non-null imaginary parts. I've tried discarding the imaginary parts, computing the norm, etc. but each time I get wrong values.
Is there something I'm doing wrong? Any help would be greatly appreciated.
Oliver
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page