icassp2014_transceiver_impairments is the simulation environment for
R. Brandt, E. Björnson, and M. Bengtsson, "Weighted sum rate optimization for multicell MIMO systems with hardware-impaired transceivers", in Proc. IEEE Conf. Acoust., Speech, and Signal Process. (ICASSP’14), 2014, pp. 479-483.
It provides all the simulation code and scripts required to reproduce the figures from the paper.
Physical transceivers exhibit distortions from hardware impairments, of which traces remain even after compensation and calibration. Multicell MIMO coordinated beamforming methods that ignore these residual impairments may suffer from severely degraded performance. In this work, we consider a general model for the aggregate effect of the residual hardware impairments, and propose an iterative algorithm for finding locally optimal points to a weighted sum rate optimization problem. The importance of accounting for the residual hardware impairments is verified by numerical simulation, and a substantial gain over traditional time-division multiple access with impairments-aware resource allocation is observed.
- Matlab implementation of WMMSE algorithm for hardware-impaired transceivers
- Transmitter side optimization problem is solved with Yalmip and Gurobi (faster, if available) or Sedumi
- Using Yalmip optimizer for reduced overhead
- Make sure that Yalmip and Gurobi or Sedumi is installed. Note that Gurobi has free licenses available for researchers.
cd
into the base directory and runsetup_environment
from within Matlabtest_environment
and resolve any issuescd TxImpairments/batches
matlabpool X
whereX
is the number of cores available- Run any
_run
scripts to run the simulation, and the corresponding_plot_final
script to recreate the figure from the paper.
- convergence_batch_run
- Runs simulations for Figure 1
- convergence_batch_plot_final
- Recreates Figure 1, if simulation results are loaded in the workspace
- sumrateKappas_batch_run_parallel_1
- Runs first half of the simulations for Figure 2
- sumrateKappas_batch_run_parallel_2
- Runs second half of the simulations for Figure 2
- sumrateKappas_batch_run_merge_parallelized_files
- Merges the two halves into one file
- sumrateKappas_batch_plot_final
- Recreates Figure 2, if the merged simulation file is loaded in the workspace
- sumrateKappas_batch_plot_all
- Generates auxilliary plots, not part of the paper
- sumrateSNR_batch_run
- Runs simulations for Figure 3
- sumrateSNR_batch_plot_final
- Recreates Figure 13 if simulation results are loaded in the workspace
The reason for splitting up the Monte Carlo realizations for Figure 2 into two sets is that the code seems unstable when running with a large number of Monte Carlo simulations sequentially. Some form of thrashing seems to occur.
This work was supported by the FP7 project HIATUS (FET-Open grant #265578). E. Björnson is funded by the International Postdoc Grant 2012-228 from The Swedish Research Council and by ERC Starting Grant 305123 MORE. We would like to extend our gratitude to Assoc. Prof. Johan Löfberg at Linköping Univ. for the extensive help with shortening our Yalmip run times.
This source code is licensed under the GPLv2 license. If you in any way use this code for research that results in publications, please cite our original article. The following Bibtex entry can be used.
@inproceedings{Brandt2014,
author = {R. Brandt and E. Bj{\"o}rnson and M. Bengtsson},
title = {Weighted Sum Rate Optimization for Multicell {MIMO} Systems with Hardware-Impaired Transceivers},
booktitle = {Proc. IEEE Conf. Acoust., Speech, and Signal Process. (ICASSP'14)},
year = 2014,
pages = {479--483}
}