Introduction

Massive MIMO, one of the underlying technologies for the new generations of wireless communication systems, has been explored in recent years [1]. In this scheme for cellular communications, the base station (BS) is equipped with a large number of antennas and simultaneously serves multiple users. In such configurations high capacity, energy efficiency as well as high reliability can be achieved via simple signal processing techniques [2]. Additionally, when the number of antennas at the BS is very large, the uplink communication channels will be asymptotically orthogonal. Therefore, intra-cell/inter-cell interference can be largely eliminated utilizing simple linear signal processing methods such as zero-forcing (ZF) or minimum mean square error (MMSE) [3]. In this fashion although multiple users transmit signals in the same frequency band and at the same time slots, virtual point-to-point SIMO links are established in which each user has single antenna and the BS has multiple antennas. Moreover, because the capacity of the multiple antenna systems is proportional to the minimum number of transmit and receive antennas [4], using one antenna in the transmitter will lower the overall throughput of the system.
 One natural solution to improve the diversity gain of each user in uplink communications and increase the capacity of the system is using multiple antennas along with STBC at the transmitter (user) side [4]-[8]. It has been shown that by using a good space-time block code with full diversity and linear receiver, the intercellular interference problem can be solved to a high degree [4]. For a massive MIMO system with two antennas at the user terminal, in [4] the sufficient conditions to design a good STBC with linear receivers are studied. Furthermore its performance in terms of attainable throughput is investigated.
 It is worth mentioning that many benefits of various massive MIMO configurations come at the price of high computational complexity. For example linear STBC decoding methods such as ZF and MMSE algorithms require inverting a matrix with large dimensions when the number of users increases. Therefore, computationally efficient methods must be developed to cope with this challenge and make the hardware implementation feasible. In terms of computing the inverse of a large matrix, there are two common approaches to tackle the complexity issue: (1) calculating an estimate of the inverse matrix for example using Neumann series, and (2) finding the exact inverse of a matrix by updating the available information about that matrix and using matrix inversion identities [9]-[10].
In this manuscript we adapt the STBC scheme presented in [4] for a massive MIMO system. Therefore, in the above structure, we propose and evaluate two approaches.
It should be noted that using conventional methods to compute an inverse matrix, such as Cholesky Decomposition, imposes a high computational complexity on the system. So, we are looking for a way to recover data from received signals with low computational complexity and quasi-optimal performance. Therefore, first approach is calculating the inverse of a matrix by employing approximation methods [10]. This means that by accepting quasi-optimal performance, we can significantly reduce the computational complexity of the system. So, Neumann Series has been used to calculate the efficient and fast approximate inverse of a matrix [10]. In the same work, it has been demonstrated that, as long as the number of BS antennas is much larger than the number of users, block error rates (BLER) similar to the ones with an exact inverse can be achieved, while reducing one order of magnitude in terms of required computations.
Another approach is related to a dynamic massive MIMO system. By dynamic we mean that users are entering or exiting the system. In this situation, it is not necessary to recalculate the inverse of a matrix for linear decoding. For the selected coding design, based on the matrix inversion lemmas such as the inverse of a partitioned matrix and the Woodbury formula [11], we propose and evaluate low-complexity methods to speed up STBC ZF and MMSE decoders. Update equations are derived for the cases that a user is added to or removed from the system as well as the case that the channel estimate of a user has changed.
Algorithms are evaluated and compared in terms of BER performance and computational complexity. The proposed algorithms have fewer computations which naturally lead to reduction in the running time of a Software-Defined-Radio (SDR) program or complexity of implemented hardware for the receiver in the system. Not only can these algorithms be used in a slow fading environment by switching active users, but also could be used in fast fading channels with frequent changes to the user channel estimates.
The manuscript is organized as follows. The system model and the STBC scheme and corresponding decoder methods are described in Section II. In section III, the inverse matrix approximation algorithm is described. In Section IV, the fast matrix inversion equations are derived for each of the above mentioned scenarios. The computational complexity and BER performance of the suggested approaches is investigated in Section V and conclusions are drawn in Section VI.

System Model

Consider the uplink of a cellular multi-user massive MIMO system in which the BS is equipped with N antennas and serves M user (M <N) in such a way that each independent user has two antennas, as illustrated in Fig. 1. The channel is supposed to follow Rayleigh small fading and large scale path loss and shadowing model.
The channel gain between the j-th antenna of the m-th user and the n-th antenna of the BS is formulated as  \(\) where   is related to the large scale path loss and shadowing and