QPSK Radio in System Generator
Version 1.0.1 (116 KB) by
Bradley Comar
Here is a QPSK Radio that I put together using Xilinx System Generator blocks. The symbol synchronizer is a bit unorthodox.
Here is a QPSK Radio that I put together using Xilinx System Generator blocks. The symbol synchronizer is a bit unorthodox. This radio is detailed in a paper titled "Implementation of a QPSK Symbol Synchronizer in Xilinx System Generator," published in 2021 IEEE Computer Society Annual Symposium on VLSI (ISVLSI). The variables in modemPreloadFcn.m are used in the System Generator file. The function in srrc.m is called in modemPreloadFcn.m. I have not implemented this radio in hardware and I make no guarantees about is functionality. However, in simulations, it seems to function as intended and I published it here for educational purposes. I have also not inserted any registers that one would do when performing a timing analysis.
If you want to test the symbol synchronizer, you can click into QPSK_mod and then into the Phase Increment block (a constant block). You can then add a small offset to the current .25 (such as: .25 + .0002). After running the simulation, you can view an IQ plot by typing:
I_rx = outI.Data
Q_rx = outQ.Data
Save('simTest.mat','I_rx','Q_rx')
You can then run PlotRxPts.m to check its performance.
This radio was inspired by reading the book "Software Receiver Design" by Johnson, Sethares, and Klein.
Cite As
Bradley Comar (2023). QPSK Radio in System Generator (https://www.mathworks.com/matlabcentral/fileexchange/112755-qpsk-radio-in-system-generator), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2019a
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.