discuss-gnuradio
[Top][All Lists]
Advanced

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

[Discuss-gnuradio] Patch to increasy dynamic range of usrp2 by adding sh


From: Martin DvH
Subject: [Discuss-gnuradio] Patch to increasy dynamic range of usrp2 by adding shift_iq setting
Date: Fri, 09 Jul 2010 06:11:04 +0200

Hi All,

I created a patch which adds a shift_iq setting to the usrp2.
This can shift the output of dsp_core_rx by 0 to 3 bits.
(= Multiply by 1, 2, 4 or 8)

It does proper rounding and clipping.

With the shift_iq setting in combination with the already existing
scale_iq you can optimize the dynamic range so that the samples going to
the PC always use the full 16 bit [-32768 to + 32767]

In practice this means a dynamic range increase of 6 dB or more.

Of course, if you set the shift to high you will get clipping.

The patch changes the fpga verilog, fpga firmware, usrp2, and gr-usrp
sources.


I did several icarus verilog simulations which came out OK.

I also created a python testscript which uses the actual usrp2. It
generates a 200 kHz signal on TX and receives it with RX.
(you need to loopback TX to RX using basicRX/TX or LFTX/RX boards.)
With the GUI you can set scale_iq and shift_iq.

I generated a new u2_rev3.bin and txrx.bin which seem to work fine.
Note that this firmware is based on my current git checkout.
So if you want to have this feature with the lastest code, you have to
apply my patch to the latest tree and generate new firmware yourself.

I created this patch on request, so it would be great if it were added
to the official tree. (So the default firmware can be used in the future
to have this function)

Patch and a testscript at:
http://www.olifantasia.com/projects/gnuradio/mdvh/usrp2_add_shift_iq/


Martin Dudok van Heel

Attachment: mdvh_usrp2_add_shift_iq_2010070905.diff
Description: Text Data


reply via email to

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