This project focuses on integrating the PlutoSDR radio into the Sionna framework. The main goal is to enable testing and demonstrations of simulated systems created with Sionna through a true over-the-air connection, thereby if not eliminating the need for a simulated radio channel, providing a validation point for a research. The implementation leverages PlutoSDR, an affordable Software-Defined Radio (SDR) developed by Analog Devices.
The jupyter notebook Sionna_Pluto_SDR.ipynb
provides an end to end example on how to use the functionality.
The system is designed to receive modulated In-Phase and Quadrature (IQ) signals produced by the Sionna modulator. These signals are then sent through the radio interface using the Transmission (TX) port of the Software-Defined Radio (SDR). In Figure 1, the absolute values of the complex IQ samples are illustrated, while Figure 2 displays the power spectral density (PSD) of the transmitted signal.
n addition to configuring the modulator's IQ output, users have the option to set parameters such as SDR RX gain, and the number of extra unmodulated symbols. The unmodulated symbols are utilized for Signal-to-Interference-plus-Noise Ratio (SINR) estimations. The system employs a straightforward power control algorithm that maintains the SINR within predefined limits, eliminating the need to manually configure the TX power.
Fig 1. Original modulated signal
Fig 2. Power Spectral Density of the transmitted signal
The transmission process utilises a cyclic transmission of the modulated signal. To facilitate the calculation of Signal-to-Noise Ratio (SINR) estimates, zero-modulated symbols are inserted between successive instances of the modulated signal. The received signal is illustrated in Figure 3.
Fig 3. Received signal from three times repeated transmissions
The transmitted and received IQ signals undergo correlation analysis to determine the start position of the modulated symbols.
Fig 4. Received signal with calculated start position
Upon successful synchronization, the PSD for both the received signal and the accompanying noise can be calculated. The resulting plots are visualized in Figure 6.
Fig 6. Power spectral densities of the received noise during the unmodulated symbols, and modulated symbols
The offset can be determined in two ways: either by identifying the peak correlation or by using a threshold, which is a multiplier applied to the average correlation (for example, a multiplier of 6 seems to work well).
Fig 7. Correlation around the peak is shown. The blue line indicates offset detection based on the threshold, while the red line signifies offset detection based on the maximum value.
After the synchronisation, the received IQ signals undergo scaling to align the magnitudes with those of the original signal to ensure compatibility with the Sionna demodulator. The output format is [IQ, SINR, SDR_TX_GAIN, SDR_RX_GAIN, fails + 1, corr, sdr_time]
where
- IQ is the IQ data in format expected by Sionna demodulator
- SINR is the measured SINR based on noise power measurement during the unmodulated symbols, and the mean power of the received and synchronised signal.
- SDR_RX_GAIN similar to above, the actual RX setting
- fails+1 is the number of repeated processes if correlation check fails. If this happens, TX power is increased each time.
- corr os the Pearson correlation of the tx and rx signals
- sdr_time is the measured time from start of the SDR process to finishing it. When debug is enabled, it takes about 1.4sec and without it takes 25ms in authors computer.
These pictures are created with the Sionna_Pluto_SDR.ipynb
notebook located in this repository (debug=True). In the author's environment, the entire transmit-receive process typically takes around 25 milliseconds.
sionna
16 or laterlibiio
, Analog Device’s library for interfacing hardwarelibad9361-iio
, AD9361 the Analog Devices RF chippyadi-iio
, Python API for PlutoSDR
- Currently supports SISO 1T1R only, with 2T2R functionality potentially added later.
- Batch size must be 1.
- Graph execution is not supported.
This project is licensed under the MIT License - see the LICENSE file for details.
Hoydis, Jakob, Sebastian Cammerer, Fayçal Ait Aoudia, Avinash Vem, Nikolaus Binder, Guillermo Marcus, and Alexander Keller. “Sionna: An Open-Source Library for next-Generation Physical Layer Research.” arXiv Preprint, March 2022.
“ADALM-PLUTO Evaluation Board | Analog Devices.” Accessed November 15, 2021. https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html#eb-overview.
It is imperative to acknowledge that engaging in radio transmission activities, especially over the air, mandates strict adherence to regulatory and licensing requirements. The use of devices like the PlutoSDR for transmitting radio signals must be conducted responsibly and legally.
- Obtain Required Licenses: Before initiating any radio transmission, ensure you have obtained all necessary licenses and permissions from the appropriate regulatory bodies.
- Follow Frequency Allocations: Adhere to the designated frequency bands and power levels to prevent interference with licensed services and other critical communication systems.
- Ensure Safety: Ensure that your transmission activities do not pose any risks to public safety or disrupt other lawful communication services.
Engaging in unauthorized radio transmission can result in severe legal consequences, including fines, legal actions, and the confiscation of equipment.