4.13 COMPARISON OF CODES
Channel coding is an essential component of any modern communications system, allowing designers to reduce error probability for a fixed bandwidth or to reduce the required Eb/N0 for a fixed BER. As a consequence, channel coding techniques have steadily increased in their sophistication and performance since the 1950s. Figure 4-28 provides a brief history of the development of major channel coding techniques and their original proposer. Appendix G contains a list of significant channel coding references noting the source of each of the techniques in Figure 4-28.

The selection of a channel-coding scheme depends primarily on the nature of the expected channel impairments and the trade-off between performance improvement and encoder/decoder complexity. Because coding introduces redundancy, designers must balance the advantages of lower BER against the corresponding increase in bandwidth and processing overhead.
The following general guidelines are useful in selecting a suitable coding approach:
- Block codes are appropriate when the information is already naturally structured in discrete blocks. Convolutional codes are preferred for continuous or unstructured data streams.
- Because of their low overhead, block codes are well suited to short messages or low-capacity channels where additional redundancy would be undesirable. Convolutional codes are less suitable for short messages because the encoder must be flushed at the end of each message, introducing additional overhead.
- Block codes generally offer faster encoding and decoding, which is advantageous when processing time is limited.
- Block codes are simpler to implement, while convolutional codes usually provide better performance for a given BER. Large block codes, however, can approach the performance of convolutional codes.
- Convolutional codes tend to have a performance advantage for a given error rate, although the performance of larger block codes can be similar to convolutional codes.
- Interleaving should be employed whenever the channel exhibits burst-error characteristics.
- Where very low error rates are required, concatenated coding—typically combining an inner convolutional code with an outer Reed–Solomon code—offers an effective balance between performance and complexity, especially in channels with both random and burst errors.
- Although both block and convolutional codes perform well in thermally limited (AWGN) channels, their relative effectiveness may change in fading or scintillation-dominated environments.
- Soft-decision decoding provides roughly a 2 dB performance improvement over hard-decision decoding, but at the cost of greater implementation complexity. It is preferred whenever computational resources permit.
- ARQ schemes are appropriate when extremely low error rates are required, provided a feedback channel exists. Because ARQ introduces delay, such schemes are only suitable for applications tolerant of round-trip delays greater than 0.5 s (e.g., store-and-forward satellite messaging).
