Nutaq’s software tools for the PicoSDR are designed to accelerate the development of software-defined radio (SDR) prototypes. Two of the software tools are model-based:
- Model-Based Design Kit (MBDK) – Nutaq’s MBDK, based on Xilinx System Generator and MATLAB Simulink, is used in the PicoSDR orthogonal frequency-division multiplexing (OFDM) reference design to simulate the OFDM core and generate the FPGA bitstream.
- GNU Radio Companion (GRC) – Part of the GNU Radio’s open-source SDR development toolkit, the GRC provides a graphical environment designed to help developers create signal processing applications in Linux. Nutaq offers a GNU Radio plug-in for receiving and transmitting data to and from the PicoSDR in real-time.
In this blog post, I demonstrate how to use Nutaq’s MBDK with GNU Radio Companion to create a true model-based design for an OFDM-based application.
Current OFDM reference design
The current OFDM reference design uses a Visual Studio project and Nutaq’s PicoSDR API to control and exchange data with the OFDM core and the radios. The Visual Studio example performs the following tasks:
- Radio configuration – The application first configures the PicoSDR Radio420 RX and TX paths with the required sampling rate, RF frequency, gain, and filters.
- OFDM code configuration – The application then resets and configures the OFDM core via the FPGA custom registers.
- Data transmission – The application streams a file (either a video or data pattern) to the PicoSDR over the Gigabit Ethernet Real-Time Data Exchange (RTDEx) interface. The received data is encoded by the multiple-input multiple-output (MIMO) OFDM core and transmitted via the TX antennas.
- Data reception – The application simultaneously receives data from the PicoSDR. The OFDM receiver decodes data from the RX antenna. The received data is then sent over UDP to the video playback software (VLC media player).
The OFDM core also sends the received QAM64 constellation to the host PC.
Nutaq’s GNU Radio plug-in
Nutaq’s GNU Radio plug-in provides all the functionalities necessary to create a true model-based design:
- Radio configuration – The Radio420 RX and TX blocks for GNU Radio Companion configure the PicoSDR radios to the OFDM reference specifications.
- OFDM code configuration – The plug-in offers custom register blocks that enable the reset and configuration of the OFDM core.
- Data transmission – The plug-in RTDEx transmission block enables data transmission via Gigabit Ethernet to the PicoSDR and the OFDM core. The GRC lets you use different types of data, such as data files (i.e. the video streaming example from the reference design) or data patterns like ramps or sine waves.
- Data reception – The plug-in RTDEx reception block enables decoded data to be received from the PicoSDR. The GRC’s multiple signal processing block possibilities let you analyse the received data in real-time. It also can write the data to a file or to stream it through UDP to the VLC application.
Another RTDEx reception block receives the QAM64 constellation within GRC, where the decoded signal quality can be received in real-time.
The advantages of using a model-based design on the host PC
There are a lot of advantages to using GNU Radio for developing applications. It’s also useful in the continuous work Nutaq does to perfect its OFDM core and reference design. For example, GNU Radio’s multiple signal processing tools like real-time constellation display or bit-error rate calculation enable us to instantly qualify and characterise any modifications made to the OFDM core design.
Other possible advantages it could provide to our OFDM reference design would be the implementation of the MAC layer directly within GNU Radio. It could also be used to add data encryption prior to OFDM processing. Coding such processing algorithms on a host PC (in any programming language) takes a lot of time, which why GNU Radio Companion’s accelerated prototyping functionalities are so ground-breaking.