# A Minimum Mean-Square-Error (MMSE) Decoder for Quasi-Orthogonal Space-Time Block Code
## 2 Review of the Conventional Algorithm  
The received signal for the four antennas system is represented as  
\[\mathbf{r}(n)=\begin{bmatrix}r_{1}(n)\\ r_{2}^{*}(n)\\ r_{3}(n)\\ r_{4}^{*}(n)\end{bmatrix}=\mathbf{H}(n)\mathbf{x}(n)+\mathbf{w}(n), \tag{1}\]  
where \(n\) is a time index; \(\cdot\) means an \(j\)th antenna; \(\mathbf{x}(n)=\begin{bmatrix}x_{1}(n)&x_{2}(n)&x_{3}(n)&x_{4}(n)\end{bmatrix}^ {T}\) is the input signal; \(\mathbf{w}(n)=\begin{bmatrix}w_{1}(n)&w_{2}^{*}(n)&w_{3}(n)&w_{4}^{*}(n)\end{bmatrix} ^{T}\) represents the measurement noise with zero-mean additive complex white Gaussian noise; \(\mathbf{H}(n)\) represents the channel matrix. For convenience, the time index \(n\) is omitted in the following. The channel matrix of the system, which has four transmit antennas, is given by [3, 4]  
\[\mathbf{H}=\begin{bmatrix}h_{1}&h_{2}&h_{3}&h_{4}\\ h_{2}^{*}&-h_{1}^{*}&h_{4}^{*}&-h_{3}^{*}\\ h_{3}&h_{4}&h_{1}&h_{2}\\ h_{4}^{*}&-h_{3}^{*}&h_{2}^{*}&-h_{1}^{*},\end{bmatrix}, \tag{2}\]  
where \(h_{j}\) denotes the coefficient of the channel from the \(j\)th transmit antenna.  
When the channel matrix is orthogonal, the detection matrix, which is defined as \(\mathbf{D}\triangleq\mathbf{H}^{H}\mathbf{H}\), is a diagonal matrix. Thus, the signal is recovered using the linear decoding technique. However, this technique is not applied for the QO-STBC with the four transmission antennas, because the channel matrix is not orthogonal. In other words, the detection matrix has interference terms and it is presented as  
\[\mathbf{D}=\begin{bmatrix}\alpha&0&\beta&0\\ 0&\alpha&0&\beta\\ \beta&0&\alpha&0\\ 0&\beta&0&\alpha\end{bmatrix}, \tag{3}\]where \(\alpha\) is the channel gain, which is defined as \(\alpha=\sum_{i=1}^{4}|h_{i}|^{2}\), and \(\beta\) denotes an interference term, which is defined as  
\[\beta=h_{1}h_{3}^{*}+h_{2}h_{4}^{*}+h_{1}^{*}h_{3}+h_{2}^{*}h_{4}.\]  
In short, off-diagonal terms decrease the performance and lead to the complex decoding method. In this case, the decoding algorithms such as the ZF and MMSE are used [11]. The ZF decoder is given as  
\[\hat{\mathbf{x}}=\mathbf{D}^{-1}\mathbf{H}^{H}\mathbf{r}, \tag{4}\]  
and the MMSE decoder is obtained as  
\[\hat{\mathbf{x}}=\mathbf{K}^{-1}\mathbf{H}^{H}\mathbf{r}=(\mathbf{H}\mathbf{H }^{H}+\gamma^{-1}\mathbf{I})^{-1}\mathbf{H}^{H}\mathbf{r}, \tag{5}\]  
where \(\gamma\triangleq\sigma_{x}^{2}/\sigma_{w}^{2}\); \(\sigma_{x}^{2}\) is the input signal power; \(\sigma_{w}^{2}\) means the noise variance; \(\mathbf{I}\) denotes the identity matrix with appropriate dimension;  
\[\mathbf{K}=\begin{bmatrix}\kappa&0&\beta&0\\ 0&\kappa&0&\beta\\ \beta&0&\kappa&0\\ 0&\beta&0&\kappa\end{bmatrix}; \tag{6}\]  
\(\kappa=\alpha+\gamma^{-1}\). The MMSE decoder, (5), looks similar to the ZF decoder, (4). A difference between the ZF and MMSE is the present of \(\gamma\). Since \(\gamma>0\), the MMSE has a low BER and \(\mathbf{K}\) is always invertible. However, it is difficult to get \(\gamma\) in practical applications. To overcome this drawback, estimation of the noise variance will be proposed in the next section.