A method for processing signals, especially a Maximum Likelihood, ML, demodulation of Quadrature Amplitude Modulation, QAM, signals, in a digital communications system having 4 transmit antennas and transmitting 4 symbols, the method comprising: a) using x 1, x 2, x 3, x 4 to denote symbols transmitted, on the 4 respective transmit antennas, and L to denote the number of symbols in the symbol alphabet, b) given a Multiple Input Multiple Output, MIMO, channel, and for any given x 3 and x 4 and a received signal y, finding the lowest-metric combination of x 1 and x 2 based on projections in a number of directions, c) going through every combination of x 3 and x 4, in total L 2 combinations, generating a list of L 2 candidate combinations of x 1, and x 2, one for each combination of x 3 and x 4, and hence generating a list of L 2 candidate combinations x 1, x 2, x 3, x 4, d) calculating and comparing metrics of the L 2 candidate combinations x 1, x 2, x 3, x 4, and e) providing a symbol combination with maximum likelihood; wherein finding the lowest-metric combination of x 1, and x 2, for any given x 3 and x 4, based on projections in a number of directions comprises: ▪ determining a triangular block matrix R = R 11 R 12 R 21 R 22 derived from a Cholesky factorization, and wherein the triangular block matrix R is defined by four matrices R 11, R 12, R 21 and R 22, ▪ defining a first column vector x 1 comprising the symbols x 1 and x 2, ▪ defining a second column vector x 2 comprising the given symbols x 3 and x 4, ▪ Calculating p 1 r, p 1 i, p 2 r, p 2 i as a real part of projections of the complex conjugate of the product of the matrix R 11 and the first column vector x 1 onto vectors, k 1r, k 1i, k 2r, k 2i as follows: - k 1 r = R 11 e 1 r / ‖ R 11 e 1 r ‖ k 1 i = R 11 e 1 i / ‖ R 11 e 1 i ‖ k 2 r = R 11 e 2 r / ‖ R 11 e 2 r ‖ k 2 i = R 11 e 2 i / ‖ R 11 e 2 i ‖, - e 1 r = 1 0, e 1 i = i 0, e 2 r = 0 1, e 2 i = 0 i, - p 1 r = Re ⁡ R 11 x 1 + k 1 r = Re ⁡ x 1 + R 11 + k 1 r, - p 1 i = Re ⁡ R 11 x 1 + k 1 i = Re ⁡ x 1 + R 11 + k 1 i, - p 2 r = Re ⁡ R 11 x 1 + k 2 r = Re ⁡ x 1 + R 11 + k 2 r, - p 2 i = Re ⁡ R 11 x 1 + k 2 i = Re ⁡ x 1 + R 11 + k 2 i, and ▪ calculating a metric v = R 12 x 2 − R 21 x ̃ 1 − R 22 x ̃ 2, where x̃ 1, x̃ 2 are unconstrained least-square estimates of the first column vector x 1 and the second column vectors x 2, ▪ For each vector, k 1r, k 1i, k 2r, k 2i, calculating the projection of the metric v onto that vector k 1r, k 1i, k 2r, k 2i, ▪ Obtaining a set of candidates for x 1 based on comparing the p 1 r, p 1 i, p 2 r, p 2 i with the projection of the metric v onto each vector k 1r, k 1i, k 2r, k 2i. a) using x 1, x 2, x 3, x 4 to denote symbols transmitted, on the 4 respective transmit antennas, and L to denote the number of symbols in the symbol alphabet, b) given a Multiple Input Multiple Output, MIMO, channel, and for any given x 3 and x 4 and a received signal y, finding the lowest-metric combination of x 1 and x 2 based on projections in a number of directions, c) going through every combination of x 3 and x 4, in total L 2 combinations, generating a list of L 2 candidate combinations of x 1, and x 2, one for each combination of x 3 and x 4, and hence generating a list of L 2 candidate combinations x 1, x 2, x 3, x 4, d) calculating and comparing metrics of the L 2 candidate combinations x 1, x 2, x 3, x 4, and e) providing a symbol combination with maximum likelihood; ▪ determining a triangular block matrix R = R 11 R 12 R 21 R 22 derived from a Cholesky factorization, and wherein the triangular block matrix R is defined by four matrices R 11, R 12, R 21 and R 22, ▪ defining a first column vector x 1 comprising the symbols x 1 and x 2, ▪ defining a second column vector x 2 comprising the given symbols x 3 and x 4, ▪ Calculating p 1 r, p 1 i, p 2 r, p 2 i as a real part of projections of the complex conjugate of the product of the matrix R 11 and the first column vector x 1 onto vectors, k 1r, k 1i, k 2r, k 2i as follows: - k 1 r = R 11 e 1 r / ‖ R 11 e 1 r ‖ k 1 i = R 11 e 1 i / ‖ R 11 e 1 i ‖ k 2 r = R 11 e 2 r / ‖ R 11 e 2 r ‖ k 2 i = R 11 e 2 i / ‖ R 11 e 2 i ‖, - e 1 r = 1 0, e 1 i = i 0, e 2 r = 0 1, e 2 i = 0 i, - p 1 r = Re ⁡ R 11 x 1 + k 1 r = Re ⁡ x 1 + R 11 + k 1 r, - p 1 i = Re ⁡ R 11 x 1 + k 1 i = Re ⁡ x 1 + R 11 + k 1 i, - p 2 r = Re ⁡ R 11 x 1 + k 2 r = Re ⁡ x 1 + R 11 + k 2 r, - p 2 i = Re ⁡ R 11 x 1 + k 2 i = Re ⁡ x 1 + R 11 + k 2 i, and - k 1 r = R 11 e 1 r / ‖ R 11 e 1 r ‖ k 1 i = R 11 e 1 i / ‖ R 11 e 1 i ‖ k 2 r = R 11 e 2 r / ‖ R 11 e 2 r ‖ k 2 i = R 11 e 2 i / ‖ R 11 e 2 i ‖, - e 1 r = 1 0, e 1 i = i 0, e 2 r = 0 1, e 2 i = 0 i, - p 1 r = Re ⁡ R 11 x 1 + k 1 r = Re ⁡ x 1 + R 11 + k 1 r, - p 1 i = Re ⁡ R 11 x 1 + k 1 i = Re ⁡ x 1 + R 11 + k 1 i, - p 2 r = Re ⁡ R 11 x 1 + k 2 r = Re ⁡ x 1 + R 11 + k 2 r, - p 2 i = Re ⁡ R 11 x 1 + k 2 i = Re ⁡ x 1 + R 11 + k 2 i, ▪ calculating a metric v = R 12 x 2 − R 21 x ̃ 1 − R 22 x ̃ 2, where x̃ 1, x̃ 2 are unconstrained least-square estimates of the first column vector x 1 and the second column vectors x 2, ▪ For each vector, k 1r, k 1i, k 2r, k 2i, calculating the projection of the metric v onto that vector k 1r, k 1i, k 2r, k 2i, ▪ Obtaining a set of candidates for x 1 based on comparing the p 1 r, p 1 i, p 2 r, p 2 i with the projection of the metric v onto each vector k 1r, k 1i, k 2r, k 2i.