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.

Thanks in advance.

Sebastiaan