# Beam Training for Millimeter-Wave Communication Based on Tabu Table Enhanced Rosenbrock Algorithm
## 2 System Model  
We consider the system model with BF as shown in Figure 1. Device 1 (DEV1) has \(M_{t}\) transmit antennas, while device 2 (DEV2) employs \(M_{r}\) receiver antennas. At the transmitter, the signal is multiplied by the transmission weight vector \(w\), and is then emitted into wireless channels. Accordingly, the received signals at the receiver are multiplied by the received weight vector \(c\), then combined together, and finally down-converted for baseband processing [15; 16].  
Considering the high-power consumption and the complicated realizations of RF electrical elements, beam training vectors with phase shift and amplitude adjustment seems to be impractical for mm Wave compatible devices. Accordingly, adopting a phased antenna array with fixed amplitude is a feasible alternative for rapid processing. The beam codebook can be denoted by \(M\times N\) matrix \(\mathbf{W}\), which is specified by the number of elements \(M\) and the required number of beams \(N\). For a uniform linear array (ULA), the array response factor of the \(nth\) beam can be given by [17]  
\[A_{n}(\theta)=\sum_{m=0}^{M-1}w_{m,\;n}e^{\jmath 2\pi m(d/\lambda)\cos\theta} \tag{1}\]  
where \(w_{m,\;n}\) corresponds the antenna weight factor of the \(mth\) antenna element of the \(nth\) codebook; \(d\) is the antenna element spacing; and \(\lambda\) is the wavelength, generally set \(d=\lambda/2\). \(\theta\) denotes the normal direction of the antenna array relative to \(x\_axis\).  
Figure 1: System model for beamforming (BF).  
The channel impulse response (CIR) can be expressed as [18]  
\[h(t,\;\theta,\;\phi)=\alpha_{0,\;0}\delta(t-\tau_{0,\;0})\delta(\theta-\theta_{0, \;0})\delta(\phi-\phi_{0,\;0})+\sum_{l=1}^{L}\sum_{k=1}^{K_{l}}\alpha_{k,\;l} \delta\Big{(}t-\tau_{k,\;l}\Big{)}\delta\Big{(}\theta-\theta_{k,\;l}\Big{)} \delta\Big{(}\phi-\phi_{k,\;l}\Big{)} \tag{2}\]  
where \(L\) denotes the number of clusters; \(K_{l}\) denotes the number of sub-paths of the \(lth\) cluster; \(\alpha_{k,\;l}\) is the complex channel gain of the \(kth\) sub-path of the \(lth\) cluster; \(\tau_{k,\;l}\) is the time delay; and \(\theta_{k,\;l}\) and \(\phi_{k,\;l}\) are the angle of arrival (AoA) and the angle of departure (AoD), respectively [19].  
Accordingly, the SNR in the receiver can be written as:  
\[SNR=\frac{1}{\sigma_{n}^{2}}\sum_{l=1}^{L}\sum_{k=1}^{K_{l}}\int_{\phi_{k,\;l }-\Delta\phi}^{\phi_{k,\;l}+\Delta\phi}\Big{|}A_{p}\Big{(}\theta_{k,\;l}\Big{)} A_{q}(\phi)\Big{|}^{2}\Big{|}\alpha_{k,\;l}\Big{|}^{2}d\phi \tag{3}\]  
where \(A_{p}(\theta)\), \(A_{q}(\phi)\) represent the beam array factors of the receiver and transmitter, respectively. \(p\) and \(q\) are the beam numbers selected for the receiver and transmitter, respectively (i.e., \(n\) in the formula (1)). \(\sigma_{n}^{2}\) is the noise power. \(\Delta\phi\) denotes the effective spatial receiving range. Here, it is approximated that the array response factor \(A_{p}\Big{(}\theta_{k,\;l}\Big{)}\) at the receiver is constant for each path. After BF, the transmitted energy will be concentrated. In the case of a direct path between devices, the propagation energy of the indirect path can be neglected for simplified analysis. The receiving SNR can be expressed as  
\[SNR=\frac{1}{\sigma_{n}^{2}}\Bigg{(}|\alpha_{0}|^{2}\int_{\phi_{0}-\Delta\phi }^{\phi_{0}+\Delta\phi}\big{|}A_{p}(\theta_{0})A_{q}(\phi)\big{|}^{2}d\phi \Bigg{)} \tag{4}\]  
In this paper, the receiving SNR is used as the objective function, with the beam index number of the transceiver as 2-D variables [20]. BF aims to obtain the optimum beam-pair \(\Big{(}p_{opt},\;q_{opt}\Big{)}\) from the predefined codebook, to maximize the receiving SNR given by (4), i.e.,  
\[\Big{(}p_{opt},\;q_{opt}\Big{)}=\max_{(p,\;q)}SNR(p,\;q),\;\;\;\;\;(p,\;q)\in R ^{2} \tag{5}\]  
It is useful to regard the beam training as a global optimization problem in a 2-D plane, which is formed by the transceiver and receiver beam-pair, i.e., \((p,\;q)\). The objective function is the receiving SNR, which is expressed as \(snr(p,\;q)\).