Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


FastConvergentCoordinatedPrecoding.jl is the simulation environment for

R. Brandt and M. Bengtsson, "Fast-Convergent Distributed Coordinated Precoding for TDD Multicell MIMO Systems", IEEE Int. Workshop Computational Advances in Multi-Sensor Adaptive Process. (CAMSAP'15), 2015, pp. 457-460.

It provides all the simulation code and scripts required to reproduce the figures from the paper.

Paper Abstract

Several distributed coordinated precoding methods relying on over-the-air (OTA) iterations in time-division duplex (TDD) networks have recently been proposed. Each OTA iteration incurs overhead, which reduces the time available for data transmission. In this work, we therefore propose an algorithm which reaches good sum rate performance within just a few number of OTA iterations, partially due to non-overhead-incurring local iterations at the receivers. We formulate a scalarized multi-objective optimization problem where a linear combination of the weighted sum rate and the multiplexing gain is maximized. Using a well-known heuristic for smoothing the optimization problem together with a linearization step, the distributed algorithm is derived. When numerically compared to the state-of-the-art in a scenario with 1 to 3 OTA iterations allowed, the algorithm shows significant sum rate gains at high signal-to-noise ratios.

Installation and Usage

  1. Install the Julia 0.3 runtime. This package is only verified to work on julia 0.3.
  2. Start the Julia REPL and clone the package by calling Pkg.clone("").
  3. From the terminal, run the corresponding batch scripts in the batch/camsap subdirectory. The SNR and rho simulations take a long time, and are thus split into 10 independent runs. After all runs have finished, the results have to be merged by calling the appropriate merge script.
  4. When the run has finished, the plots in the paper can be generated by calling the appropriate plot scripts.

The scripts in the root directory can be used for exploratory simulations.

Description of scripts in the batch/camsap subdirectory

  • rho
    • Performance vs. regularization parameter rho. Recreates Figure 1.
  • SNR
    • Performance vs. signal-to-noise ratio. Recreates Figure 2.
  • convergence
    • Average convergence as a function of number of OTA iterations. Not shown in paper.

Software Dependencies

CoordinatedPrecoding.jl is used as a supporting framework for the simulations. The rank-constrained rank minimization algorithms are implemented using Convex.jl and Mosek.jl. Note that the Mosek solver requires a license, which can be obtained for free for academic researchers.

License and referencing

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.

  Title                    = {Fast-Convergent Distributed Coordinated Precoding for {TDD} Multicell {MIMO} Systems},
  Author                   = {Rasmus Brandt and Mats Bengtsson},
  Booktitle                = {Proc. IEEE Int. Workshop Computational Advances in Multi-Sensor Adaptive Process.},
  Year                     = {2015},
  Pages                    = {457--460}


Julia simulation environment for "Fast-Convergent Distributed Coordinated Precoding for TDD Multicell MIMO Systems" (CAMSAP'15).







No releases published


No packages published