Blind separation of sources: A nonlinear neural algorithm