[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Fast, Single-Sample Phase Rotation
From: |
Sylvain Munaut |
Subject: |
Re: [Discuss-gnuradio] Fast, Single-Sample Phase Rotation |
Date: |
Thu, 28 May 2015 22:52:48 +0900 |
Hi John,
> I have a complex phase rotation function that uses a pre-generated sin/cos
> LUT and some basic multiple/adds.
>
> As it turns out, the rotation calc, which uses "straight" C/C++ math is
> still the bottleneck in a demod.
I don't quite get what you need ...
Rotating a single sample by a given angle is one sin/cos (for which
you use LUT) and a single complex multiply (and gcc is going to have a
pretty optimized version of that).
Doing stuff for single samples at a time, the bottleneck isn't going
to be the computation, it's going to be the load/store from/to memory.
Also are we talking changing the phase by a fixed amount , or an
amount that change after each sample (like the rotator kernel does) ?
Need more info ... In optimization the devil is in the details :p
Also lack of alignement doesn't mean SIMD is out if you have several
of them to do at once ...
Cheers,
Sylvain