I want to compute a wiener filter without having to conjpack/conjperm the data from the fourier transform. I see that there are functions for computing the multplication of two vector in the perm/pack formats but I need to do a division as well. Anyone who has done this or have an idea on how it can be implemented?
Say I have X and Y from the FFT and I want to compute
H = X/Y. X/Y
which is equal to
H = X*conj(Y)/|Y|2
X*conj(Y) can be computed using the functions provided. The divisor is c2+d2 if Y = c+i*d, so using the standard mul functions c^2 and d^2 can be computed quite easily. But do be able to divide the packed/permed vector X*conj(Y) by c^2+d^2, I have to sum element 0 and 1, 2 and 3 and so on and put the sum of 0 and 1 into place 0 and 1 and the sum of 2 and 3 into place 2 and 3 and so on. Then I can use the normal div function to do the division.
Am I correct in my thinking here? Anyone who knows a simple way of doing this without having to run a for loop.
As long as I am in the CCS format I can just cast the Ipp32f pointer I have to a Ipp32fc pointer and use the standard functions and when I want to do the IFFT i just cast back to Ipp32f. Would this work?
Is there a speed difference between the formats for FFT?