ed in Chapter 5. It is also a function of the size of the data block. Generally a data block is received erroneously if there is at least one un-corrected bit error in the block. If errors happen randomly, then BLER (P) is a function of BER (P) and the number of bits in a packet (N): Pg=1-(1-P.) An approximation can be done for very low BER levels to arrive at BLER as follows: PB ONP Clearly the larger the block size is, the higher the BLER becomes as BER rises. This is because there are more bits in a block and therefore the higher the probability that at least one of them may arrive in error. Figure 6.8 shows the BLER for blocks of 10, 100 and 1000 bits 1.0E- 00 1.0E-0 1.0E-02 1.0E-03 BLER (10) 1.0E-04 BLER (100) BLER (1000) 1.0E-05 SNR (dB) Figure 6.8 A typical BER and BLER Error Control Coding plotted against the signal to noise ratio (SNR). For a SNR of 8 dB nearly all blocks are in error and have to be discarded. In addition the block size can be in the order 10-20 000 bits in some standards. Clearly one needs to reduce BER as much as possible and reduce the ran- domness of the process of error occurrence. These can be accomplished through forward error correction codes. Error Correction Coding Most error correction coding techniques, also known as forward error correction (FEC) codes of interest to broadband telecommunications are based on modulo-2 binary arithmetic and gen- erator polynomial. Two classes of error correction codes exist, block codes and convolutional codes, and both classes can perform near capacity limits as derived from the Shannon theorem. Block codes work with fixed input block sizes, and are therefore suitable for fixed data block sizes. They can be generated through binary polynomial multiplication or matrix operation. Convolutional codes do not impose any limits on the input data block size and can also be gen- erated using binary polynomial multiplication. They are more commonly generated using shift registers and modulo-2 adders. Both classes of codes can be designed with a large 