Based on the above solution process, the analog precoding matrix
\({{\mathbf{F}}_{\mathrm{RF}}}\) can be obtained. In order to obtain the best digital precoding, BD technology is adopted. The MU-MIMO channel is divided into multiple SU-MIMO channels, which is the main idea of applying BD technology. If it can be guaranteed that the signal received by the
kth user is in the null space of channels of other users, then the inter-user interference will be eliminated. First of all, the transit matrix
\({{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k}}\) can be expressed as
$$\begin{aligned} {{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k}} = {{\mathbf{H}}_k}{{\mathbf{F}}_{\mathrm{RF}}},k \in \{ 1,2, \ldots ,K\} . \end{aligned}$$
(26)
In order to eliminate interference, the constraint can be expressed as
$$\begin{aligned} {{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,j}}{\mathbf{F}}_{\mathrm{BB}}^k = 0,\forall j \ne k. \end{aligned}$$
(27)
To get the digital precoder,
\({{{{\tilde{\mathbf{H }}}}}_k}\) can be defined as
$$\begin{aligned} {{{{\tilde{\mathbf{H }}}}}_k} = {\left[ {\begin{array}{*{20}{l}} {\begin{array}{*{20}{l}} {\begin{array}{*{20}{l}} {{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,1}^T,}&{ \cdots ,} \end{array}}&{{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k - 1}^T,}&{{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k + 1}^T,}&{ \cdots ,} \end{array}}&{{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,K}^T} \end{array}} \right] ^T}. \end{aligned}$$
(28)
Then, the digital precoding
\({\mathbf{F}}_{\mathrm{BB}}^k\) should fall in the null space of
\({{{{\tilde{\mathbf{H }}}}}_k}\). Therefore, SVD of
\({{{{\tilde{\mathbf{H }}}}}_k}\) can get
$$\begin{aligned} {{{{\tilde{\mathbf{H }}}}}_k} = {{{{\tilde{\mathbf{U }}}}}_k}{{{{\tilde{\varvec{\Sigma }}}}}_k}{\left[ {{{{\tilde{\mathbf{V }}}}}_k^{(1)},{{{\tilde{\mathbf{V }}}}}_k^{(0)}} \right] ^H}, \end{aligned}$$
(29)
where
\({{{{\tilde{\mathbf{U }}}}}_k}\) and
\({{{{\tilde{\varvec{\Sigma }}}}}_k}\) represent the left singular value vector of
\({{{{\tilde{\mathbf{H }}}}}_k}\) and the diagonal matrix of
\({{{{\tilde{\mathbf{H }}}}}_k}\), respectively.
\({{{\tilde{\mathbf{V }}}}}_k^{(1)} = {{{{\tilde{\mathbf{V }}}}}_k}(:,1:(K - 1){N_s})\) and
\({{{\tilde{\mathbf{V }}}}}_k^{(0)} = {{{{\tilde{\mathbf{V }}}}}_k}(:,(K - 1){N_s} + 1:end)\) represent the subspace orthogonal basis of
\({{{{\tilde{\mathbf{H }}}}}_k}\) and the null space orthogonal basis of
\({{{{\tilde{\mathbf{H }}}}}_k}\), respectively. Then we can know
$$\begin{aligned} {{{{{\tilde{\mathbf{H }}}}}}_k}{{{\tilde{\mathbf{V }}}}}_k^{(0)}&= {{{{{\tilde{\mathbf{U }}}}}}_k}{{{{{\tilde{\varvec{\Sigma }}} }}}_k}{\left[ {{{{\tilde{\mathbf{V }}}}}_k^{(1)},{{{\tilde{\mathbf{V }}}}}_k^{(0)}} \right] ^H}{{{\tilde{\mathbf{V }}}}}_k^{(0)}\\&= {{{{{\tilde{\mathbf{U }}}}}}_k}{{{{{\tilde{\varvec{\Sigma }}} }}}_k}{({{{\tilde{\mathbf{V }}}}}_k^{(1)})^H}{{{\tilde{\mathbf{V }}}}}_k^{(0)}\\&= 0.\end{aligned}$$
(30)
The channel becomes
\({{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k}}{{{\tilde{\mathbf{V }}}}}_k^{(0)}\) called an equivalent channel. SVD of the equivalent channel shows
$$\begin{aligned} {{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k}}{{{\tilde{\mathbf{V }}}}}_k^{(0)} = {{\mathbf{U}}_k}{{\mathbf{S}}_k}{\left[ {{\mathbf{V}}_k^{(1)},{\mathbf{V}}_k^{(0)}} \right] ^H}. \end{aligned}$$
(31)
where
\({{\mathbf{S}}_k}\) represents the diagonal matrix of equivalent channel (
\({{\mathbf{H}}_{{\mathop {\mathrm{int}}} ,k}}{{{\tilde{\mathbf{V }}}}}_k^{(0)}\)). To eliminate inter-user interference, taking the
\({\mathbf{V}}_k^{(1)}\) corresponding to the nonzero singular value matrix as the precoding matrix, and the final digital precoding matrix is given by
$$\begin{aligned} {\mathbf{F}}_{\mathrm{BB}}^k = {{{\tilde{\mathbf{V }}}}}_k^{(0)}{\mathbf{V}}_k^{(1)}. \end{aligned}$$
(32)
There are two types of BD algorithms: average power allocation and water-filling power allocation. Since the transmission capacity of each channel is usually different, the application of average power distribution results in the waste of communication resources and even the loss of communication capacity. The principle of the water-filling method is that after each user’s channel is divided into
N independent sub-channels, the channel of each user of the multi-channel system may be equal to the channel of each bandwidth
B. According to the Shannon formula, the subchannel capacity of the
kth user is:
$$\begin{aligned} C(k) = Blb\left( 1 + {\left| {{f_k}} \right| ^2}\frac{{{p_k}}}{{{n_0}}}\right) . \end{aligned}$$
(33)
where
\({{p_k}}\),
\(\left| {{f_k}} \right|\), and
\({{n_0}}\) are the transmission power, frequency response, and noise component of the
kth subchannel, respectively. Because when
N is large enough, the SNR of each channel can be regarded as a constant. In the case of known channel SNR, we can assign different power signals to each different channel to achieve the maximum sum rate. Therefore, the maximum sum capacity can be expressed as:
$$\begin{aligned} &{\mathrm{max}} C = \sum \limits _{k = 1}^N {Blb\left( 1 + {{\left| {{f_k}} \right| }^2}\frac{{{p_k}}}{{{n_0}}}\right) } \\ & s.t.\left\{ {\begin{array}{*{20}{l}} {\sum \limits _{k = 1}^N {{p_k} = {P_N}} }\\ {{p_k} \ge 0(n = 1,2, \ldots ,N)} \end{array},} \right.\end{aligned}$$
(34)
where
\({{P_N}}\) is the total power. According to the Lagrangian multiplier algorithm, the power
\({{p_k}}\) is:
$$\begin{aligned} {p_k} = \frac{B}{\lambda } - \frac{{{n_0}}}{{{f_k}}}, \end{aligned}$$
(35)
where
\(\lambda\) is the Lagrangian multiplier factor,
\(\frac{B}{\lambda }\) is called the water-filling line of the water-filling principle.