Forum: GNU Radio Using the USRP LFRX daughterboard to receive a complex baseband signal (I+Q)

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.
Einar T. (Guest)
on 2009-02-15 23:24
(Received via mailing list)
Hi all,

I am having difficulties understanding how to combine the two signals on
the RXA and RXB connectors on the same LFRX-daughterboard to one single
complex signal (I+Q) using the "usrp_dual_source_x" block.

The best would be to receive a float from each, and then combine the two
signals to a complex signal using the "gr_float_to_complex" block.
However it seems it is only possible to get the samples as short or
complex, so my idea is to take the real part of each of the two
“complex” signals (as they in reality are real), and combine those to
complex using the above mentioned block.

This method involves some seemingly unnecessary conversions, so I am
guessing that there is another way?

- Einar
Josh B. (Guest)
on 2009-02-16 00:17
(Received via mailing list)
The current USRP API does not support receiving complex signal (I on RXA
and Q on RXB) from LFRX and BasicRX boards. At least not in an easy
way...

In the future, the USRP API will support complex samples, and
"usrp_dual_source_x" will have an option called antenna: "RXAB"

Any word on this from developers?

Einar T. wrote:
> “complex” signals (as they in reality are real), and combine those to
> complex using the above mentioned block.
>
> This method involves some seemingly unnecessary conversions, so I am
> guessing that there is another way?
>

Its not ideal, but thats the way to do it for now.

USRP dual source -> 2 convert complex to float -> combine 2 floats with
"gr_float_to_complex"

:-(

-Josh
Matt E. (Guest)
on 2009-02-16 00:25
(Received via mailing list)
Josh B. wrote:
> The current USRP API does not support receiving complex signal (I on RXA
> and Q on RXB) from LFRX and BasicRX boards. At least not in an easy way...
>
> In the future, the USRP API will support complex samples, and
> "usrp_dual_source_x" will have an option called antenna: "RXAB"
>
> Any word on this from developers?



We've talked about this in the past.  The quickest way to do this would
be to mod the LFRX code.  Currently it has 2 subdevices, one for the A
input and one for the B input, which control the mux settings.  If we
made a setting for a "C" input which just changed the mux settings, that
would solve it pretty quickly.

Matt
Eric B. (Guest)
on 2009-02-16 23:51
(Received via mailing list)
On Sun, Feb 15, 2009 at 02:24:32PM -0800, Matt E. wrote:
>> Any word on this from developers?
>
>
>
> We've talked about this in the past.  The quickest way to do this would
> be to mod the LFRX code.  Currently it has 2 subdevices, one for the A
> input and one for the B input, which control the mux settings.  If we
> made a setting for a "C" input which just changed the mux settings, that
> would solve it pretty quickly.
>
> Matt

You can get what you want today by just setting an appropriate value
for the Rx mux:

  /*!
   * \brief Set input mux configuration.
   *
   * This determines which ADC (or constant zero) is connected to
   * each DDC input.  There are 4 DDCs.  Each has two inputs.
   *
   * <pre>
   * Mux value:
   *
   *    3                   2                   1
   *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
   * +-------+-------+-------+-------+-------+-------+-------+-------+
   * |   Q3  |   I3  |   Q2  |   I2  |   Q1  |   I1  |   Q0  |   I0  |
   * +-------+-------+-------+-------+-------+-------+-------+-------+
   *
   * Each 4-bit I field is either 0,1,2,3
   * Each 4-bit Q field is either 0,1,2,3 or 0xf (input is const zero)
   * All Q's must be 0xf or none of them may be 0xf
   * </pre>
   */
  bool set_mux  (int mux);


Assuming your Basic LF is on side A, this should work:

  u.set_mux(0x00000010)


Eric
Josh B. (Guest)
on 2009-02-17 04:41
(Received via mailing list)
svn up!

It is now possible to receive quadrature samples from the RXA + RXB
antennas of the basic RX and LFRX daughterboards. To use this...

:::For GRC, there is a new rx antenna option called RXAB.

:::For command line, usrp scripts support the "-R A:2" or "-R B:2"
option.

:::For python coders, the subdev spec should be (0, 2) for side A and
(1, 2) for side B.

-Josh
This topic is locked and can not be replied to.