A competitive learning algorithm for separating binary sources