iterative soft decoding