Wednesday, November 30, 2011

Re: [Discuss-gnuradio] UHD vs. USRP2 driver questions



2011/11/29 Kevin Tien <kvn.tien@gmail.com>
Hi,

We're using USRP2s with the RFX2400 daughterboards, and we've recently
switched from the old USRP drivers to the UHD drivers as per general
recommendation. However, we've run into a few problems that have us
stumped:

1) Previously, our receiver gains were set to 0 dB and we had no
problem receiving a signal with >30 or 40 dB SNR. However, now the UHD
receiver blocks need specified gain around 30 or 40 dB to achieve this
same performance; did baseline values change?

As far as I remember, there was something about the old driver sending out signals that were ints
The new driver sends and receives +/- 1, so you will need some more gain (38 dB I believe somone calculated)
 

 
 2) As far as we can tell through searching the Internet, the sampling 
rate in the Tx/Rx blocks has replaced the decimation and interpolation
fields from the legacy blocks. But what exactly are we specifying with
the sampling rate now? Is it the sampling rate the rate at which the
transmitter transmits samples, with interpolation assumed if the data
going into the block isn't throttled? In which case, would higher
sampling rate imply lower 'interpolation' rate? Bottom line, we have
no idea how to play around with the sample rate, or how important it
is.

The UHD driver sets up the interpolation rate for you.
It will select the interpolation rate most appropriatly close to 100MHz / requestedSamplerate

With the caveat that it first checks if it is dividable by two(for the first hb filter), if that result is dividable by two( for the second hb filter)  and if the final result is less than 128 (for the CIC) it will be set.

If you select an "unobtainable" sampling rate, the output will tell you. 

in pseudocode:

%%%%%%%%%%%%%% Mechanism for chosing HB filters and interprate %%%%%%%%%%%
%%%%%%%%%%%%%% root / host / lib / usrp / cores / tx_dsp_core_200.cpp %%%%
%
% if (interp_rate > 128) interp_rate &= ~0x1;//CIC up to 128, have to use 1 HB
% if (interp_rate > 256) interp_rate &= ~0x3;//CIC up to 128, have to use 2 HB
% size_t interp = interp_rate;
%
% //determine which half-band filters are activated
% int hb0 = 0, hb1 = 0;
% if (interp % 2 == 0)
% {
% hb0 = 1;
% interp /= 2;
% }
% if (interp % 2 == 0)
% {
% hb1 = 1;
% interp /= 2;
% }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Thanks for your help,
Kevin Tien

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Best
Paul
--
• − − •/• −/• • −/• − • •/− • • •/•/− •/− • •/• •/− • • −/•/− •/• − − •− •/− − •/− −/• −/• •/• − • •/• − • − • −/− • − •/− − −/− −//

No comments:

Post a Comment