A method for decoding a received signal Y corresponding to a data signal transmitted in a MIMO communication system through a channel represented by a channel matrix H, said data signal comprising a set of data symbols x transmitted in at least one layer, each layer carrying at least one data symbol belonging to a signal constellation, said method comprises, for one of said at least one layer, called a current layer n, a detection step that determines the maximum likelihood for at least one data symbol of said data signal, wherein said detection step comprises: - selecting one candidate value for the data symbol of the current layer n, - determining the Euclidian distance between the received signal Y and the data signal transmitted using said candidate value multiplied by said channel matrix H, weighted by the inverse of a noise covariance matrix C such as ‖ Y − ∑ i H i x i ‖ C − 1 2, expressed as: ∑ i ≠ n ‖ H i ‖ C − 1 2 x i 2 − 2 R H i H C − 1 Y − 0.5 ∑ j ≠ i, n H i H C − 1 H j x j x i * + ‖ H n ‖ C − 1 2 x n 2 − 2 R H n H C − 1 Y − ∑ j ≠ n H n H C − 1 H j x j x n * = ∑ α i R R x i 2 − 2 β i R R x i + α n R R x n 2 − 2 β n R R x n + ∑ i ≠ n α i I J x i 2 − 2 β i I J x i + α n I J x n 2 − 2 β n I J x n wherein: H k is a vector representing the channel associated to a layer k, with k ∈ { i, j, n}, i, j, n ∈ [0, N - 1], i, j, n being integers, possibly equal and N being the number of layers of said data signal; x k is the constellation symbol of the layer k; α k R = α k I = α k = ‖ H k ‖ 2 C − 1, β i ≠ n R = R H i H C − 1 Y − 0.5 ∑ j ≠ i, n R H i H C − 1 H j x j β i ≠ n I = J H i H C − 1 Y − 0.5 ∑ j ≠ i, n J H i H C − 1 H j x j, β n R = R H n H C − 1 Y − ∑ j ≠ n R H n H C − 1 H j x j, β n I = J H n H C − 1 Y − ∑ j ≠ n J H n H C − 1 H j x j, wherein the terms depending on α k are computed by subtracting from each of them a predetermined constant depending on the size of the constellation of the layer k, called a constellation dependent constant, wherein said constellation dependent constant is equal to 1 + max R x 2 / 2, where max ( x) corresponds to the maximum real part of the candidate values of said constellation of the layer k. - selecting one candidate value for the data symbol of the current layer n, - determining the Euclidian distance between the received signal Y and the data signal transmitted using said candidate value multiplied by said channel matrix H, weighted by the inverse of a noise covariance matrix C such as ‖ Y − ∑ i H i x i ‖ C − 1 2, expressed as: ∑ i ≠ n ‖ H i ‖ C − 1 2 x i 2 − 2 R H i H C − 1 Y − 0.5 ∑ j ≠ i, n H i H C − 1 H j x j x i * + ‖ H n ‖ C − 1 2 x n 2 − 2 R H n H C − 1 Y − ∑ j ≠ n H n H C − 1 H j x j x n * = ∑ α i R R x i 2 − 2 β i R R x i + α n R R x n 2 − 2 β n R R x n + ∑ i ≠ n α i I J x i 2 − 2 β i I J x i + α n I J x n 2 − 2 β n I J x n wherein: H k is a vector representing the channel associated to a layer k, with k ∈ { i, j, n}, i, j, n ∈ [0, N - 1], i, j, n being integers, possibly equal and N being the number of layers of said data signal; x k is the constellation symbol of the layer k; α k R = α k I = α k = ‖ H k ‖ 2 C − 1, β i ≠ n R = R H i H C − 1 Y − 0.5 ∑ j ≠ i, n R H i H C − 1 H j x j β i ≠ n I = J H i H C − 1 Y − 0.5 ∑ j ≠ i, n J H i H C − 1 H j x j, β n R = R H n H C − 1 Y − ∑ j ≠ n R H n H C − 1 H j x j, β n I = J H n H C − 1 Y − ∑ j ≠ n J H n H C − 1 H j x j, wherein the terms depending on α k are computed by subtracting from each of them a predetermined constant depending on the size of the constellation of the layer k, called a constellation dependent constant, wherein said constellation dependent constant is equal to 1 + max R x 2 / 2, where max ( x) corresponds to the maximum real part of the candidate values of said constellation of the layer k. H k is a vector representing the channel associated to a layer k, with k ∈ { i, j, n}, i, j, n ∈ [0, N - 1], i, j, n being integers, possibly equal and N being the number of layers of said data signal; x k is the constellation symbol of the layer k; α k R = α k I = α k = ‖ H k ‖ 2 C − 1, β i ≠ n R = R H i H C − 1 Y − 0.5 ∑ j ≠ i, n R H i H C − 1 H j x j β i ≠ n I = J H i H C − 1 Y − 0.5 ∑ j ≠ i, n J H i H C − 1 H j x j, β n R = R H n H C − 1 Y − ∑ j ≠ n R H n H C − 1 H j x j, β n I = J H n H C − 1 Y − ∑ j ≠ n J H n H C − 1 H j x j,