Using the latest in commercial interfaces and available computing power, the Tektronix RSA 300/500/600 USB real time spectrum analyzers separate signal acquisition from measurement, dramatically lowering the cost of instrument hardware. The series is also well suited for applications that need automatic measurements or remote control.
The programs can be created in the host PC, and the remote control implemented over an Ethernet connection through a small, low-cost PC, such as Intel NUC, paired with each RSA. Tektronix provides programmatic control using several different interfaces to support your applications. This application note will explain the programmatic interfaces and environments available for Tektronix RSA USB spectrum analyzers and provide recommendations and examples for your applications.
Block Diagrams of Tektronix USB Spectrum Analyzers
Within the spectrum analyzer hardware, an RF downconverter translates the input RF signal to the IF (intermediate frequency) with 40 MHz bandwidth. The IF is sampled at 112 Msps (Msamples/sec) by a 14-bit ADC (analog to digital converter), producing a stream of IF samples that are formatted and transferred by a USB 3.0 connection to the PC. Other brick inputs allow synchronization of the internal reference oscillator to an external reference source or enable the use of external trigger or GPS timing pulses.
The PC platform (a workstation, laptop, or tablet) provides control to the spectrum analyzer hardware via USB 3.0 connection. In the PC, the IF samples are received by the USB Host HW and Driver, which pass them to the RSA306 API SW DLL. The API (application programming interface) provides public access to four different formats of the signal data including:
- processed IQ data blocks.
- complete DPX bitmap images.
- demodulated audio.
- raw ADC samples.
As well, the API provides the control interface to the hardware. Applications such as SignalVu-PC use the API to configure the hardware, retrieve DPX image blocks and IQ samples for analysis, and support continuous storage of raw sample data to file. User applications can also access the API for customized developments.
The Two Programmatic Control Methods
There are two methods to control Tektronix USB spectrum analyzers programmatically. Both methods can be implemented in different programming platforms, such as C, C++, C#, Matlab,Python, LabVIEW, and others.
Method 1, SignalVu-PC PI: Traditional benchtop spectrum analyzers, like Tektronix RSA5000 and RSA6000, have always had a PI (programming interface) to allow remote control of instruments, remote data gathering, and automated testing. The PI implemented SCPI (Standard Commands for Programmable Instruments) commands that could be sent to the controlling software to perform operations such as instrument setup, start acquisitions, retrieve spectra and calculated data, etc. With the RSA300/500/600 USB controlled spectrum analyzers, the application software SignalVu-PC maintained the same interface as the spectrum analysis software controlling the Tektronix benchtop spectrum analyzers. Consequently, the same PI is still in place for these USB spectrum analyzers for programmatic control. PI SCPI commands can be sent to the SignalVu-PC code that controls the USB spectrum analyzer via either the TekVISA VXI-11 Server (virtual GPIB) or the TekVISA Socket Server (Windows sockets). The RSA API is the new piece of code written to interface the hardware to the data ports of the SignalVu-PC software.
Method 2, RSA API: Sometimes users don’t need many highlevel, complicated signal analysis in SignalVu-PC, but they want to implement basic code fast or do further deep processing based on the acquired data. In this case, the RSA API provides a better option to meet those needs. SignalVu-PC doesn’t need to be run, and the user can access the low-level API for fast data processing.
Depending on your applications, the PI and API methods have pros and cons. Here are our recommendations on which method is preferred based on different programming purposes.
|Programming Purposes||SignalVu-PC API||RSA API|
|Making RF measurements that are included in SignalVu-PC, particularly when analysis results are returned on screen.||✓|
|Testing RF standards supported by SignalVu-PC where measurement limits are included in the software, many of which are pass/fail.||✓|
|Collecting streaming data for later analysis.||✓|
|Capture data fast and efficiently||✓|
|Creating complicated higher-level applications by yourselves||✓|
|Streaming data with narrow bandwidth||✓|
Table 1 When to use PI and when to use API.
Control by SignalVu-PC PI
To program the RSAs through the SCPI commands with SignalVu-PC software, these are the four steps to follow:
* You need to install the LabVIEW driver to use NI LabVIEW. No additional drivers are needed for platforms like C, C++, C#,Matlab, and Python.
The PI of SignalVu-PC uses SCPI and IEEE 488.2 Common Commands. Figure 5 shows the command parts as described in the Command Syntax subsection.
Each command works in a particular measurement view(s).Table 2 lists all available measurement displays supported by the SignalVu-PC software, the measurement view it’s in, and if it requires an installed option.
|General signal viewing||Free|
|General purpose digital modulation||Option SVM|
|OFDM analysis||Option SVO|
|Audio analysis||Option SVA|
|Bluetooth analysis||Option SV27|
|LTE Analysis||Option SV28|
|P25 analysis||Option SV26|
|Pulsed RF||Option SVP|
|WLAN analysis||Options SV23, SV24, SV25|
|EMC pre-compliance and troubleshooting||Option EMCVu|
|Tracking generator||Option SV60 and 04 (HW)|
Table 2 The PI measurements supported in SignalVu-PC
Control by RSA API
There are three steps to program the RSAs directly through the API driver:
** For RSA API programming, we provide a Matlab driver for Matlab and IVI driver for LabVIEW. The API itself was implemented by C++ so it’s compatible with C/C++. Controlling RSAs with Python is straightforward without needing any additional drivers.
Two benefits of the RSA API are that you don’t need to keep SignalVu-PC running continuously or install any VISA drivers.
The API driver of RSA provides a simple, fast way to program the instrument. Therefore, the available measurements of the API are limited compared to SignalVu-PC. However, it still makes available the most common actions programmers need:
|Instrument Setup (Alignment, Configure, Device, GNSS, Trigger, power, Time)||No options and free|
Table 3 The available API function sets
One benefit of using API is streaming the IQ and IF data down to 200 kHz bandwidth, which is useful for reducing the total size of captured streaming data. This feature will save more space if your interested signals are narrow band.
PI Example 1: LabVIEW based Bluetooth production test
Test engineers face many obstacles when integrating a spectrum analyzer into a test rack. Not only do these engineers have power and size limitations, but there are also questions about selecting the right spectrum analyzer for the tests required. Common measurements include channel power, occupied BW, frequency, modulation, and spurious.
LabVIEW is software already widely used with hardware instruments in production tests of RF devices and systems. Tektronix RSAs provide LabVIEW drivers for PI and API programming. This PI example shows the usage of LabVIEW and RSA306B to build a Bluetooth transmitter test system for production tests. The programming method uses VISA with the PI driver to call the Bluetooth analysis results of SignalVu-PC.
Figure 6 shows the Bluetooth analysis user interface in SignalVuPC, which allows users access to analysis windows such as spectrum, time overview, constellation, summary table, and frequency deviation.
Figure 7 is the front panel in LabVIEW. The design of the front panel is flexible and could be simplified to only show the most straightforward test results like pass/fail for technicians in the factory.
PI Example 2: C++ based system integration development
System integration is a process of bringing together subsystems into one system for specialized tasks. Systems integration provides testing of instruments, racks, and subsystems, as well as design and development of specialized sensors and science instruments.
C++ is an object-oriented programming language that includes classes, inheritance, polymorphism, data abstraction, and encapsulation. C++ is a highly portable language and often the language of choice for app development to control test instruments such as spectrum analyzers. Software development using VISA is intended for instrument I/O and C, C++, or Visual Basic programmers familiar with the Windows environment. Tektronix spectrum analyzers provide flexible ways for system integrators to develop programs using C and C++.
This PI example shows a government-use spectrum monitoring and jamming system developed by Tektronix system integration partner ZTHY Communication Technology. The system was designed based on the Tektronix RSA306B and SignalVu-PC.C++ was used as the software system integration tool.
Figure 8 is the hardware structure of the system.
Figure 9 is the user interface compiled by C++ and based on SignalVu-PC commands. The test system includes complex features like DPX, FM demodulation, and power/frequency/phase vs. time, making PI through VISA preferred rather than API.
API Example 1: C++ based 3rd party spectrum monitoring software
Programming using the Tektronix RSA300/500/600 series API benefits users in capturing data fast and efficiently when highlevel complicated signal analysis in SignalVu-PC isn’t needed. This API example shows a 3rd party software developed by Decodio for wideband signal acquisition, channelization, demodulation, and streaming.
The Decodio Spectrum Monitoring System is a full-featured software solution for signal analysis and professional mobile radio (PMR) communication decoding. Based on hardware instruments including Tektronix RSA306B and RSA503A/507A, the system covers all aspects of spectrum monitoring, from distributed signal acquisition to content analysis.
API Example 2: MATLAB based RF and communication education system
MATLAB is one of the most widely used simulation tools in education. Many professors use MATLAB to help students better understand and apply concepts to a wide range of engineering, science, and mathematics applications, including wireless communication, signal processing, microwave theory, and others.
Tektronix SignalVu-PC is supported by the MATLAB Instrument Control Toolbox. This integration allows professors and students access to the complex analysis tools in SignalVu-PC. Programming with PI or API also helps in cases where professors or graduate students want to develop their own programs for classes or projects on communication or RF designs.
This API example shows MATLAB Simulink being used for an RF transceiver design. Tektronix RSA306 develops the Simulink system through the RSA API driver.
Tektronix RSA 300/500/600 series USB real time spectrum analyzers provide users two flexible programming ways to control instrument remotely. Using SCPI commands through VISA to control SignalVu-PC is great to get the results of complicated The API method bypasses SignalVu-PC software, and gives users a better option to capture data fast and efficiently for later analysis.
For sample code and examples of controlling Tektronix USB spectrum analyzers, visit:https://github.com/tektronixofficial?&q=RSA
For a complete listing of available spectrum analyzers from Tektronix, visit Tek.com.