1. A method for separating, on a communication channel, multiple complex communication signals originating from corresponding multiple communication sources, comprising: receiving, at a processing circuit, combined complex communication signals from multiple sensors, each of the multiple sensors receiving the multiple complex communication signals, wherein each of the received combined complex communication signals comprise the multiple complex communication signals mixed and with noise; using the processing circuit to: (a) provide each combined signal to an unmixing matrix; (b) calculate, using the unmixing matrix, a single estimated complex communication signal for each communication source, wherein calculating the estimated complex communication signal comprises calculating an estimated complex communication signal for every possible multiple complex communication signal and communication source pair, and combining all estimated complex communication signals for the communication source into a single estimated complex communication signal for the communication source; (c) transform the estimated complex communication signals into real numbers for use with a gradient-based training module; (d) use the real numbers and the gradient-based training module to calculate learning rule updates representing changes for the unmixing matrix; (e) provide the learning rule update to the unmixing matrix and update the unmixing matrix based on the learning rule update; (f) output the single estimated complex communication signal for each communication source; and (g) repeat steps a-f for a new period of time.