A non-transitory computer-readable medium storing a computer program product comprising computer executable instructions, which, when executed on a computer, cause the computer to estimate transmit symbol vectors transmitted in an overloaded communication channel, which is characterized by a channel matrix of complex coefficients, by performing operations comprising:
- receiving, in a receiver, a signal represented by a received signal vector, the received signal vector corresponding to a superposition of signals representing transmitted symbols selected from at least one constellation of symbols and transmitted from one or more transmitters,
- defining a search space in a convex domain including at least the components of the received signal vector and of transmit symbol vectors for all symbols of the at least one constellation,
- defining a continuous first function, which is a function of the received signal vector and the channel characteristics, the first function having a global minimum where the product of an input vector from the search space and the channel matrix equals the received signal vector,
- defining a continuous second function in the search space, which is a function of input vectors from the search space, the second function having a significant low value for each of the transmit symbol vectors of the symbols of the at least one constellation,
- combining the first function and the second function into a third function by weighted adding,
- applying a fractional programming algorithm to the third function, targeted to finding an input vector that minimizes the third function,
- applying a mapping rule that translates the input vector that minimizes the third function into an estimated transmit symbol vector, in which every single component has a value from a list of possible values of corresponding components of transmit symbol vectors of the symbols of the at least one constellation, and
- outputting the estimated transmit symbol vector to a decoder for decoding into an estimated transmitted symbol from the at least one constellation.