[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] VOLK division between complexes

From: Marcus D. Leech
Subject: Re: [Discuss-gnuradio] VOLK division between complexes
Date: Wed, 11 May 2016 16:34:00 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 05/11/2016 03:09 PM, Federico Larroca wrote:
Hello everyone,
We are on the stage of optimizing our project (gr-isdbt). One of the most consuming blocks is OFDM synchronization, and in particular the equalization phase. This is simply the division between the input signal and the estimated channel gains (two modestly big arrays of ~5000 complexes for each OFDM symbol).
Until now, this was performed by a for loop, so my plan was to change it for a volk function. However, there is no complex division in VOLK. So I've done a rather indirect operation using the property that a/b = a*conj(b)/|b|^2, resulting in six lines of code (a multiply conjugate, a magnitude squared, a deinterleave, a couple of float divisions and an interleave). Obviously the performance gain (measured with the Performance Monitor) is marginal (to be optimistic)...
Does anyone has a better idea? Implementing a new kernel is simply out of my knowledge scope.

Discuss-gnuradio mailing list
VOLK does have a floating-point pow operator, so first raise your divisors to -1.0, then multiply?  

reply via email to

[Prev in Thread] Current Thread [Next in Thread]