ffect of ECC is, thus, to reduce the BER by orders of magnitude, literally! The intriguing fact, however, is that there is no such a thing as "absolute" error correction, which would provide BER = 0 X 10° to all orders. The reality is that ECC may provide BER reduction to any arbitrary order, but there is a tax to pay for reaching this "absolute" by means of increasingly sophisticated ECC algorithms with increasingly longer overheads. How do ECC linear block codes work? The task is to find out an appropriate coding algorithm for the parity bits, making it possible, on EC decoding, to detect and correct errors in the received block, with adequate or target precision. Because such an algorithm begins with the input data, the approach is called forward error correction, or FEC. 1 The following description requires some familiarity with basic matrix-vector formalism. We focus now on how linear block codes are actually generated. Define first the input message/payload bits by the k-vector X = (x1...xk), and the block code (EC encoder output) by the n-vector Y = (y1 . . yn). The block-code bits yi are calculated from the linear combination: (11.1) where gim (1=1...k,m 1...n) are binary coefficients. This definition can be put into a vector-matrix product, Y = XG, or, explicitly, Y=(y)...yn)=(x1 (11.2) The matrix G is called the generator matrix. It is always possible to rewrite the generator matrix under the so-called systematic form: (11.3) where Ik is the kxk identity matrix (which leaves the k message bits unchanged) and P is an m X k matrix which determines the redundant parity bits. Thus the encoder output Y = XG = X[Ik|P] is a payload block of k bits followed by a parity block of m = n - k bits.2 This arrangement, where the payload bit-sequence is left unchanged by the EC encoder, is called a systematic code. 1 There exist possibilities for backward error correction (BEC), but the approach means some form of backward-and-forward communication between the two ends of the channel, at the high expense of channel use