In this blog post, I want to share with you some very handy software from Analog Devices called VisualAnalogTM. This free software combines a powerful set of simulation and data analysis tools with a user-friendly graphical interface. VisualAnalog enables designers to customize their input signal and perform data analysis. The input signal can be constructed from sine waves, noise sources, and vector data stored in a file. VisualAnalog can be downloaded from http://www.analog.comhttps://nutaq.com/converters-tools/adc-tools/topic.html
In this post, we use the software to perform a quick analysis of the Radio420X FPGA mezzanine card (FMC), which is the radio card used in Nutaq's PicoSDR and ZeptoSDR platforms. To perform the recording, we simply use the default record and playback demo provided with Nutaq’s Model-Based Design Kit (MBDK):
The MBDK model does multiple things but the portion that interests us is the recording part:
Basically, the model takes the interleaved I and Q data of both radio cards, deinterleaves them, and sends them to the recording logic submodel. Let's expand the Record logic submodel:
We can see that the four channels go into the DDR3 memory and that data is downloaded to an external computer using the RTDEx (Gigabit Ethernet) channel 0 over the MemToHost interface. In other words, this model has every block required to record radio input.
As this model is compilation-ready, let’s assume that we already have the required bitstream at hand and programmed into a PicoSDR. The next step is to run a host application that configures the radios and starts the recording. Here I used the provided CLI script from the ADP software suite located in C:NutaqADP6ADP_MicroTCAexamples_perseus6010perseus6010_radio420x_rtdex_record_playbackhostclilaunch_radio420m_record.bat
This script first configures the sampling frequency of the ADCs to 20 MHz. Then, it configures the radio receivers at 943 MHz, sets the over-the-air bandwidth to 5 MHz, and starts the recording for 1.002 MB of data (I and Q pairs for both radios). The recorded file will be found in C:NutaqADP6ADP_MicroTCAexamples_perseus6010perseus6010_radio420x_rtdex_record_playbackbinradio420m_record_data.bin
Since the file includes all four channels, Nutaq provides a MATLAB script that performs the signal deinterleaving automatically. In your MATLAB window, select the recorded file (located at the above path) and enter the following command (shown in the screen capture below):
The fpgaacqgetframes script is provided with the Nutaq software. It reads the data file and splits the binary data into a specific number of columns:
function signals = fpgaacqgetframes( filename, num_channels, data_type, framesize )
In the screen capture, we split the data into four channels, with each sample being 16 bits wide. Afterwards, you can do whatever you want with the recorded data in MATLAB or you can save it to text files for use in VisualAnalog.
You need to put the data into separate text files for use by the VisualAnalog software (one text file per I or Q signal, resulting in a total of four). To do so, simply select and copy one column of the MATLAB array, then paste the data into a new text file.
To analyze the recorded data, open VisualAnalog and create the following flow graph:
The Pattern Loader block is used to load the text files. By using two separate text files, we can create a complex signal. The Input Formatter block performs a data weighting to scale the samples to 12 bits. When recording, the samples were cast as 16 bits to better fit in memory. However, the actual analog-digital converters (ADCs) are 12 bits so to get a correct performance analysis of the sampled signal, we need to specify that these values were sampled using 12-bit ADCs. Finally, the FFT and FFT Analysis blocks are doing the actual work. On the graph, you can see multiple performance criteria like the signal-to-noise ratio (SNR), spurious-free dynamic range (SFDR), harmonics, noise floor, signal to noise and distortion (SINAD), etc.
Here's an example of the radio performance when inputting a –20 dBm 1-MHz tone:
This graph tells us many things. We can see:
- the nearly 50 dB of sideband rejection
- the DC offset calibration effect on the DC power lever
- that our radio creates very low harmonics
To conclude, the VisualAnalog software makes it very simple to perform an in-depth analysis of an I&Q recorded sequence on a PicoSDR. For more information on the VisualAnalog software, please take a look at its user’s manual or watch the videos.