I set up a USRP1 with 2 BasicRX daughterboards configured, each
in dual-channel complex mode (mux is 0x3210). My application is modified
from usrp_oscope.py to actually work in this mode. For instance, the
set_freq and set_gain functions actually apply to all the subdevs not
the first one. I set the subdev list to (0,0) (0,1) (1,0) and (1,1).
The application simply takes the two complex streams and subtracts them,
and then plots the magnitude of the output on the scope.
To test the app, I set up a dual-channel 16 MHz signal generator with
0.05 V sine waves out each input, and connected it to inputs 0 and 2.
When I tune the USRP to different frequencies (e.g., 16M, 16.1M, 15.9M,
16.5M, etc), I get very different amplitudes and the FFT coefficients
change dramatically. I see swings of 3-10 dB. The amplitude is not
constant for a given frequency, but seems to depend on what frequency
was previously used.
When I look at either individual stream, but not their difference, the
amplitude stays constant accross frequency.
My first thought was that this sounded like the problems with MIMO, that
retuning the frequency would introduce unknown (but constant) phase
between the streams and they might sometimes be constructive and other
times destructive. But the mailing list archive seems to treat this
offset as coming from the RF oscillators and their PLL to the master
clock, rather than from the AD9862 or other features. BasicRX has no
Are there other ways for phase ambiguity to crop up differently for the
daughterboards even when using Basic RX boards? Any suggestions for
else I should test?