This example implements the MUSIC algorithm to do direction finding using a single USRP-2945 or USRP-2955 reciever.
Hardware Requirements
Hardware |
Quantity |
Purpose |
USRP-2945 or USRP-2955 |
1 |
Receive target signals over the air and the reference tone (for calibration). |
NI USRP-2920 (or any USRP that can send a signal in the frequency range of operation. Current demo uses 462.625 MHz) |
2 |
One device to generate the ref tone for phase synchronization and one device to generate the target tone. |
4 way splitter |
1 |
To distribute the ref tone signal. |
Short matched length SMA cables |
5 |
4 to connect antennas to the 2945 ports. 1 to connect the 4 way splitter to Tx ref signal port of the USRP-2920. |
Antenna |
4 |
Receive the target signal over the air. |
Handheld radio (walkie-talkie) capable of transmitting on 462.625 MHz (Ch 22). |
1 |
Transmit the signal to the antenna array (this is the target that is being located). |
Short LO sharing cables |
2 |
Share LOs across channels. These ship with the USRP-2945 and USRP-2955 |
Software Requirements
-LabVIEW 2016 or later
-Mathscript Module
-USRP 16.1 driver or later
Steps to Implement or Execute Code
Powering on the Device and Opening Up the Application
The front panel of the application
Running the Phase Calibration Routine
Running the Application
Additional Information or References
More information on the USRP 2945/2955
More information on the MUSIC algorithm
Frequency/Wavelength calculator
Known Issues:
Issue |
Workaround |
Filter coefficient calculation (FIR) sometimes results in error from Math-script node |
Use the "FROMFILE" or "IIR"option for coefficients. |
The angle of arrival changes suddenly (discontinuous) when moving the Tx antenna. |
This is potentially due to the reflections taking place in the test location. Try testing in an open space. |
The VI loads with a broken run arrow and mathscript errors |
Make sure you copy the .m files to the LabVIEW Data folder |
The "location" output does not have a data type associated with it |
Add the path function above the "[temp location]=peak(Z,M,'number');" line and point to the location of the .m files. Then, right click on the location output and manually specify the data type as a 1D array of doubles. Once this is done and you've run the program once, you may be able to delete the path function. |
Hi,
I was trying to use the same code on LabVIEW 2016 with Mathscript RT module installed and activated and USRP 16.1 drivers installed.
The problem is that the code gives error with respect to syntax in the Mathscript node. Please find the snapshots attached at https://drive.google.com/drive/folders/0B9jkbWCOtLwsaUJIZE9pcmRGWGs?usp=sharing
These commands are:
1. peak
2. phasesyn
3. reallocation
When I tried searching on the web for these commands, I could not get anything on Matlab help for them.
Am I doing something wrong?
Thanks
Hi,
I'm facing error:
niUSRP Open Rx Session.vi<ERR>A runtime or configuration error occurred.
Code: 1299
Details: LookupError: KeyError: No devices found for ----->
Device Address:
type: b200
name: RIO0
I'm using USRP 2940R , Is this error due to USRP ??
Please help
Hi Moaz_130,
No, there is no way to run this code without significant modification on the 2940R. This code takes advantage of the four RX ports of the USRP 2945 and 2955.
You can find a more general example here that requires two USRPs: https://forums.ni.com/t5/Software-Defined-Radio/Angle-of-Arrival-Detection-with-NI-USRP-and-LabVIEW/...
Cheers
Good demo, i'm planning to utilize 8 channels, can I use another 2955 and plug it in?
WHat about the software, any modifications I need to take note?
How will be the connection for the LO?
Is the connection below correct?
Please follow the same setup on this link: https://forums.ni.com/t5/NI-Applications-Engineers/sharing-the-clock-between-2-devices/td-p/3690944
Hello,
I have a customer really interested in the setup and application.
We have a number of uncertainties whether this would be a solution for his needs, therefore would be great if you could help with the below:
What is the phase stability in relationship with time and temperature for this setup, after calibration?
What is the degree of initial alignment after calibration?
For the particular setup (2x USRP-2955), does recalibration have to happen after restart/reset/retune?
Thank you,
Mircea
I have LabVIEW 2017 with ni usrp 2019 drivers and math script rt module but I have the following error occur in math script node, I copy the .m files to LabVIEW data folder.
When running "Calculate Phase Calibration Constants.vi" in LABVIEW 2021 with NIUSRP 2023, I observed a significantly large variance in the std dev of phase offfsets. Upon further testing, I found that the Phase Offsets exhibit a variation in multiples of 90 degrees, similar to the situation described below. How can this issue be resolved?
https://github.com/EttusResearch/uhd/issues/670