• Stars
    star
    132
  • Rank 265,627 (Top 6 %)
  • Language
    MATLAB
  • Created about 10 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simulation code for “Optimal Multiuser Transmit Beamforming: A Difficult Problem with a Simple Solution Structure” by Emil Björnson, Mats Bengtsson, and Björn Ottersten, IEEE Signal Processing Magazine, vol. 31, no. 4, pp. 142-148, July 2014.

Optimal Multiuser Transmit Beamforming: A Difficult Problem with a Simple Solution Structure

This is a code package is related to the following “lecture note” article:

Emil Björnson, Mats Bengtsson, and Björn Ottersten, “Optimal Multiuser Transmit Beamforming: A Difficult Problem with a Simple Solution Structure,” IEEE Signal Processing Magazine, vol. 31, no. 4, pp. 142-148, July 2014.

The package contains a simulation environment, based on Matlab, that reproduces all the numerical results and figures in the article. We encourage you to also perform reproducible research!

Abstract of Article

Transmit beamforming is a versatile technique for signal transmission from an array of N antennas to one or multiple users [1]. In wireless communications, the goal is to increase the signal power at the intended user and reduce interference to non-intended users. A high signal power is achieved by transmitting the same data signal from all antennas, but with different amplitudes and phases, such that the signal components add coherently at the user. Low interference is accomplished by making the signal components add destructively at non-intended users. This corresponds mathematically to designing beamforming vectors (that describe the amplitudes and phases) to have large inner products with the vectors describing the intended channels and small inner products with non-intended user channels.

If there is line-of-sight (LoS) between the transmitter and receiver, beamforming can be seen as forming a signal beam towards the receiver; see Figure 1. Beamforming can also be applied in non-LoS scenarios, if the multipath channel is known, by making the multipath components add coherently or destructively.

Since transmit beamforming focuses the signal energy at certain places, less energy arrives to other places. This allows for so-called space-division multiple access (SDMA), where K spatially separated users are served simultaneously. One beamforming vector is assigned to each user and can be matched to its channel. Unfortunately, the finite number of transmit antennas only provides a limited amount of spatial directivity, which means that there are energy leakages between the users which act as interference.

While it is fairly easy to design a beamforming vector that maximizes the signal power at the intended user, it is difficult to strike a perfect balance between maximizing the signal power and minimizing the interference leakage. In fact, the optimization of multi-user transmit beamforming is generally a nondeterministic polynomial-time (NP) hard problem [2]. Nevertheless, this lecture shows that the optimal transmit beamforming has a simple structure with very intuitive properties and interpretations. This structure provides a theoretical foundation for practical low-complexity beamforming schemes.

Content of Code Package

The paper contains 2 simulation figures, Figure 3(a) and Figure 3(b). These are generated by the Matlab script simulationFigure3.m.

The package contains 7 additional Matlab functions: functionBRBalgorithm_cvx.m, functionFairnessProfile_cvx.m, functionFeasibilityProblem_cvx.m, functionHeuristicPowerAllocation.m, functionMRT.m, functionSLNRMAX.m, functionZFBF.m. These are called by the main script and originates from the Matlab code distributed with the following book:

Emil Björnson, Eduard Jorswieck, “Optimal Resource Allocation in Coordinated Multi-Cell Systems,” Foundations and Trends in Communications and Information Theory, vol. 9, no. 2-3, pp. 113-381, 2013.

The optimal beamforming is computed as a sequence of convex optimization problems, which are implemented and solved using the modeling language CVX. You need to install CVX and a suitable solver to run the code. Follow the instructions on the CVX homepage.

See each file for further documentation.

Acknowledgements

This work was supported by the International Postdoc Grant 2012-228 from the Swedish Research Council and by the European Research Council under the European Community’s Seventh Framework Programme (FP7/20072013)/ERC Grant 228044.

License and Referencing

This code package 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 listed above.

More Repositories

1

massivemimobook

Book PDF and simulation code for the monograph "Massive MIMO Networks: Spectral, Energy, and Hardware Efficiency" by Emil Björnson, Jakob Hoydis and Luca Sanguinetti, published in Foundations and Trends in Signal Processing, 2017.
MATLAB
323
star
2

IRS-relaying

Simulation code for “Intelligent Reflecting Surface vs. Decode-and-Forward: How Large Surfaces Are Needed to Beat Relaying?,” by Emil Björnson, Özgecan Özdogan, Erik G. Larsson, IEEE Wireless Communications Letters, vol. 9, no. 2, pp. 244-248, February 2020.
MATLAB
101
star
3

MIMO-channel-estimation

Simulation code for “A Framework for Training-Based Estimation in Arbitrarily Correlated Rician MIMO Channels with Rician Disturbance” by Emil Björnson and Björn Ottersten, IEEE Transactions on Signal Processing, vol. 58, no. 3, pp. 1807-1820, March 2010.
MATLAB
92
star
4

cell-free-book

Book PDF and simulation code for the monograph "Foundations of User-Centric Cell-Free Massive MIMO" by Özlem Tugfe Demir, Emil Björnson and Luca Sanguinetti, published in Foundations and Trends in Signal Processing, 2021.
MATLAB
86
star
5

deep-learning-channel-estimation

Simulation code for “Channel Estimation in Massive MIMO under Hardware Non-Linearities: Bayesian Methods versus Deep Learning,” by Özlem Tugfe Demir, Emil Björnson, IEEE Open Journal of the Communications Society, To appear.
Python
82
star
6

book-resource-allocation

Simulation code for the book “Optimal Resource Allocation in Coordinated Multi-Cell Systems” by Emil Björnson and Eduard Jorswieck, Foundations and Trends in Communications and Information Theory, vol. 9, no. 2-3, pp. 113-381, 2013
MATLAB
81
star
7

IRS-modeling

Simulation code for “Intelligent Reflecting Surfaces: Physics, Propagation, and Pathloss Modeling,” by Özgecan Özdogan, Emil Björnson, Erik G. Larsson, IEEE Wireless Communications Letters, To appear.
MATLAB
65
star
8

scalable-cell-free

Simulation code for “Scalable Cell-Free Massive MIMO Systems,” by Emil Björnson and Luca Sanguinetti, IEEE Transactions on Communications, to appear.
MATLAB
54
star
9

power-allocation-cell-free

Simulation code for “Learning-Based Downlink Power Allocation in Cell-Free Massive MIMO Systems,” by Mahmoud Zaher, Özlem Tuğfe Demir, Emil Björnson, Marina Petrova, IEEE Transactions on Wireless Communications, vol. 22, no. 1, pp. 174-188, Jan. 2023
Python
54
star
10

presentation_slides

This repository contains the slides to some of my YouTube presentations, as well as some slides and posters from conferences
53
star
11

RIS-fading

Simulation code for “Rayleigh Fading Modeling and Channel Hardening for Reconfigurable Intelligent Surfaces, IEEE Wireless Communications Letters, to appear.
MATLAB
49
star
12

multiple_antenna_communications

This repository contains the slides (in Powerpoint and PDF formats) for the course Multiple Antenna Communications, used 2021. Video recordings of all the slides (with voice over by Emil Björnson) can be found on YouTube.
49
star
13

mimobook

Simulation code and accompanying material for the textbook "Introduction to Multiple Antenna Communications and Reconfigurable Surfaces" by Emil Björnson and Özlem Tuğfe Demir, Boston-Delft: now publishers, 2024
MATLAB
46
star
14

massive-MIMO-small-cells

Simulation code for “Massive MIMO and Small Cells: Improving Energy Efficiency by Optimal Soft-Cell Coordination” by Emil Björnson, Marios Kountouris, Mérouane Debbah, Proceedings of International Conference on Telecommunications (ICT), Casablanca, Morocco, May 2013.
MATLAB
44
star
15

SP_Cup_2021

This repository contains the description of the IEEE Signal Processing Cup 2021. Everyone is welcome to join this cup!
MATLAB
42
star
16

SPM_RIS

Simulation code for “Reconfigurable Intelligent Surfaces: A Signal Processing Perspective With Wireless Applications” by Emil Björnson, Henk Wymeersch, Bho Matthiesen, Petar Popovski, Luca Sanguinetti, and Elisabeth de Carvalho, IEEE Signal Processing Magazine, March 2022.
MATLAB
42
star
17

competitive-cell-free

Simulation code for “Making Cell-Free Massive MIMO Competitive With MMSE Processing and Centralized Implementation,” by Emil Björnson and Luca Sanguinetti, IEEE Transactions on Wireless Communications, vol. 19, no. 1, pp. 77-90, January 2020
MATLAB
37
star
18

massive-mimo-book-chapter

Simulation code for the book chapter “Massive MIMO Communications” by Trinh van Chien and Emil Björnson, 5G Mobile Communications, Springer, 2017
MATLAB
36
star
19

tsks14_multiple_antenna_communications

This repository contains the slides (in Powerpoint and PDF formats) for the course TSKS14 Multiple Antenna Communications, used 2020. Video recordings of all the slides (with voice over by Emil Björnson) can be found on YouTube.
36
star
20

rician-massive-mimo

Simulation code for “Massive MIMO with Spatially Correlated Rician Fading Channels,” by Özgecan Özdogan, Emil Björnson, and Erik G. Larsson, IEEE Transactions on Communications, vol. 67, no. 5, pp. 3234-3250, May 2019
MATLAB
36
star
21

nearfield-primer

Simulation code for “A Primer on Near-Field Beamforming for Arrays and Reconfigurable Intelligent Surfaces,” by Emil Björnson, Özlem Tuğfe Demir, and Luca Sanguinetti, Asilomar Conference on Signals, Systems, and Computers, Virtual conference, October-November 2021.
MATLAB
33
star
22

RIS-myths

Simulation code for “Reconfigurable Intelligent Surfaces: Three Myths and Two Critical Questions,” by Emil Björnson, Özgecan Özdogan, Erik G. Larsson, IEEE Communications Magazine, vol. 58, no. 12, pp. 90-96, December 2020.
MATLAB
31
star
23

near-field-behavior

Simulation code for “Power Scaling Laws and Near-Field Behaviors of Massive MIMO and Intelligent Reflecting Surfaces” by Emil Björnson, Luca Sanguinetti, IEEE Open Journal of the Communications Society, 2020
MATLAB
31
star
24

wireless-powered-cell-free

Simulation code for “Joint Power Control and LSFD for Wireless-Powered Cell-Free Massive MIMO,” by Özlem Tuğfe Demir and Emil Björnson, IEEE Transactions on Wireless Communications, vol. 20, no. 3, pp. 1756-1769, March 2021.
MATLAB
31
star
25

team-MMSE

Simulation code for “Team MMSE Precoding with Applications to Cell-free Massive MIMO” by Lorenzo Miretti, Emil Björnson, David Gesbert, IEEE Transactions on Wireless Communications, vol. 21, no. 8, pp. 6242-6255, August 2022
Python
23
star
26

massive-MIMO-hardware-impairments

Simulation code for “Massive MIMO Systems with Non-Ideal Hardware: Energy Efficiency, Estimation, and Capacity Limits” by Emil Björnson, Jakob Hoydis, Marios Kountouris, Mérouane Debbah, IEEE Transactions on Information Theory, vol. 60, no. 11, pp. 7112-7139, November 2014.
MATLAB
23
star
27

rician-cell-free

Simulation code for “Performance of Cell-Free Massive MIMO with Rician Fading and Phase Shifts,” by Özgecan Özdogan, Emil Björnson, Jiayi Zhang, IEEE Transactions on Wireless Communications, vol. 18, no. 11, pp. 5299-5315, November 2019
MATLAB
22
star
28

large-scale-fading-decoding

Simulation code for “Large-Scale-Fading Decoding in Cellular Massive MIMO Systems with Spatially Correlated Channels,” by Trinh Van Chien, Christopher Mollén, and Emil Björnson, IEEE Transactions on Communications, vol. 67, no. 4, pp. 2746-2762, April 2019.
MATLAB
19
star
29

maximal-SE

Simulation code for “Massive MIMO for Maximal Spectral Efficiency: How Many Users and Pilots Should Be Allocated?” by Emil Björnson, Erik G. Larsson, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 15, no. 2, pp. 1293-1308, 2016.
MATLAB
19
star
30

mimoblog

Simulation code examples for the Massive MIMO blog
MATLAB
18
star
31

multiobjective

Simulation code for “Multi-Objective Signal Processing Optimization: The Way to Balance Conflicting Metrics in 5G Systems” by Emil Björnson, Eduard Jorswieck, Mérouane Debbah, and Björn Ottersten, IEEE Signal Processing Magazine, vol. 31, no. 6, pp. 14-23, November 2014.
MATLAB
17
star
32

Book-Chapter-on-ELAA

This repository contains the code for the book chapter "Near-Field Beamforming and Multiplexing Using Extremely Large Aperture Arrays"
MATLAB
16
star
33

RIS-massive-MIMO

Simulation code for “Is Channel Estimation Necessary to Select Phase-Shifts for RIS-Assisted Massive MIMO?,” by Özlem Tuğfe Demir and Emil Björnson, IEEE Transactions on Wireless Communications, vol. 21, no. 11, pp. 9537-9552, November 2022
MATLAB
16
star
34

unlimited-capacity

Simulation code for “Massive MIMO has Unlimited Capacity” by Emil Björnson, Jakob Hoydis, Luca Sanguinetti, IEEE Transactions on Wireless Communications, vol. 17, no. 1, pp. 574-590, Jan. 2018.
MATLAB
14
star
35

maximal-EE

Simulation code for “Deploying Dense Networks for Maximal Energy Efficiency: Small Cells Meet Massive MIMO” by Emil Björnson, Luca Sanguinetti, Marios Kountouris, IEEE Journal on Selected Areas in Communications, vol. 34, no. 4, pp. 832-847, April 2016
MATLAB
14
star
36

is-massive-MIMO-the-answer

Simulation code for “Optimal Design of Energy-Efficient Multi-User MIMO Systems: Is Massive MIMO the Answer?” by Emil Björnson, Luca Sanguinetti, Jakob Hoydis, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 14, no. 6, pp. 3059-3075, June 2015.
MATLAB
14
star
37

how-energy-efficient

Simulation code for “How Energy-Efficient Can a Wireless Communication System Become?” by Emil Björnson, Erik G. Larsson, Asilomar Conference on Signals, Systems, and Computers, Pacific Grove, CA, USA, 2018.
MATLAB
13
star
38

massive-MIMO-myths

Simulation code for “Massive MIMO: Ten Myths and One Critical Question” by Emil Björnson, Erik G. Larsson, Thomas L. Marzetta, IEEE Communications Magazine, vol. 54, no. 2, pp. 114-123, February 2016
MATLAB
13
star
39

grant-free

Simulation code for “Clustering-Based Activity Detection Algorithms for Grant-Free Random Access in Cell-Free Massive MIMO,” by U. K. Ganesan, E. Björnson and E. G. Larsson, IEEE Transactions on Communications, vol. 69, no. 11, pp. 7520-7530, November 2021
MATLAB
12
star
40

distortion-correlation

Simulation code for “Hardware Distortion Correlation Has Negligible Impact on UL Massive MIMO Spectral Efficiency” by Emil Björnson, Luca Sanguinetti, and Jakob Hoydis, IEEE Transactions on Communications, To appear
MATLAB
11
star
41

sub6-mmwave

Simulation code for “Massive MIMO in Sub-6 GHz and mmWave: Physical, Practical, and Use-Case Differences,” by Emil Björnson, Liesbet Van der Perre, Stefano Buzzi, Erik G. Larsson, IEEE Wireless Communications, vol. 26, no. 2, pp. 100-108, April 2019.
MATLAB
11
star
42

sucre-protocol

Simulation code for “A Random Access Protocol for Pilot Allocation in Crowded Massive MIMO Systems” by Emil Björnson, Elisabeth de Carvalho, Jesper H. Sørensen, Erik G. Larsson, and Petar Popovski, IEEE Transactions on Wireless Communications, vol. 16, no. 4, pp. 2220-2234, April 2017
MATLAB
11
star
43

capacity-limits-transceiver-impairments

Simulation code for "Capacity Limits and Multiplexing Gains of MIMO Channels with Transceiver Impairments" by Emil Björnson, Per Zetterberg, Mats Bengtsson, Björn Ottersten, IEEE Communications Letters, vol. 17, no. 1, pp. 91-94, January 2013.
MATLAB
10
star
44

precoding-polynomial-expansion

Minimum work examples for "Linear Precoding based on Polynomial Expansion"
MATLAB
10
star
45

dual-polarization

Simulation code for “Massive MIMO with Dual-Polarized Antennas,” by Özgecan Özdogan, Emil Björnson, IEEE Transactions on Wireless Communications, vol. 22, no. 2, pp. 1448-1463, February 2023.
MATLAB
9
star
46

one-or-multiple-streams

Simulation code for “Receive Combining vs. Multi-Stream Multiplexing in Downlink Systems with Multi-Antenna Users” by Emil Björnson, Marios Kountouris, Mats Bengtsson, Björn Ottersten, IEEE Transactions on Signal Processing, vol. 61, no. 13, pp. 3431-3446, July 2013.
MATLAB
9
star
47

radio-stripes

Simulation code for “MMSE-Optimal Sequential Processing for Cell-Free Massive MIMO With Radio Stripes,” by Zakir Hussain Shaik, Emil Björnson, Erik G. Larsson, IEEE Transactions on Communications, to appear.
MATLAB
8
star
48

multiantenna-UE

Simulation code for “Massive MIMO with Multi-Antenna Users: When are Additional User Antennas Beneficial?” by Xueru Li, Emil Björnson, Shidong Zhou, and Jing Wang, Published at ICT 2016.
MATLAB
7
star
49

new-look-at-relaying

Simulation code for “A New Look at Dual-Hop Relaying: Performance Limits with Hardware Impairments” by Emil Björnson, Michail Matthaiou, Mérouane Debbah, IEEE Transactions on Communications, vol. 61, no. 11, pp. 4512-4525, November 2013.
MATLAB
7
star
50

twoway-relaying-hardware-impairments

Simulation code for “Two-way Relaying under the Presence of Relay Transceiver Hardware Impairments” by Michail Matthaiou, Agisilaos Papadogiannis, Emil Björnson, Mérouane Debbah, IEEE Communications Letters, vol. 17, no. 6, pp. 1136-1139, June 2013.
MATLAB
6
star
51

backward-crosstalk

Simulation code for “Impact of Backward Crosstalk in 2x2 MIMO Transmitters on NMSE and Spectral Efficiency,” by Peter Händel, Özlem Tugfe Demir, Emil Björnson and Daniel Rönnow, IEEE Transactions on Communications, vol. 68, no. 7, pp. 4277-4292, July 2020.
MATLAB
5
star
52

hardware-scaling-laws

Simulation code for "Massive MIMO with Non-Ideal Arbitrary Arrays: Hardware Scaling Laws and Circuit-Aware Design" by Emil Björnson, Michail Matthaiou, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 14, no. 8, pp. 4353-4368, August 2015
MATLAB
5
star
53

fronthaul-quantization-precoding

1
star