# Cordic question

Hi everyone

I’ve got a question regarding the cordic on the usrp. I’ve read up a
lot about how it works. Apparently we get approximately a bit of
accuracy per iteration, so a 12 iteration (included with the normal
usrp fpga build) should give us close to 72dB of dynamic range. I did
some simulations in icarus verilog to verify this. The results are
attached. The signals are all mixed down from 20MHz to 100kHz.
6M.jpg is a 6MHz wide chirp, 150kHz.jpg is a 150kHz wide chirp and
sine is just a sine wave.

The funny thing is, the larger the bandwidth of the signal, the worse
the dynamic range after the cordic becomes. Might this be a
simulation mistake from my side, or is this what happens in the
cordic? I ran another simulation with a 6MHz chirp where I increased
the number of stages of the cordic to 15. The result is the same.

Does anyone have any suggestions? Maybe increasing the bit widths in
some places?

I want to get as much of the ADC’s dynamic range as possible. If the
current cordic configuration does this, I’m happy. I use a usrp build
with two IQ RX paths and no TX, so there is some space on the fpga
left for improving the cordic if I need to.

Sebastiaan

On Sat, May 16, 2009 at 7:23 PM, Sebastiaan H. [email protected]
wrote:

current cordic configuration does this, I’m happy. I use a usrp build
with two IQ RX paths and no TX, so there is some space on the fpga
left for improving the cordic if I need to.

The sum of all your signal power for each of the simulations should
all be equal.

Remember that DFT’s are averages for the entire block. The wider you
spread your energy, the less time you spend at one specific frequency.
Instantaneously, I believe, you’re getting the full dynamic range and
the CORDIC is working properly.

Moreover, I think you’re confusing dynamic range and SNR.

Does that make sense?

Brian

Brian

Thanks for that. The power averaging in the FFT makes sense. Dynamic
range includes any spurious, etc? In that case I would be referring
to a SNR of 72dB. I’m going to leave the CORDIC then and just improve
some filtering on the USRP.

Sebastiaan