Members: Thomas TrieuGR, Amir Vince ZamanGR
Faculty advisors: Minsung Kim, Byungjun Kim
This group is split into two projects: Blind MIMO and Vector Perturbation Precoding.
This project aims to increase the capacity of Blind MIMO wireless communications systems using quantum and physics inspired optimization algorithms. Multi User Multiple Input Multiple Output (MU-MIMO) is a technology that enables many devices to communicate with a multi- antenna base station in parallel. Normally this requires strict coordination between the base station and the devices, Blind MIMO removes the that reuirement, but adds some computational complexity. Essentially, Blind MIMO allows for any transmission to be received at any random time, without scheduling or synchronization.
Iris is a conventional system that focuses on enabling Blind MIMO in Wide Area Network (WAN) Internet of Things (IoT) devices. My work is to reimplement Iris, then improve the system using a quantum inspired approach that proveably increases performance. To do this I engineered a wireless simulator in MATLAB, tailored to benchmark Blind MIMO applications. Then I studied quantum inspired approaches and crafted both quantum and optimal solutions.
The conventional approach's contributions significant for my study are twofold. First, the Nelder Mead solver is used to estimate a source of error called the Carrier Frequency Offset (CFO). Second, Iris combines the decoding of ongoing transmissions and channel estimation of new transmissions into one combined Least Squares (LS) matrix computation. My current quantum inspired appraoch improves on the ladder. I use the methods simulated quantum annealing and parallel tempering as implemented in the paper Paramax. I improved bit error rate by ~95% at 7x8 MIMO size using these methods.
I will be continuing this research for my graduate school studies. A few of the things left to address are: improving the quantum solver, benchmarking the optimal solver, and moving from a simulation to over the air radio transmissions using GNU Radio and the Orbit lab nodes.
Gitlab Repository (Internal)
Objective
Downlink Multi-User Multiple-Input Multiple-Output (MU-MIMO) precoding enables massive network capacity benefits with minimal interference. However, conventional linear precoding fails when a user’s channel is poorly conditioned or when multiple users’ channels are highly correlated with each other. Vector Perturbation Precoding (VPP) is a non-linear technique that targets those scenarios, but the classically optimal method is too computationally heavy.
This project aims to leverage quantum-inspired computing to accelerate VPP, evaluating our quantum-inspired solver with real-time over-the-air (OTA) experiments on software-defined radio (SDR).
Background
MU-MIMO allows a BS to handle many individual concurrent streams, and downlink is when the BS is transmitting to the individual UEs. This creates interference that precoding is designed to mitigate.
However, if one of the UEs has a weaker link, the linear precoder sacrifices the transmission power towards the other UEs to accommodate for the weakest link.
VPP is shown to provide a massive increase in signal power per user at the receiver compared to the wasted power due to conventional linear precoding.
System Design and Architecture

Results
The power efficiency of VPP for 16-QAM 4x4 MIMO is more than double the power efficiency of conventional linear precoding. Our quantum-inspired solver approaches near-optimal VP accuracy.
Vector Perturbation (VP) provides a lower bit-error-rate (BER) than conventional precoding across all signal qualities, and our quantum-inspired approach maintains optimal VP accuracy.
Our quantum-inspired approach scales better with MIMO size than the classically optimal method. Up to 4x4 MIMO, the quantum-inspired approach is slower but is expected to outperform at 6x6 and higher.
Conclusions
Vector Perturbation Precoding (VPP) was empirically proven through real-time over-the-air experiments to be superior in both power efficiency and BER compared to conventional linear precoding.
Our quantum-inspired solver maintains near-equivalent accuracy to the classically optimal solver while scaling efficiently with increasing MIMO sizes.
Future Work
This week was an introduction to the team and projects, highlighting our next steps. The goal for next week is to read more literature, learn more about the background of both projects, and complete ORBIT tutorials to familiarize with the testbed environment.
VPP:
This week, I tested transmitting and receiving through the USRP X310 tutorials on sandbox 2 (wired) and on one of the grid's MIMO racks (OTA). I also conducted a literature review on a highly relevant paper about quantum annealing for MIMO downlink VPP to learn more about the end-to-end vector perturbation process.
Blind MIMO:
Week one was comprised primarily of literature review. I spent time reading and understanding the mathematical forms proposed in the Iris paper.
VPP:
This week I learned more about how VPP works, and I tried to get my advisor's UHD transmitter and GNU Radio receiver code working. I ended up running into FPGA and UHD version errors. Next week I'll make a flowgraph or block diagram to help with visualizing the VPP pipeline. The goal of the next few weeks is to get my advisor's code working and eventually convert the GNU Radio receiver to only UHD C++ API code.
Blind MIMO:
This week I completed breaking down the math used in the Iris system. I then began planning the structure of the simulator and went through some tutorials to get familiar with the Orbit nodes and GNU radio.
VPP: This week I added an Ansible workflow developed by one of my labmates, allowing for simpler and more consistent setup when starting my testbed reservation sessions. I was also able to get OTA packet detection working on the MIMO rack nodes for 2x2 MIMO. Next week I'll try to get synchronization working, convert channel estimation from GNU Radio to UHD, and make verifications in MATLAB.
Blind MIMO: This week I created a first draft of the simulator, attempting to be modular and plug in some compenents easily for when we move to testing over the air using GNU Radio.
VPP: This week I got 2x2 MIMO packet detection and synchronization working. Next week I'll try to completely replicate my advisor's GNU Radio receiver using only UHD C++ API (packet detection, synchronization, channel estimation, demodulation, and decoding). I also want to experiment with 4x4 MIMO and transmitting using multiple USRPs.
Blind MIMO: This week I spent implementing and debugging the Iris solver for the MATLAB simulator. Then, I produced initial benchmarks for the simulated Iris algorithms. I regularly cross referenced the metrics the original paper found to ensure my simulator was accurate.
VPP: This week I got the UHD uplink receiver fully working, matching my advisor's GNU Radio receiver. Next week I'll try to implement zero-forcing precoding to prepare for downlink transmission. I'm pivoting from doing a turnaround setup (UL sounding, DL precoding) to doing a shared storage setup for small-scale experiments (DL sounding, DL precoding). This allows for a much simpler implementation where I don't need to account for the hardware turnaround time latency of the USRP X310s, and I can use the same TX/RX and RX2 ports.
Blind MIMO: This week I began meeting with an optimization expert to discuss methods to replace the forms found in the Iris system. To have a meaningful discussion I had to research optimizers and form the objective function we need to solve for.
Our team did not present this week.
VPP: This week I realized that my UHD receiver had an equalization mismatch with my advisor's code: The GNU Radio receiver does maximum-likelihood (theoretically optimal) detection, but my UHD receiver only did linear ZF detection causing my bit-error-rates (BER) to be much higher than expected. I'm not able to get experimental results because the downlink receiver (demodulation and decoding after receiving precoded data) is not implemented yet. Next week I will have the complete downlink receiver and be able to measure the zero-forcing precoder's performance. I also plan on estimating channel coherence time through delaying the downlink transmission until BER rises significantly.
Blind MIMO:
This week I implemented and debugged the first iteration of the quantum inspired solver. I also began formulating an optimal solver to create a baseline for the best acheiveable performance.
VPP: This week I was able to get the zero-forcing precoder mostly working, and I started implementing brute-force (maximum likelihood or sphere encoding) vector perturbation and the modulo operation at the downlink receiver. There are still non-zero bit-error-rates (BER), so I am rigorously testing to see what is causing the symbol-errors; either unavoidable noise/channel effects or systematic code/logic errors. Previously, I transmitted from one MIMO rack to another. To simplify diagnosing bugs with my signal processing code, I switched to transmitting and receiving all on one MIMO rack to minimize the effect of bad channels. Next week, I hope to get to the bottom of this before continuing with my implementation of VPP and including the QUIO solver.
Blind MIMO: This week I spent pouring over code and restructuring the entire sim. After extensive testing I realized some limitations of the original design pipeline. This restructure seperated the solvers, receiver mixer, and packet detection all into their own files and stages. The metadata and per run metrics were all pushed into their own JSON files along with a directory restructure for easier path resolutions. This way runs could be called back on much easier and logic and reporting bugs were easier to seperate.
VPP: This week I finally solved the nonzero uncoded bit-error-rate problem: It was caused by the hardware cutting off the edge of the generated sample file, so the last symbol for all the UEs were taking the hit. I added noise-padding between bursts to mitigate this issue, and I have a fully working vector perturbation precoder (VPP) with the maximum-likelihood (ML) sphere encoder. The sphere encoder approach is an optimal brute-force method that is very fast with small problem sizes. My next step is to implement the quantum-inspired solver to solve the VPP problem.
Blind MIMO: I did not have a presentation this week This week I debugged any lingering logic and reporting issues that remained after the simulator restructure. I then began running full sweeps to see the performance of the quantum inspired solution. In parallel I have still been meeting with the optimization specialist and post-doc researcher to form a solution for the optimal solver benchmark.
VPP: This week I finished implementing my lab's quantum-inspired solver for the vector perturbation precoder (VPP). I ran many experiments to evaluate the solver's performance, such as its closeness to the optimal brute-force solution and its latency. The final week of this internship will be to gather all the data that I've collected to make plots and graphs for a high-quality open house presentation.
Blind MIMO: The final week of the internship phase of the project was spent gathering reports and metrics to produce a high quality presentation.
