I am using a USRP X410 with 4 receive channels in my UHD C++ code. The code utilizes the RFNoC radio and DDC for data acquisition.
To achieve my desired functionality, I leveraged code examples from the UHD repository. Specifically, I combined elements from rfnoc_rx_to_file.cpp and usrp_rx_multichannel.cpp.
Question:
When using the internal OCXO as the reference clock, are the received samples from all 4 channels guaranteed to be synchronized in time and phase?
I would appreciate clarification on this synchronization behavior or if there are any known limitations with phase/time alignment across channels using the RFNoC approach.
In general they will be synchronized in time and phase but with the following limitations:
During the run of a day you'll have a drift of about 180 degrees between channels 0/2 and 1/3. By retuning from time to time this wouldn't be an issue as we'd reset the NCO then. This is because the NCOs of those channel pairs are tuned to slightly different frequencies with a µHz offset.
Between sessions you may see LO phase jumps of +/- 60 degrees. Time synchronization is maintained then, but not phase obviously.
You'll have to use timed commands which the examples don't show, to achieve the channel synchronization.
Issue Description
I am using a USRP X410 with 4 receive channels in my UHD C++ code. The code utilizes the RFNoC radio and DDC for data acquisition. To achieve my desired functionality, I leveraged code examples from the UHD repository. Specifically, I combined elements from rfnoc_rx_to_file.cpp and usrp_rx_multichannel.cpp. Question:
When using the internal OCXO as the reference clock, are the received samples from all 4 channels guaranteed to be synchronized in time and phase? I would appreciate clarification on this synchronization behavior or if there are any known limitations with phase/time alignment across channels using the RFNoC approach.
Setup Details
Expected Behavior
Actual Behaviour
Steps to reproduce the problem
UHD 4.4.0 using rfnoc_rx_to_file
Additional Information