1. A method of estimating an input in a MIMO communication system comprising: receiving a transmitted signal at a plurality of antennas, the signal containing the input, linearly transformed by a channel matrix; calculating, by a processor, a preliminary estimate of the channel matrix; generating, by a processor, a covariance matrix based on the preliminary estimate of the channel matrix; generating, by the processor, a unimodular transformation matrix by reducing diagonal elements of the covariance matrix {tilde over (C)}; obtaining, by the processor, an estimate of the input by applying the unimodular transformation matrix to the received signal; detecting a quadrature amplitude modulation (QAM) symbol using the estimate of the input; and outputting an output signal corresponding to the QAM symbol, wherein reducing diagonal elements of the covariance matrix comprises selecting an index pair (i,k) and updating a corresponding k th column and k th row of the covariance matrix according to λ i , k = - [ C ~ i , k C ~ i , i ] , wherein {tilde over (C)} i,k and {tilde over (C)} i,i are elements of the covariance matrix.