# A Novel Multi-User Codebook Design for 5G in 3D-MIMO Heterogeneous Networks
## 5 Improved 3D Codebook Design  
As shown in Figure 4, the base station configures the UPA arrays, where the number of horizontal antenna array elements is \(N_{h}\), the array element spacing is \(d_{h}\), the number of vertical antenna array elements is \(N_{v}\), and the array element spacing is \(d_{v}\).  
The horizontal codebook contains \(N_{h}\big{(}N_{h}=2^{B_{h}}\big{)}\) horizontal codewords, and the vertical codebook contains \(N_{v}\big{(}N_{h}=2^{B_{v}}\big{)}\) vertical codewords. As shown in Figure 5, the base station transmit antenna height is \(H_{\text{BS}}\), the mobile subscriber receive antenna height is \(H_{\text{US}}\), \(L_{\text{i}}\) is the distance between the \(i\)th horizontal antenna array element and the base station, i.e., \(L_{\text{i}}=id\), \(\text{i}=1,\ 2,\ \ldots\,\ N_{h}\), \(S_{m}\) is the horizontal distance from the base station antenna for the beam alignment position formed by the \(m\)th horizontal codeword.  
Figure 4: 3D-MIMO uniform planar array (UPA) antenna array configuration.  
The horizontal emission angle \(\theta_{m}\) of the beamforming the \(m\)th codeword is:  
\[\theta_{m}=\arctan\frac{\sqrt{\left(H_{\text{BS}}-H_{\text{US}}\right)^{2}+S^{2} _{m}}}{L_{\text{i}}} \tag{19}\]  
The base station antenna array phase difference is given by:  
\[\Delta\varphi_{m}=\frac{2\pi d_{\text{h}}\cos\theta_{m}}{\lambda} \tag{20}\]  
The \(m\)th horizontal codeword can be expressed as:  
\[\begin{array}{c}\left(c_{m}^{\left(h\right)}\right.=\frac{1}{N_{h}}\left[ 1\;\;e^{j\frac{2\pi d_{\text{h}}\cos\theta_{m}}{\lambda}}\;\ldots\;e^{j\frac{2 \pi(N_{h}-1)d_{\text{h}}\cos\theta_{m}}{\lambda}}\;\right]\\ m=0,\;1,\;\ldots\;,\;N_{h}-1\end{array} \tag{21}\]  
where \(\lambda\) is the signal wavelength and the phase of the first antenna element is assumed to the reference phase 0.  
Assuming that the horizontal distance of the beam alignment position formed by the \(n\)th vertical codeword from the base station antenna is \(S_{n}\) and the height of the first vertical antenna element is \(H_{l}\), the vertical downtilt angle of the beam formed by the \(n\)th codeword is:  
\[\beta_{n}=\arctan\biggl{(}\frac{H_{l}-H_{\text{US}}}{S_{n}}\biggr{)}\;l=1,2, \;\ldots\;,\;N_{v} \tag{22}\]  
The base station antenna array phase difference is given by:  
\[\Delta\varphi_{n}=\frac{2\pi d_{\text{v}}\cos\beta_{n}}{\lambda} \tag{23}\]  
Figure 5: Precoding scheme beam pattern.  
Then the \(n\)th vertical codeword can be expressed as:  
\[c_{n}^{(v)}=\frac{1}{N_{v}}\bigg{[}1\;\;\;e^{j\frac{2 ndv\cos fin}{ \lambda}}\dots\;e^{j\frac{2\pi(N_{v}-1)dy\cos fin}{\lambda}}\bigg{]} \tag{24}\] \[n=0,\;1,\;\dots\;,\;N_{v}-1\]  
Combining horizontal and vertical codebook design, the Kronecker product codebook for improved 3D-MIMO can be expressed as:  
\[c=c_{m}^{(h)}\bigotimes c_{n}^{(v)} \tag{25}\]  
Substituting the codebook \(c\) into the system model to guide beamforming can optimize the system performance.  
Since each array element has its own specific location in both horizontal and vertical directions, if the UPA array developed by the base station is regarded as a whole, the beam will be too divergent. In order to make the beam pointing more accurate, it is necessary to consider the position of the array element in the horizontal and vertical directions at the same time. Based on previous studies, this paper considers the influence of the adjustable range of the horizontal launch angle on beamforming accuracy. Using the phase of the antenna array element and the phase difference between the array elements, an improved horizontal and vertical codeword is proposed and used the Kronecker product to get the improved precoding codebook.