# Compressive Sensing-Based Sparsity Adaptive Channel Estimation for 5G Massive MIMO Systems
## 3 Sparse Adaptive Matching Pursuit Algorithm
### Sparse Multipath Channel Estimation  
Aiming at the joint sparseness presented by the massive MIMO channel, the transformed channel vector is defined as \(\mathbf{w}=[\mathbf{w}_{1}{}^{\text{T}},\,\mathbf{w}_{2}{}^{\text{T}}...,\,\mathbf{w}_{L}{}^ {\text{T}}]^{\text{T}}\), where \(\mathbf{w}_{i}=[h^{(1)}(i),\,h^{(2)}(i),...,\,h^{(M)}(i)]^{\text{T}}\), \(i=1,\,2,\,...,\,L\), the \(i\) sub-block for \(\mathbf{w}\). At this point, the non-zero elements in the converted channel vector will be concentrated [31]. Correspondingly, the received pilot signal is warped \(\mathbf{z}=[\mathbf{z}_{1}{}^{\text{T}},\,\mathbf{z}_{2}{}^{\text{T}},\,...,\,\mathbf{z}_{ \text{PT}}]^{\text{T}}\). Among them, \(\mathbf{z}_{i}=[y^{(1)}(i),\,y^{(2)}(i),\,...,\,y^{(M)}(i)\,\,]^{\text{T}}\), \(i=1,\,2,\,...,\,P\). Do the same for noise, \(\mathbf{n}=[\mathbf{n}_{1}{}^{\text{T}},\,\mathbf{n}_{2}{}^{\text{T}},\,...,\,\mathbf{n}_{p}{ }^{\text{T}}]^{\text{T}}\), where \(\mathbf{n}_{i}=[m^{(1)}(i),\,m^{(2)}(i),\,...,\,m^{(M)}(i)]^{\text{T}}\), \(i=1,\,2,\,...,\,P\). Considering all transmit antennas, the received signal can be expressed as:  
\[\mathbf{z}=\mathbf{B}\mathbf{w}+\mathbf{n} \tag{9}\]  
among them, \(\mathbf{B}=[\mathbf{B}_{1},\,\mathbf{B}_{2},\,...,\,\mathbf{B}_{L}]\); \(\mathbf{B}_{i}=[\text{a}^{(1)}(i),\,\text{a}^{(2)}(i),\,...,\,\text{a}^{(M)}(i)]\), \(i=1,\,2,\,...,\,L\) is the \(i\)th sub-block of matrix \(\mathbf{B}\), \(\text{a}^{(M)}(i)\) is the \(i\)th column of the matrix \(\mathbf{A}^{(M)}\). In the case of unknown channel sparsity, the compressed sensing is used to estimate \(\mathbf{w}\) in Equation (9), so multiply both sides of Equation (9) simultaneously by \(\mathbf{B}^{\text{H}}\), where \(\mathbf{B}^{\text{H}}\) is the conjugate transpose of the matrix \(\mathbf{B}\). \[ \begin{split}\mathbf{B}^{\text{H}}\mathbf{z}=\mathbf{B}^{\text{H}}(\mathbf{B}\mathbf{w }+\mathbf{n})=&\left(\mathbf{I}+\mathbf{B}^{\text{H}}\mathbf{B}-\mathbf{I}\right)\mathbf{w }+\mathbf{B}^{\text{H}}\mathbf{n}\\ =&\mathbf{w}+\left(\mathbf{B}^{\text{H}}\mathbf{B}-\mathbf{I}\right)\mathbf{w }+\mathbf{B}^{\text{H}}\mathbf{n}\end{split}  \tag{10}\]  
among them, \(\mathbf{I}\) denote \(M\!L\times M\!L\) unit matrix. Due to the matrix \(\mathbf{B}\), there is no strict orthogonality; therefore, \(\mathbf{B}^{\text{H}}\mathbf{B}-\mathbf{I}\) denote a nonzero matrix with a small elemental value. Consider the dispersion of energy caused by the non-orthogonality of the observed matrix \(\mathbf{n}^{\prime}=(\mathbf{B}^{\text{H}}\mathbf{B}-\mathbf{I})\mathbf{w}+\mathbf{B}^{\text{H}}\mathbf{n}\), Then, Equation (10) can be expressed as:  
\[\mathbf{B}^{\text{H}}\mathbf{z}=\mathbf{w}+\mathbf{n}^{\prime} \tag{11}\]During iteration, define an \(ML\times 1\) vector \(R\). \[\mathbf{R}=\mid\mathbf{B}^{\mathrm{H}}\mathbf{r}\mid \tag{12}\]  
among them, \(r\) denotes iterative residuals, its initial value is \(z,\mid\cdot\mid\) represents the absolute value of the elements in \(\mathbf{B}^{\mathrm{H}}\mathbf{r}\). Now, define the element in vector \(T\) as the sum of the squares of each set of \(M\) elements in the vector \(R\)  
\[ \begin{array}{l}T(j)=\sum_{(j-1)\times M+1}^{j\times M}\left|R(i)\right|^{2},\\ i=1,2,\ldots,ML;j=1,2,\ldots,L\end{array}  \tag{13}\]  
where \(R(i)\) is the \(i\)th element in vector \(R\), \(T(j)\) is the \(j\)th element in vector \(T\). Correct \(T\) Elements in descending order to get the vector \(T\)s. According to the analysis in Section 3.1 the upper limit of channel sparsity is \(K\). After the first iteration, the last \(L\)-\(K\) elements in \(T\)s are only generated by \(n^{\prime}\) in (11). So the energy of the next \(L\)-\(K\) elements is set as the threshold \(f\). The non-zero tap energy in the channel is greater than the threshold \(f\). So in \(T\)s, only elements above this threshold are likely to be included in the support set.