What you can find here is a Matlab/Octave implementation of a feasibility test for interference alignment in MIMO interference channels with constants coefficients. It is a direct implementation of the floating point test proposed in the paper
Ó. González, C. Beltrán, I. Santamaría, "A Feasibility Test for Linear Interference Alignment in MIMO Channels with Constant Coefficients," IEEE Transactions on Information Theory, vol. 60, no. 3, pp. 1840-1856, Mar. 2014.
If you do not feel like downloading the code and want to see how it works in a simple scenario, you are invited to try our online demo. Note that our demo is executed in a backend server running Octave and, due to server limitations, it is constrained to a total number of 450 antennas and 100 streams. Besides, depending on the server workload these limits can sometimes be more restrictive. If you want to check the feasibility of larger systems you will need the code herein.
The code has been developed and copyrighted © 2014 by Óscar González. It is distributed under the terms of the BSD (3-Clause) License. In short, this means that everyone is free to use it, to modify it and to redistribute it on a free basis. It is not in the public domain; it is copyrighted and there are restrictions on its distribution (see LICENSE.txt).
We welcome contributions, bug reports and feedback. Let us know what you think! If you use the code for your research, please cite the paper:
@article{Gonzalez_Beltran_Santamaria_2014,
title={A Feasibility Test for Linear Interference Alignment in {MIMO} Channels with Constant Coefficients},
author={{\'O}scar Gonz{\'a}lez and Carlos Beltr{\'a}n and Ignacio Santamar{\'\i}a},
journal={IEEE Transactions on Information Theory},
volume = {60},
number = {3},
month = mar,
pages = {1840-1856},
year={2014},
url={http://dx.doi.org/10.1109/TIT.2014.2301440},
DOI={10.1109/TIT.2014.2301440}
}
This software contains the following Matlab/Octave files:
check_IA_feasibility.m
is an independent function implementing the aforementioned floating point feasibility test. It is the only function you will need if you want to execute the test from your own code.system_str2vec.m
is a convenience function that takes a text string representing an interference channel and converts it to a set of vectors which will serve as inputs ofcheck_IA_feasibility
.main.m
is a self-explanatory script which shows the use of bothcheck_IA_feasibility
andsystem_str2vec
by means of a simple example.