Abstract
Redundancy reduction as a form of neural coding has been since the early sixties a topic of large research interest. A number of strategies has been proposed, but the one which is attracting most attention recently assumes that this coding is carried out so that the output signals are mutually independent. In this work we go one step further and suggest an algorithm that separates also non-orthogonal signals (i.e., "dependent" signals). The resulting algorithm is very simple, as it is computationally economic and based on second order statistics that, as it is well know, is more robust to errors than higher order statistics, moreover, the permutation/scaling problem[10] is avoided. The framework is given with a biological background, as we avocate throughout the manuscript that the algorithm ?ts well the single neuron and redundancy reduction doctrine, but it can be used as well in other applications such as biomedical engineering and telecommunications.