[email protected] wrote:
> Michel Rouzic wrote:
> > I got a simple question about performing a FFT convolution in the polar
> > form, how do you do it?
> >
> > I expect it to be something like this :
> >
> > DC out = DC in * DC k (* meaning multiply)
> > Mag out = Mag in * Mag k
> > Phase out = Phase in + Mag k
>
> You probably meant Phase out = Phase in + Phase k. By the way, DC =
> Mag[0], no need for seperate variable.
oh yeah that's what i meant
> Furthermore, the kernels in the frequency domain (time domain windows)
> are real (because the time domain windows are symmetric). If you are
> trying to create linear-phase FIR filter coefficients by windowing in
> frequency domain (as in your previous posts), the FIR coeffcients in
> frequency will also be real, and therefore it is more efficient to
> convolve in rectangular coordinates. It also saves you the rect ->
> polar transform.
ok, but you see, i *might* perform this convolution in the polar form
between a kernel i would create (as we talked about in another topic)
and a real-world signal. The plan is to take the real-world signal, FFT
it, turn it to the polar form, and then, convolve it hundreds of times
with different kernels (as you may have guessed, to cut the real-world
signals into frequency bands).
So the rect->polar transform doesn't matter much since it would be
performed only once, so now I got to figure out which is the more
efficient
For a sample of each part
In the polar form : 3 multiplications, 1 addition, 1 cos, 1 sin
In the rectangular form : 4 multiplications, 1 addition, 1 substraction
I'm not really sure which would be the fastest, i'm gonna have to test,
i bet on the rectangular form, but I was wondering for a long time how
to make a convolution in the polar form, and since i might need it
now..
thanks alot for help by the way