# On Analyzing Beamforming Implementation in O-RAN 5G
## 5 System Model and Simulation Results  
Let us assume the downlink MIMO channel between a base station with multiple transmit antenna M that serve \(K\) active independent single-antenna users, where the number of active users K is approximately equal to N (\(K\approx\) N) and the users are scheduled individually of their channel conditions. At the base station, we consider that we have a transmission sequence \([s_{1},s_{2},s_{3},\ldots,s_{k}]\) transmitted per each time slot, these sequences can be grouped based on the number of transmit antenna (e.g., if we have two transmit antenna the \(s_{1},s_{2}\) send by the first time slot and \(s_{3},s_{4}\) send by the second time slot, and so on). For a discrete-time model, a transmitted signal is denoted by the N \(\times\) 1 transmitted vector  
\[x=\sum_{k=1}^{K}w_{k}s_{k} \tag{2}\]  
where \(w_{k}\) is the transmit beamforming weight vector for user \(k\), and \(s_{k}\) is a transmitted symbol for user \(k\). The received signal vector obtained by user \(k\) is given by  
\[y_{k}=\mathrm{h}_{K}^{*}x+n_{k},\,k=1,2,3,\ldots,K \tag{3}\]  
where the \(1\times\) N channel vector for user \(k\) is \(h_{k}=[h_{1},h_{2},h_{3},\ldots,h_{k}]\), and \((. )^{*}\) denotes complex conjugate, and \(n_{k}\) is the vector of noise (additive white Gaussian noise with zero mean and variance \(\sigma^{\frac{2}{n}}\)). Channel vector \(h_{k}\) between the user and base station can be exported as  
\[h_{k}=\left[h_{k,1}d_{k,1}^{-\frac{n}{2}},h_{k,2}d_{k,2}^{-\frac{n}{2}},h_{k,3 }d_{k,3}^{-\frac{n}{2}},\ldots,h_{k,N}d_{k,N}^{-\frac{n}{2}}\right] \tag{4}\]  
where the \(d\) and \(\propto\) denotes the distance and path-loss between base station and user \(k\). Interchanging \((3)\) into \((2)\) obtained a received signal given as  
\[y_{k}=h_{k}\sum_{k=1}^{K}w_{k}s_{k}+n_{k},\,k=1,2,3,\ldots,K \tag{5}\]  
From the transmit power constraint for user \(k\), which is \(P_{k}=E|s_{k}|^{2}\), we can calculate the interference caused by other users through the received SINR of the \(k\)-th user  
\[\gamma_{ZF,k}=\frac{P_{k}\,\,|\mathrm{h}_{K}^{*}w_{k}|^{2}}{\sigma^{\frac{2}{ n}}+\sum_{k^{\prime}\
eq k}P_{k^{\prime}}\,\,|\mathrm{h}_{K}^{*}w_{k^{\prime}}| ^{2}}. \tag{6}\]  
The ZF-BF precoding is closely related to the concept of generalized inverses in linear algebra, where each beam generated by the ZF-BF precoder is orthogonal to all the other user channel vectors [36]. In the destination direction, we need to calculate the inverse of channel matrix \(\mathrm{H}=[h_{1},h_{2},h_{3},\ldots,h_{k}]\), and, for this scope, we applied the well-known Moore-Penrose inverse generalization to obtain \(\widetilde{H}=\left[\widetilde{h}_{1},\widetilde{h}_{2},\ldots,\widetilde{h} _{K}\right]^{*}\) and assumed that \(W=[w_{1},w_{2},w_{3},\ldots,w_{k}]\) denotes an N \(\times\) K matrix whose columns are transmit beamforming vectors; then, the ZF precoding vectors can be expressed as  
\[W=\widetilde{H}^{*}\Big{(}\widetilde{H}\widetilde{H}^{*}\Big{)}^{-1} \tag{7}\]  
The ZF precoding condition of generating \(W\) precoder for user \(k\) is orthogonal to all the other users' channel vectors \(h_{k}\) such that there is no interference from other users where \(\mathrm{h}_{K}^{*}w_{K}=0\perp k\ \
eq\ k^{\prime}\); the received SINR for the \(k\)-th user is determined as  
\[\gamma_{ZF,k}=\ \frac{P_{k}|\mathrm{h}_{K}^{*}w_{k}|^{2}}{\sigma^{\frac{2}{n}}} \tag{8}\]  
We can use the Matlab \((c)\) tool to simulate the SINR for \(k\)-th users by assuming a downlink mMIMO system with 16 transmit antennas and four active users; each user has one single antenna. This assumption is justified since the implementation of UE is determined by the requirement for low complexity, cost, and power consumption.