A receiver comprising: receiver circuitry configured to receive multiple received signals (110, 112, 114) received by multiple receive antennas (322, 324, 326); and a symbol-processing circuitry, configured to perform a first quadrature phase shift keying, QPSK, search on a received signal vector, Y, that includes multiple vector elements corresponding to the multiple received signals, wherein the first QPSK search is performed within a first symbol constellation space comprising an initial origin in the constellation space and produces an identified QPSK vector identifying a quadrant in the constellation space proximate to the received signal vector; transform the received signal vector to a new origin within a reduced symbol constellation space comprising the constellation points located within the quadrant defined by the identified QPSK vector, resulting in a transformed, received signal vector, said transforming comprising, until the reduced symbol constellation space corresponds to a QPSK constellation, cancelling higher-order interference based on the identified QPSK vector and scaling the multiple elements within the received signal according to Y ̃ k = 1 2 Y ̃ k − 1 − x ^ k − 1 where is Ỹ k a scaled version of the received signal vector at search level k, and x̂ k is a QPSK vector at search level k; and perform a subsequent level-k QPSK search on the transformed, received signal vector according to x ^ k = arg min QPSK vectors x ‖ Y ̃ k − Hx ‖ 2 where H is a channel transfer matrix, and x is a transmit vector, wherein the subsequent QPSK search is performed within the reduced symbol constellation space defined by the identified vector, and wherein the subsequent QPSK search produces a next identified QPSK vector, wherein the receiver circuitry produces each element of the multiple vector elements to correspond to a signal (110, 112, 114) received by one of the multiple receive antennas (322, 324, 326) of a multiple-input multiple-output receive antenna array. receiver circuitry configured to receive multiple received signals (110, 112, 114) received by multiple receive antennas (322, 324, 326); and a symbol-processing circuitry, configured to perform a first quadrature phase shift keying, QPSK, search on a received signal vector, Y, that includes multiple vector elements corresponding to the multiple received signals, wherein the first QPSK search is performed within a first symbol constellation space comprising an initial origin in the constellation space and produces an identified QPSK vector identifying a quadrant in the constellation space proximate to the received signal vector; transform the received signal vector to a new origin within a reduced symbol constellation space comprising the constellation points located within the quadrant defined by the identified QPSK vector, resulting in a transformed, received signal vector, said transforming comprising, until the reduced symbol constellation space corresponds to a QPSK constellation, cancelling higher-order interference based on the identified QPSK vector and scaling the multiple elements within the received signal according to Y ̃ k = 1 2 Y ̃ k − 1 − x ^ k − 1 where is Ỹ k a scaled version of the received signal vector at search level k, and x̂ k is a QPSK vector at search level k; and perform a subsequent level-k QPSK search on the transformed, received signal vector according to x ^ k = arg min QPSK vectors x ‖ Y ̃ k − Hx ‖ 2 where H is a channel transfer matrix, and x is a transmit vector, wherein the subsequent QPSK search is performed within the reduced symbol constellation space defined by the identified vector, and wherein the subsequent QPSK search produces a next identified QPSK vector, wherein the receiver circuitry produces each element of the multiple vector elements to correspond to a signal (110, 112, 114) received by one of the multiple receive antennas (322, 324, 326) of a multiple-input multiple-output receive antenna array.