Hey USRP-users, I am doing some experiments that involve a USRP x300 + (2) TwinRX daughtercards. I am observing some degraded performance and would like some advice on the manner in which I am configuring the receivers / mainboard / daughtercards.
The experiment I am conducting involves collection of high-dynamic range channel-estimates: similar requirements to a direction-finding problem. In my setup, I have 1 remote transmitter, and 4 receivers. I am least confident about how I am configuring the daughtercards since there are no examples that I could find which use these relatively new daughtercards. The observations I have made indicate abnormally high phase noise and poor relative SNR between receivers. For example, when injecting an identical signal into all 4 receivers, receivers 0-1 and 2-3 are 45 dB matched, respectively. However, receivers across daughtercards are not! This is strange since in my configuration of the USRP I intended to share the same LO across all four receivers. Furthermore, the spectrum of each receiver is quite spurious. I am expecting more than 45 dB SNR, at least. The signal level into the receivers is -36 dBm (average). The PAPR of the signal is very low < 5 dB. This is the code I am using to configure the USRP and take a capture of samples. It is using a thin wrapper written in Python around the multi_usrp C++ API. Thank you very much, any insight is much appreciated! ######################### import uhd import time # Some parameters freq = 1600.e6 gain = 60. num_samples = int(10.e6) # Create the USRP object usrp = uhd.Uhd('type=x300,addr=192.168.50.2,second_addr=192.168.40.2') # Configure mainboard usrp.set_clock_source('external') usrp.set_rx_subdev_spec('A:0 A:1 B:0 B:1') usrp.set_rx_rate(100.e6) # Configure receivers source = ['internal', 'companion', 'external', 'external'] export = [True, False, False, False] antenna = ['RX1', 'RX2', 'RX1', 'RX2'] for chan in range(usrp.get_rx_num_channels()): usrp.set_rx_lo_source(source[chan], 'all', chan) usrp.set_rx_lo_export_enabled(export[chan], 'all', chan) usrp.set_rx_antenna(antenna[chan], chan) usrp.set_rx_freq(freq, chan) usrp.set_rx_gain(gain, chan) time.sleep(1.) # Capture samples samps = usrp.receive(num_samples, list(range(usrp.get_rx_num_channels())), False)
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com