Encoding is applied in order to convert the data into a form that is compatible with the characteristics of communication medium, and can include processes such as adding error correction codes, interleaving, turbo encoding, bandwidth limiting, amplification and many other known encoding processes.