03-23-2017 11:21 AM
Hi,
I'm trying to measure the delay and the frequency difference between two USRP-2920 Radios. My way to get there is actually seems a bit strange, but it's part of a bigger project. I want to send sweeped signals (chirps), save the spectrum of the received signals in a matrix (each spectrum in a row) and finally make another FFT over the columns of the matrix and see what happens.
Anyway, my first problem is, that I want to start the TX- and RX-radio at the same time with a VI, where TX- and RX-VI are both included as Sub-VI's. But observing my signals, the delay is always different. Is there a way to start TX- and RX-USRP at exactly the same time?
Next problem: How can I save received data row by row in a matrix with a fixed length?
Thanks! (at least for reading)
My VI's so far:
03-28-2017 06:28 AM
Hi student31011985,
Your Start TXRX VI calls your two separately created VIs, without dependency. This means that they will run in parallel, but we can not determine which SubVI will start at which time (this is determined by the operating system). I recommend you try using the Initiate VI of the receiving side synchronized to the write Tx Data VI.
For your second question:
Do I understand you correctly that you want to populate an array/matrix with each iteration of the Chirp_USRP_RX.vi?
If thats the case you would want to initialize an array/matrix before the loop starts and use in case of an array Replace Array Subset to Replace each row in the array with the recorded data. The Loop index would be your row of the array. If required, the array can be transposed in a matrix.
I hope this helps!
regards
03-31-2017 02:46 AM
Hi,
sry for late response and thanks for helping.
I recommend you try using the Initiate VI of the receiving side synchronized to the write Tx Data VI.
How can I do that?
I solved my second problem already a bit different but it works. I'm processing the stored data with Matlab since LabView has problems processing large arrays.
My solution:
03-31-2017 04:07 AM
Hi student31011985,
the NI-USRP functions palette offers a USRP Property node. There you can choose from a variety of clocking and synchronization settings.
03-31-2017 03:35 PM
Hi,
You can use the niUSRP Configure Trigger and Set Time VIs to achieve the sync.
Something like the attached image.
03-31-2017 04:12 PM - edited 03-31-2017 04:14 PM
Correction:
The image attached in my previous post shows how to synchronize on a single 2920 for both Tx and Rx.
Doing synchronization on two different devices doing different kind of operations (Tx and Rx) will be more involved.
I recommend reading this :
http://forums.ni.com/t5/Software-Defined-Radio/2x2-MIMO-QAM-with-Alamouti-Coding/ta-p/3532638
http://www.ni.com/white-paper/13878/en/
Especially the subAsyncMulti-ChannelTransceiver(NIUSRP).vi and subInitHW (niUSRP).vi which set time on multiple devices at the next timebase edge.