A method for processing user symbols with a Tomlinson Harashima precoder in a base statio, BS, of a multi-user multiple-input multiple-output, MU-MIMO, wireless system having K user terminals, UEs, which communicate with the base station via an uplink, UL, channel and a corresponding downlink, DL, channel, the base station having N antennas and Pt as available transmit power, the method comprising: estimating a DL channel matrix H k for each of the K UEs; determining a receiver processing matrix V k for each of the K UEs; computing, based on the DL channel matrix H k and the receiver processing matrix V k, an effective DL channel matrix H eff; performing a QR decomposition, QRD, of the effective DL channel matrix H eff, with column pivoting in which Q is a unitary matrix and R is an upper triangular matrix; computing Tomlinson Harashima precoder matrices using the unitary matrix Q and the upper triangular matrix R; calculating scalar weights for the UEs using the upper triangular matrix R; processing user symbols by the Tomlinson Harashima precoder having the Tomlinson Harashima precoder matrices to produce an output of filtered vector symbols for the UEs; directing the output of the Tomlinson Harashima precoder to the channel represented by the DL channel matrix through which communications occur in the wireless system with the user terminals; performing additional receiver processing on the transmitted signals at the UEs based on the receiver processing matrix V k for each of the K UEs; and using the scalar weights on the transmitted signals at the UEs; wherein the DL channel matrix H is H = H 1 H... H K H H, and wherein determining a receiver processing matrix V k for each of the K UEs comprises: determining by the BS an input covariance matrices Φ k for a corresponding UL channel H k H for the k th UE, for each of the K UEs, Φ k = E u k ⁢ u k H, where u = u 1 H ⁢ u 2 H... u K H H denotes a joint transmit vector for all UEs, and E[.] indicates time average of its argument; assuming that a total transmit power used by all UEs will not exceed the available transmit power P t at the BS for original downlink transmission, ∑ k = 1 K t ⁢ r ⁢ a ⁢ c ⁢ e Φ k ≤ P t; determining eigenvectors associated U k with each Φ k as Φ k = U k ⁢ Γ k ⁢ U k H; and setting a receiver processing matrix V k associated with the k th UE as V k = U k H. estimating a DL channel matrix H k for each of the K UEs; determining a receiver processing matrix V k for each of the K UEs; computing, based on the DL channel matrix H k and the receiver processing matrix V k, an effective DL channel matrix H eff; performing a QR decomposition, QRD, of the effective DL channel matrix H eff, with column pivoting in which Q is a unitary matrix and R is an upper triangular matrix; computing Tomlinson Harashima precoder matrices using the unitary matrix Q and the upper triangular matrix R; calculating scalar weights for the UEs using the upper triangular matrix R; processing user symbols by the Tomlinson Harashima precoder having the Tomlinson Harashima precoder matrices to produce an output of filtered vector symbols for the UEs; directing the output of the Tomlinson Harashima precoder to the channel represented by the DL channel matrix through which communications occur in the wireless system with the user terminals; performing additional receiver processing on the transmitted signals at the UEs based on the receiver processing matrix V k for each of the K UEs; and using the scalar weights on the transmitted signals at the UEs; wherein the DL channel matrix H is H = H 1 H... H K H H, and wherein determining a receiver processing matrix V k for each of the K UEs comprises: determining by the BS an input covariance matrices Φ k for a corresponding UL channel H k H for the k th UE, for each of the K UEs, Φ k = E u k ⁢ u k H, where u = u 1 H ⁢ u 2 H... u K H H denotes a joint transmit vector for all UEs, and E[.] indicates time average of its argument; assuming that a total transmit power used by all UEs will not exceed the available transmit power P t at the BS for original downlink transmission, ∑ k = 1 K t ⁢ r ⁢ a ⁢ c ⁢ e Φ k ≤ P t; determining eigenvectors associated U k with each Φ k as Φ k = U k ⁢ Γ k ⁢ U k H; and setting a receiver processing matrix V k associated with the k th UE as V k = U k H. determining by the BS an input covariance matrices Φ k for a corresponding UL channel H k H for the k th UE, for each of the K UEs, Φ k = E u k ⁢ u k H, where u = u 1 H ⁢ u 2 H... u K H H denotes a joint transmit vector for all UEs, and E[.] indicates time average of its argument; assuming that a total transmit power used by all UEs will not exceed the available transmit power P t at the BS for original downlink transmission, ∑ k = 1 K t ⁢ r ⁢ a ⁢ c ⁢ e Φ k ≤ P t; determining eigenvectors associated U k with each Φ k as Φ k = U k ⁢ Γ k ⁢ U k H; and setting a receiver processing matrix V k associated with the k th UE as V k = U k H.