QPSK Radio in System Generator

Here is a QPSK Radio that I put together using Xilinx System Generator blocks. The symbol synchronizer is a bit unorthodox.
56 Downloads
Updated 27 Jun 2022

View License

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 (2024). 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 Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.1

I only changed my description.

1.0.0