Iterative Error Correction: Turbo, Low-Density Parity-Check and Repeat-Accumulate Codes