Optimization algorithms for hybrid precoding in mmWave MIMO systems: Version 1.1.0
Authors: Hiroyuki Kasai
Last page update: November 29, 2018
Latest version: 1.1.1 (see Release notes for more info)
Hybrid precoding(-beamforming) is the most promising approach to reduce high hardware costs and high power consumptions in large-scale millimeter wave (mmWave) MIMO systems. Hybrid precoding combines large-dimensional analog precoding (or beamforming) via phase shifters with lower-dimensional digital baseband precoding.
A maximization problem of spectral efficiency approximately boils down to a minimization problem of the Euclidean distance between the fully digital precoder and the hybrid precoder. This problem is further formulated as a matrix factorization problem of he fully digital precoder with a product of the digital baseband precoder matrix and the analog radio frequency (RF) precoder (or beamforming) matrix. The noteworthy point is that the phase shifters impose an additional element-wise unit modulus constraints on the analog RF precoder matrix.
This package provides the codes of the proposed optimization algorithms for hybrid precoding. This code includes existing state-of-the arts algorithms, too. Most of the codes of this package come from the super brilliant project.
The document can be found below;
Proposed
MO-AltMin
PE-AltMin
FPS-AltMin
OMP-based
./ - Top directory. ./README.md - This readme file. ./run_me_first.m - The scipt that you need to run first. ./demo.m - Demonstration script. ./comp_OFDM.m - Simulation script for OFDM. |proposed/ - Contains the files for the proposed algorithms. |benchmarks/ - Contains the files for the existing algorithms. |cvx/ - Folder for CVX project (Please downlod by yoursel!).
Run run_me_first
for path configurations.
%% First run the setup script
run_me_first;
Just execute demo
for the first demonstration of this package.
Execute channel_realization
in benchmarks/AltMinAlg/datasets/
folder to generate datasets such as `Ns=3.mat'. The script outputs the datasete file in there. You can load this generated dataset file in the script.
cvx
folder.If you have any problems or questions, please contact the author: Hiroyuki Kasai (email: hiroyuki dot kasai at waseda dot jp)