This result is commom with general USRP and USRP RIO device since they use individual local oscillators (LOs) in each channel and do not have phase align function. There is a random phase offset between any two frontends and this phase offset is different for different local oscillators (LOs) frequencies.
However, this problem has been solved in USRP-2945 and USRP-2955. We can see the difference through back panel between USRP-29x5 and other series.
USRP-2955 & USRP-2945 back panel
USRP 2954 back panel
According to the Block Diagram of USRP-2955, it uses two-stage superhetrodyne structure and has advanced synchronization function, which can import local oscillators (LOs) to each channel or export local oscillators (LOs) of each channel so that it could allow the creation of phase coherent reception channels, which is essential for phase detection and beamforming application.
-
Preparing the USRP-29x5 for LO Sharing (Hardware)
Complete the following steps to prepare a single USRP-29x5 device to share local oscillators (LOs) among all four channels in the device.
- Connect the LO OUT 1 IF2 connector of the USRP-29x5 back panel to the LO IN 0 IF2 connector of the same USRP-29x5 back panel using an SMA(m)-to-SMA(m) cable.
- Connect the LO OUT 1 IF1 connector of the USRP-29x5 back panel to the LO IN 0 IF1 connector of the same USRP-29x5 back panel using an SMA(m)-to-SMA(m) cable.
The completed hardware setup is shown in the following figure.
-
Preparing the USRP-29x5 for LO Sharing (Programming)
The USRP examples are located inC:\Program Files (x86)\National Instruments\LabVIEW (the current version you are using)\examples\instr\niUSRP. The program niUSRP EX Rx 4-Channel Continuous LO Sharing (Single Device).vi will be helpful.
Also you can try some existing examples from NI Community, such as Angle of Arrival Detection with NI USRP and LabVIEW Communications and USRP-2945 and USRP-2955 Direction Finding.