On 11/15/2019 05:02 AM, Julian Ilinca via USRP-users wrote:
Hello all,

I have two questions concerning the RX channel configuration on an TVRX2 daughter-board. I cannot seem to find any relevant information in the example files or on the Internet. But first things first, the TVRX2 is connected to a N210 motherboard and I am using the UHD C++ API for configuring the device. Furthermore, I am trying to measure the real (I) component of a VHF signal on both of the channels (RX1 and RX2) simultaneously.

1. The first question is related to IQ sampling:
The daughter-board is set so that one channel retrieves the I component and the other channel the Q. I retrieved this information with the uhd_usrp_probe command. In the output under RX0 its says connection type = Q and on RX1 connection type = I. What command do I have to use to change connection type of RX0 from Q to I, so that I could have two channels measuring the real component.
That isn't possible. Signals are presented to the host as complex samples. The TVRX2 *analog hardware* uses a so-called "low-IF" architecture, and the N210 has a single 2-channel complex ADC. Each of those two channels is *hard wired* to go to one of the ADC channels, and the DDC algorithms in the FPGA convert that to a complex base-band signal that is then filtered, downsampled, and sent to the host computer.


2. I'm a confused about the channel mapping convention used when using the TVRX2. In order torecord from two channels I have set the subdev_spec to "A:RX1 A:RX2", and it works fine. However, when I use the "get_rx_num_channels()" function its return value is 1 instead of 2.
In the manual entry for the function it says:

"This is the number of USRPs times the number of RX channels per board, where the number of RX channels per board is homogeneous among all USRPs."

To get streaming arguments correctly I have to use a vector where I map the channel number s1 and 2 manually:

>>std::vector<size_t> channel_nums;
>>...
>> channel_nums.push_back(0);
>> channel_nums.push_back(1);
>>...
>>stream_args.channels = channel_nums;
>>uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args);

Now, how does the device recognize 2 channels after the get_rx_stream() function has been called, as it earlier on told me there is only one channel, and how can I specifically configure the properties of channel 1?
Well, you just created two channels within the stream. So, I'm guess that's where the number comes from, but I'll agree it's confusing if
  you're expecting it to be the actual hardware channels.



Thanks already in advance for your support!

Br. Julian


_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to