• Keep receiver synchronised with sender.
• Create control symbols, in addition to regular data
symbols.
• E.g. start or end of frame, escape, ...
• Error detection or error corrections.
• Some codes are illegal so receiver can detect certain classes
of errors
• Minor errors can be corrected by having multiple adjacent
signals mapped to the same data symbol
• Encoding can be done one bit at a time or in multi-bit
blocks, e.g., 4 or 8 bits.
• Encoding can be very complex, e.g. wireless.