Content deleted Content added
m wfy |
m Delete duplicate word using AWB |
||
Line 6:
# Channel coding ([[Error control encoding]])
The first is source encoding which attempts to compress the data from a source in order to transmit it more efficiently. We see this in practice every day on the Internet where the common "Zip" data compression is used to reduce the network load and make files smaller. The second is channel encoding. This technique adds extra data bits, commonly called parity bits, to make the tranmission of data more robust to disturbances present on the transmission channel. There are many application that the ordinary user is not aware of that use channel encoding. A typical music CD uses a powerful [[Reed-
== Source encoding ==▼
The aim of source encoding is to take the source data and make it smaller. FAX transmission which has been around for many years uses a simple run length code. The principle is to recognize that most documents are white space with brief interruptions for the black typing. So FAX compresses a document by adding a repeat count to the next transition. It may tell the receiver that 100 of the next pixels are white. Another common encoding technique is string compression. This is used for data files. The encoder has a dictionary of strings. It matches the incoming text to the strings in the dictionary and when found, it will send a single number to the receiver which is the index to the string. All known implementations of string compression are adaptive in nature and allow the encoder to create new strings and transmit them to the decoder so the two dictionaries remain the same.
==
The aim of channel encoding theory is to find codes which transmit quickly, contain many valid [[code word]]s and can correct or at least [[error detection|detect]] many errors. These aims are mutually exclusive however, so different codes are optimal for different applications. The needed properties of this code mainly depend on the probability of errors happening during transmission. In a typical CD, the impairment is mainly dust or scratches. Thus codes are used in an interleaved manner. The data is spread out over the disk. Although not a very good code, a simple repeat code can serve as an understandable example. Suppose we take a block of data bits (representing sound) and send it three times. At the receiver we will examine the three repetitions
▲The aim of channel encoding theory is to find codes which transmit quickly, contain many valid [[code word]]s and can correct or at least [[error detection|detect]] many errors. These aims are mutually exclusive however, so different codes are optimal for different applications. The needed properties of this code mainly depend on the probability of errors happening during transmission. In a typical CD, the impairment is mainly dust or scratches. Thus codes are used in an interleaved manner. The data is spread out over the disk. Although not a very good code, a simple repeat code can serve as an understandable example. Suppose we take a block of data bits (representing sound) and send it three times. At the receiver we will examine the three repetitions bit by bit and take a majority vote. The twist on this is that we don't merely send the bits in order. We interleave them. The block of data bits is first divided into 4 smaller blocks. Then we cycle through the block and send one bit from the first, then the second, etc. This is done three times to spread the data out over the surface of the disk. In the context of the simple repeat code, this may not appear effective. However, there are more powerful codes known which are very effective at correcting the "burst" error of a scratch or a dust spot when this interleaving technique is used.
Other codes are more appropriate for different applications. Deep space communications are limited by the [[thermal noise]] of the receiver which is more of a continuous nature than a bursty nature. Likewise, narrowband modems are limited by the noise present in the telephone network and is also modeled better as a continuous disturbance. Cell phones are troubled by rapid fading. The high frequencies used can cause rapid fading of the signal even if the receiver is moved a few inches. Again there are a class of channel codes that are designed to combat fading.
Line 25 ⟶ 23:
It analyzes the following three properties of a code -- mainly:
*
*
*
===
Linear block codes, have the property of [[linearity]], i.e the sum of any two codewords is also a code word; and they are applied to the source bits in blocks; hence the name linear block codes. There are block codes that are not linear, but it is difficult to prove that a code is a good one without this property.
Line 54 ⟶ 52:
Another item which is often overlooked is the number of neighbors a single codeword may have. Again, lets use pennies as an example. First we pack the pennies in a rectangular grid. Each penny will have 4 near neighbors (and 4 at the corners which are farther away). In a hexagon, each penny will have 6 near neighbors. When we increase the dimensions, the number of near neighbors increases very rapidly.
The result is
a neighbor (hence an error) grows as well. This is a fundamental limitation
of block codes, and indeed all codes. It may be harder to cause an error to
Line 60 ⟶ 58:
total error probability actually suffers.
===
Convolutional codes are used in voiceband modems (V.32, V.17, V.34) and in GSM mobile phones, as well as satellite and military communication devices.
Line 71 ⟶ 69:
The [[Viterbi algorithm]] is the optimum algorithm used to decode convolutional codes. There are simplifications to reduce the computational load. They rely on searching only the most likely paths. Although not optimum, they have generally found to give good results in the lower noise environments. Modern microprocessors are capable of implementing these reduced search algorithms at rate greater than 4000 codewords/s.
==
Another concern of coding theory is designing codes that help [[synchronization]]. A code may be designed so that a [[phase shift]] can be easily detected and corrected and that multiple signals can be sent on the same channel. There is an interesting class of codes we see every day on our cell phones. These are the Code Division Multiple Access (CDMA) codes. The details are beyond the scope of this discussion but briefly, each phone is assigned a codeword from a special class (algebraic field). When transmitting, the code word is used to scramble the bits representing the voice message. At the receiver, a descrambling process is done to decipher the message. The properties of this class of code words allow many users (with different codes) to use the same radio channel at the same time. The receiver, using the descrambling, will only "hear" other callers as low level "noise".
Another popular class of codes are the Automatic Repeat reQuest (ARQ) codes. In this general class, the transmitter adds the parity check bits to a longer message. The receiver checks the parity bits against the message and if there is not a match, it will ask the transmitter to retransmit the message. Almost all wide area networks [[WAN]]
==
*
*
[[Category:Error detection and correction]]
|