Interleaving is a method to reduce the effects of noise in a data stream to a level whereby the data can be corrected by error correction codes. It basically reorders the bits being transmitted using a matrix operation, and the result is that any errors caused by a noise burst will be distributed, or diluted, through the datastream to a point that error correction algorithms can succeed.