[ Pobierz całość w formacie PDF ]
.Shortening is particularly important in thisrespect, and there are two ways of doing so:Coding Overview251.Instead of the input symbol vector u consisting of the usual numberk of symbols, only the first (k − q) are selected, thereby reducingboth the code length and dimension by the quantity q.This gives anew rate of (k − q)/(n − q), but the minimum distance of the code isether the same or greater than the original.2.A number q of coordinates of each code word c are punctured (thetechnical term for deleted in this context) leading to a code rateof k/(n − q).In this case the minimum distance is likely to bereduced, making it less effective for error correction.Each of these methods leads to a new linear code, and the second methodis extensively used with convolutional codes in CDMA to achieve data ratematching with line capacity.The degree of puncturing is sometimes changedwithin a radio frame according to the importance of the section of data being protected, so that vital data gets a lower error rate than less important data.In principle there is a large number of possible punctured codes thatcan be derived from a given mother code so as to provide a given output rate, and a considerable amount of computer analysis is required to find one thatgives the maximum distance between code words, and hence the best errorcorrection.Puncturing is characterized by a deletion matrix that specifieswhich bits are dropped from the output stream.2.7 Concatenation CodesTEAMFLYIn order to increase the ability of a code to detect and correct errors, the distance between the code words needs to be increased.The easiest way to dothis is simply to increase the length, n, of the code, but this makes decoding much harder.A better way to achieve this objective is to combine two ormore codes to form a concatenation code.Concatenation codes belong toeither of two categories: serial or parallel.Serial concatenation codes are the more straightforward of the twotypes.They are generated by treating the output of one encoder as the inputfor the next of the two or more separate codes, so that the rate, R, of the concatenation code is the product of the rates, R1 and R2, of its components.Each component code of a parallel concatenation code independentlyencodes the original data, or a permutation thereof, so that two or moreseparate code words are produced, each containing the same information bitsbut having different redundancy bits.The output of the parallel concatena-tion code consists of a single copy of the information bits together with the Team-Fly®26QoS in Integrated 3G Networksredundancy bits for each of the component codes.The rate R is related to its component rates by1/R = 1/R1 + 1/R2 − 1Very long codes can be constructed by concatenation of several short codes,but the complexity of decoding is just that of sequentially decoding the short constituent codes rather than the tougher problem of a single long code forwhich the Viterbi algorithm would be impractical.A very important class of parallel-concatenated codes are the so-calledturbo codes [6].These use two convolutional codes in systematic form (oftentwo copies of the same code) to produce a long code that can be easilydecoded.These codes are also extremely efficient and allow a large reduction in SNR for a given quality as compared to an unencoded signal.They arewidely used in CDMA for high-speed data transmission where small datablocks are impractical.By combining two codes that are optimized for correcting differenttypes of errors, one can obtain the best of both worlds with regard to quality.For example, block codes tend to be good at correcting burst errors (suchas those resulting from a power surge or lightning strike) while convolutioncodes are better at handling isolated errors, so concatenating the two gives a code that is good at both.Straightforward block codes or convolution codes treat each inputsymbol as being of equal importance, but this is not always the case.A veryimportant group of exceptions are the instances when the input to theencoder is already the output of a source coder, such as voice or video com-pression.Most modern voice or video compressors produce output streamswhose symbols have specialized significance, some being of critical impor-tance while others are little more than filler.Dedicated concatenation codes can be constructed to match specific compression algorithms so that moreerror protection is provided to the symbols of critical importance than tothose of minor importance, thus enabling high-quality transmission to beachieved without the huge overhead associated with giving high error protec-tion to the entire data stream.In many instances the differing degrees of protection are produced by puncturing of the convolutional codes mentionedabove.Even with concatenation codes, burst errors can remain a problem.Another technique that is used to overcome this is the use of interleaving.Instead of transmitting the encoded blocks sequentially, they can be splitinto sections that are then interleaved so that sections of the first block areCoding Overview27not transmitted until after some sections of the later blocks [ Pobierz całość w formacie PDF ]