FIG. 1 is a block schematic diagram of a conventional data transmission system, using forward error correction (FEC).
In a communications channel using a systematic forward error correction coding scheme, the data to be communicated, the source data, is encoded using a forward error correction encoder. The encoder 10 computes parity bits, which are transmitted together with the source data. The consequence of combining the parity bits with the source data bits is that only a small fraction of all possible binary sequences (of the combined length) are used for transmission. The binary sequences that are used are referred to as the “codewords”.
One family of codes is Extended Hamming codes. In general terms, an Extended Hamming code can be summarised as a set of 2n−n−1 data bits (for some integer n) together with an n-bit parity code and a parity check bit.
In the encoder, there is assigned a unique n-bit code, the “position-id”, to each bit position in a sequence of up to 2n bit positions (where n is a positive integer). Having received the set of 2n−n−1 data bits, the FEC encoder then forms an n-bit “parity code” by the process of SUMMING the n-bit position-ids for all bit positions for which the source data bit is a logic 1. In this respect, and throughout this document, the term SUM, and the “+” symbol, when used in reference to combining two multi-bit binary codes, means bit-wise EXOR of the constituent bits.
Also, the value of the 1-bit “parity check” is determined by whether there is an odd, or even, number of logic 1's in the source data sequence. Typically, although not necessarily, the parity check bit is 1 if there is an odd number of 1's, and otherwise is 0.
The source data and parity bits are transmitted by the transmitter 12 over the communications medium 14. The waveform which subsequently arrives at the receiver 16 is the transmitted waveform, but with distortions and attenuation caused by the medium, and with the addition of noise.
For each received bit, the quantizer 16 determines whether the transmitted binary value is more likely to have been a “1” or a “0”.
The FEC decoder 18 performs Forward Error Correction decoding. This process may be summarised as i) identifying whether a received binary sequence is a codeword; and ii) for cases where the received binary sequence is not a codeword, because the distortions and noise introduced by the communications medium have caused one or more errors in the received binary sequence as compared with the transmitted codeword, finding the codeword which is most likely to have been transmitted.
The receiver 16 may use only hard decision (binary) quantization. That is, for each bit in the received waveform, the quantizer outputs one bit. Specifically, for each received bit, the quantizer determines whether the transmitted binary value is more likely to have been a “1” or a “0”, and outputs a bit having the corresponding value.
Alternatively, the receiver may use soft decision quantization, namely quantization into more than two levels.