Forum: GNU Radio Cordic question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
998dbc3ac73d5487c59c0ee0f5baeeb1?d=identicon&s=25 Sebastiaan Heunis (Guest)
on 2009-05-17 01:27
(Received via mailing list)
Attachment: 6M.jpg (20 KB)
Attachment: 150kHz.jpg (20 KB)
Attachment: sine.jpg (20 KB)
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
79723aa1b24981dcec2dbf7fd59403c1?d=identicon&s=25 Brian Padalino (Guest)
on 2009-05-17 03:10
(Received via mailing list)
On Sat, May 16, 2009 at 7:23 PM, Sebastiaan Heunis <sheunis@gmail.com>
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.
>
> Thanks in advance.

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
998dbc3ac73d5487c59c0ee0f5baeeb1?d=identicon&s=25 Sebastiaan Heunis (Guest)
on 2009-05-17 16:46
(Received via mailing list)
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
This topic is locked and can not be replied to.