FFT convolution in the polar form
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
FFT convolution in the polar form

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP
Author Message
Michel Rouzic
Guest





Posted: Fri Dec 23, 2005 5:16 pm    Post subject: FFT convolution in the polar form Reply with quote

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

k being the kernel (no need to explain what in and out stand for i
guess)

I suck too much at maths to make sure it is correct, can anyone out
there tell me if it's correct and if not tell me the proper way to do
it?
Back to top
Guest






Posted: Fri Dec 23, 2005 5:16 pm    Post subject: Re: FFT convolution in the polar form Reply with quote

Michel Rouzic wrote:
Quote:
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.

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.
Back to top
Michel Rouzic
Guest





Posted: Sat Dec 24, 2005 12:50 am    Post subject: Re: FFT convolution in the polar form Reply with quote

abariska@student.ethz.ch wrote:
Quote:
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

Quote:
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
Back to top
Michel Rouzic
Guest





Posted: Sat Dec 24, 2005 1:16 am    Post subject: Re: FFT convolution in the polar form Reply with quote

Michel Rouzic wrote:
Quote:
abariska@student.ethz.ch 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

OK, I did the test. The polar form thing is about 8 times slower than
the rectangular form. Now I only gotta figure out how I'm gonna make my
kernels directly in the rectangular form. You were talking about stuff
being real only, does it mean that in order to make my FIR kernels,
i'll only need to do the same as i did, reverse every two sample, put
it in the real part and leave the imaginary part at 0?
Back to top
Guest






Posted: Sat Dec 24, 2005 1:16 am    Post subject: Re: FFT convolution in the polar form Reply with quote

Michel Rouzic wrote:

Quote:
OK, I did the test. The polar form thing is about 8 times slower than
the rectangular form. Now I only gotta figure out how I'm gonna make my
kernels directly in the rectangular form.

That's easy. As the windows are time-domain symmetric, their DFT
kernels are real (remember the von Hann kernel: [1/2 1/4 0 ... 0 1/4],
no imaginary parts).

Quote:
You were talking about stuff
being real only, does it mean that in order to make my FIR kernels,
i'll only need to do the same as i did, reverse every two sample, put
it in the real part and leave the imaginary part at 0?

Yes. The window kernel is real, the unwindowed FIR filter frequency
response is real, just use ordinary (real) convolution, then invert the
sign of every second coefficient for a linear-phase FIR.
Back to top
Michel Rouzic
Guest





Posted: Sat Dec 24, 2005 5:16 pm    Post subject: Re: FFT convolution in the polar form Reply with quote

abariska@student.ethz.ch wrote:
Quote:
Michel Rouzic wrote:

OK, I did the test. The polar form thing is about 8 times slower than
the rectangular form. Now I only gotta figure out how I'm gonna make my
kernels directly in the rectangular form.

That's easy. As the windows are time-domain symmetric, their DFT
kernels are real (remember the von Hann kernel: [1/2 1/4 0 ... 0 1/4],
no imaginary parts).

You were talking about stuff
being real only, does it mean that in order to make my FIR kernels,
i'll only need to do the same as i did, reverse every two sample, put
it in the real part and leave the imaginary part at 0?

Yes. The window kernel is real, the unwindowed FIR filter frequency
response is real, just use ordinary (real) convolution, then invert the
sign of every second coefficient for a linear-phase FIR.

Ok, works very fine, thanks alot for help
Back to top
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB