A Non-linear Information Maximisation Algorithm that Performs Blind Separation