10.2 Block Codes

A code is called block code if all code words have the same length, i.e. consist of nc code symbols.
Besides that, we assume that all words coming from the message source have the same length and consist of m < nc message symbols. The difference between code word length nc and the number of message symbols m is the number of control symbols k of the block code
\( k=n_c-m \).     (10-5)
If a code word contains the complete message word it is called systematically. Most of the time these codes are shown with a first part only consisting of message symbols and a second part with control symbols.
The code word or the code vector C consists of nc code symbols, containing m message symbols and k control symbols.
The figure starts with an underlined capital letter C and the equals sign followed by a series of attached blocks, labeled x1, x2, x3 until xm as m communication symbols directly followed by blocks indicated z1, z2 to zk as k control symbols. All together are nc code symbols.
Figure 10-6: Construction of a systematic block code.

The redundant control symbols zi are calculated in the encoder with a defined algorithm fed with source symbols xi, so that at the transmission channel the code word ct to be transmitted is given as a combination of xi and zi. On the transmission channel single symbols may be falsified so that the receiver receives a code word which is not identical with ct. In the receiver the same algorithm as in the transmitter calculates a new code word from the received message symbols xi'.

For error detection the buffered received control symbols zi' are compared with the control symbols calculated at the receiver \( \tilde{z}'_i \). If the control symbols match pairwise we can assume that the received code word is error free and the message can be given to the sink. If an error is detected the receiver asks the transmitter for retransmission (Figure 10-7).

This figure shows a block diagram starting with a source from which an arrow goes to the encoder and from there an arrow goes to the channel. Thereafter several components are grouped in a dotted block, the decoder. It consists of memory connected from the cannel with an arrow, and in parallel, also connected from the channel with an arrow encoder, comparator, which also gets input from the memory. The comparator feeds the fault identification, which adds its result to the arrow from the memory. The signal from the decoder goes to the sink. But from the comparator there is also a feedback channel to the encoder, if a repeat request is sent.

Figure 10-7: Block diagram of the communication system with error detection.

A system which can correct errors takes the result of the comparison to calculate which symbols of the code word are falsified with the highest probability. These symbols are corrected before the message is given to the sink.

If at minimum those error patterns with one error should be corrected, then there are nc patterns with only one error, i.e.
     nc ≤ 2k – 1     or     m ≤ 2kk – 1     with nc = m + k.
   
If a code should be able to correct t errors per code word it needs to be able to correct \( \sum_{i=1}^t \binom {n_c} {i} \)different error patterns,
i.e. the so called Hamming limit \( \sum_{i=1}^t \binom {n_c} {i} \leq2^k-1 \) holds.     (10-6)

Depending on the type of the errors caused during the transmission there are different bit error patterns. If only a single bit is falsified, we call it bit error. A burst error is defined by a block of length l bit in which at least the first and the last bit are falsified. For a block code the input data are separated in blocks of length m and after each block k control bits are added. The overall block length then is n = m + k bit, the code is called a (n,m) code.

Block codes are suited for the correction of symbol errors, i.e. errors where a falsified symbol of length l is considered which contains up to l bit errors at random positions.

In general, nowadays binary codes are used, i.e. codes which only contain the symbols 0 and 1. To handle binary codes mathematically correct we need to be aware that all operations have to be calculated modulo 2, so that e.g. 1+1 = 2 (decimal) = 0 mod 2. You need to keep that in mind in the following calculations. Further in the binary world m message symbols result in 2m valid code words. For these we have 2nc valid received vectors as the code contains nc code symbols.

In Germany e.g. 4B3T coding is used for ISDN. For 4B3T coding 4 bits (binary values) are mapped to three ternary signal values, i.e. 16 character values on 27 signal values.The redundant signal groups are used to level out the DC component. Therefore, the DC components are summed up and depending on the sum one of two valid ternary codes is chosen. The transmitter stores this using a state model.
The 4B3T coding can also be used for other tasks, e.g. error detection. Telekom for ISDN and digital telecommunication uses MMS43 code (modified monitored sum; 43=4B3T). Besides leveling out the DC component also the sum of the ternary symbols is built and may not be higher than a given threshold. If the threshold is crossed this indicates an error. The state model has 4 states.
Advantages of this coding are reduction of the RF component and reduction of the symbol rate by 25%.

您已完成此程序教学的7%
7%