In communications engineering, channel coding (also known as channel coding ) is the process of protecting digital data against transmission errors during transmission over disturbed channels by adding redundancy .
A distinction is to be made between channel coding and source coding , which reduces redundancy, and line coding , which performs a spectral adaptation to the requirements of the transmission channel.
Channel coding adds redundancy to the data at the input of a transmission channel and decodes the data at its output. If the additional information only indicates an error and requires the data to be retransmitted, this is called backward error correction . If the redundancy information is sufficient to correct the error, it is a forward error correction . Efficient channel coding increases the signal-to-noise ratio while the bit error rate remains unchanged . Depending on the channel coding method , the code gain is several dB .
An essential property of a channel code is its (code) code rate , with the number of symbols at the input of the encoder (information symbols) and the number at the output (code symbols). Information symbols are therefore mapped onto code symbols. A small rate (large ) means a higher proportion of code symbols in the transmitted symbols, i.e. a lower data transmission rate . A channel code with a lower code rate can usually correct more errors than a comparable channel code with a high code rate - it is therefore possible to swap data transmission rate and error correction capability.
By skilfully chaining codes (e.g. in the case of turbo codes), the correction capability of the chained code created in this way can be much higher than that of the individual codes (component codes).
Puncturing is the deliberate deletion of individual code symbols so that the number of code symbols transmitted is reduced from to . This results in a higher rate for the punctured code . Puncturing allows the same encoder / decoder pair to be used for codes at different rates.
If one knows the types of errors that occur in a transmission channel, one can construct various codes which can correct the frequent types of errors well, and less frequent types of errors less well. The following figure shows an overview of frequently used code classes.
- Block codes
- Ungerboeck code (also known as trellis-coded modulation)
- Reed-Muller Code
- Hamming Code ( Perfect Code )
- Reed-Solomon code (e.g. used in certain RAID systems)
- Fire code
- BCH code
- Golay Code (Perfect Code)
- Low density parity check code
- Turbo code is a two-, three- or generally multi-dimensional concatenation of different channel codes with multiple repetitions (feedback). The multi-dimensional interlacing of simple basic channel codes, such as a Hamming code, usually allows better overall results to be achieved than with classic convolutional codes. Turbo codes are among those channel codes which come closest to the theoretical limit of the Shannon limit .
- Viterbi code
Line code example: Manchester coding
- Channel error dependent on source coding
- The definition of a coding method takes into account both the quality requirements of the signal to be transmitted and the properties of the channel. If, for example, a bit is corrupted on the transmission path in the case of a television signal that is transmitted uncompressed, then only one pixel of a (half) picture changes. If the same error occurs with a compressed MPEG -coded television signal, it corrupts a whole macroblock of a certain number of pixels (depending on the size of the macroblock: 16 × 16 up to 4 × 4 pixels) and the subsequent pictures; only when an independently coded frame (I-frame) comes again, the error is no longer present.
- Example of backward error correction
- Adding parity bits to a data word.
- Example backward / forward error correction
- ISBN code: If the check digit does not match , only a few ISBN codes can be considered as correct values.
- Example forward error correction
- Post code and city information : a misspelled city name can be corrected using the post code. Similarly Zahlendreher recognized in the zip code by matching with the place name.
- Example GSM
- The telephone limits the frequency range of the speech to approx. 4 kHz. Sampling at 8 kHz with a quantization of 8 bits per sample results in a data stream of 64 kbit / s. The GSM source coding reduces it to approx. 13 kbit / s. Redundancies are added to the data stream in order to limit the frequency of bit errors in radio transmission that is prone to interference. The channel coding increases the bit rate to 22.8 kbit / s.
- Error correction procedure
- Linear code
- Cyclic code
- Hash function
- Bit error rate
- Error concealment
- Energy dispersal and scrambler (telecommunications)
- John G. Proakis, Masoud Salehi: Communication Systems Engineering . 2nd Edition. Prentice Hall, 2002, ISBN 0-13-095007-6 .