Frames of SDR ADALM PLUTO based QPSK Communication Link
Description
A frame of 100 QPSK symbols are randomly generated and a Barker header sequence of 26 symbols is prefixed to it making a total frame of size 126 symbols. A total of 7096 such frames are generated, stored as complex variable "Tx_data", with dimension 126 by 7096. So each column represents one frame of QPSK symbols prefixed with Barker header. Symbols of each frame are pulse shaped using raised cosine filter and hence converted to a waveform of 126*20=2520 samples. These samples are transmitted over the air several times using Software Defined Radio (SDR) ADALM PLUTO's Transmit port at 850 MHz, with a gain setting of 0 dB. A receive antenna connected to Receive port of the same SDR is kept at 3 meter distance from the transmit antenna and is programmed to receive 850 MHz signal at a gain setting of 20 dB. This receive port captures the transmitted frames, with 3 times more length than the transmitted frames length. Thus each received frame has a length of 2520*3=7560 samples. After matched filtering with raised cosine filter, the resultant 7560 received samples corresponding to each of the 7096 such received frames are stored as complex variable "Rx_data", with dimension 7560 by 7096. So each column represents one received frame after matched filtering. Both Tx_data and Rx_data complex variables are saved as QPSKlink.mat and this is the data set of QPSK communication link. To access this dataset in MATLAB, copy the file in your working folder and then use the following snippet of code. load("QPSKlink.mat"); Then in the workspace the Tx_data and Rx_data will be visible with their data type and size. The QPSKlink dataset offers a practical and realistic testbed for exploring modern wireless communication using real over-the-air measurements collected with ADALM-PLUTO SDRs. Unlike purely simulated datasets, it captures channel effects in an indoor laboratory environment (having several racks of hardware and computers kept on tables), hardware imperfections, timing uncertainties, and noise encountered in real communication systems. Because both the transmitted symbol sequences and the corresponding received waveforms are available, the dataset can be used to develop and evaluate a variety of intelligent receiver functions. These include pulse alignment, frame synchronization, timing offset estimation, carrier frequency offset estimation, channel estimation, equalization, and symbol detection. The presence of a known Barker header enables research on frame synchronization algorithms. The dataset provides an excellent foundation for advancing AI-enabled wireless communications.
Files
Steps to reproduce
In MATLAB working folder copy the dataset QPSKlink.mat. Then type the following code: load("QPSKlink.mat"); Tx_data and Rx_data complex variables will be loaded in the workspace. Barker Sequence can be obtained by using the following code line: Tx_data(1:26,i) where i can take any value from 1 to 7096. All the 7096 columns will have same Barker sequence, indicating that all the 7096 frames have incorporated same header. Tx_data(27:126,i) where i can take any value from 1 to 7096 represent the data symbols. All columns or frames may not have same data. Some frames have same data, but some frames have different data. Similarly the real parts of first transmitted symbol frame and correspondingly, samples of the first received frame can be plotted using: figure subplot(211) plot(real(Tx_data(:,1)),'b'); subplot(212) plot(real(Rx_data(:,1)),'r') Similarly by replacing 1 with 2 or 3 or 4... till 7096, all other frames can be visualized. One application instance: This dataset to analyze its Bit Error Rate (BER) versus Signal to Noise Ratio (SNR). Additive White Gaussian Noise (AWGN) can be added to these frames to generate noisy samples at different SNR values. Then by incorporating pulse alignment using max energy method, frame synchronization using sliding correlator method and carrier offset correction using Moose algorithm, followed by header removal and symbol detection, the QPSK symbols can be decoded at each SNR. Comparing the decoded frames with the transmitted frames, BER versus SNR performance can be obtained. Later the one or more blocks of the above said traditional receiver can be replaced by Machine Learning or Deep Learning based intelligent receiver and performance can be compared for all the 3 different receivers.
Institutions
- M S Ramaiah University of Applied SciencesKarnataka, Bengaluru