Error-correction coding and interleaving

Một phần của tài liệu introduction to wireless local loop (Trang 109 - 113)

Information transmitted via a radio channel is liable to be corrupted.

Interference, fading, and random noise cause errors to be received, the level of which depend on the severity of the interference. The presence of errors can cause problems. For speech coders such as ADPCM, if the BER rises above 10−3(i.e., 1 bit in every 1,000 is in error, or the error rate is 0.1%), the speech quality becomes unacceptable. For near-perfect voice quality, error rates of the order of 10−6 are required. For data transfers, users expect much better error rates, for example, on com- puter files, and error rates higher than 10−9normally are unacceptable.

If the only source of error on the channel was random noise, it would be possible—and generally efficient—simply to ensure that the received signal power was sufficient to achieve the required error performance without any need for error correction. However, where fading is present, fades can be momentarily as deep as 40 dB. Increasing the received power by 40 dB to overcome such fades would be highly inefficient, resulting in significantly reduced range and increased interference to other cells.

Instead, error-correction coding accepts that bits will be received in error during fades but attempts to correct those errors using redundancy added to the signal.

Error correction is widely deployed in mobile radio, where fast fading is almost universally present. It is less critical in WLL, where the LOS path and resultant amelioration in the fast fading cause less severe prob- lems. Nevertheless, it is still necessary, especially for computer file transfer. Further, because many of the WLL technologies are based on cellular standards, they tend to come with the error correction used for cellular already inbuilt. Some WLL systems go so far as to use half-rate error-correction coding, that is, twice as much information as required is transmitted to introduce the required redundancy for the powerful error correction specified.

Error-correction systems work by adding redundancy to the trans- mitted signal. The receiver checks that the redundant information is as it would have expected; if it is not, the receiver can make error-correction decisions. An extremely simple error-correction scheme repeats the data three times. The first bit in each of the three repetitions is compared; if there is any difference, the value that is present in two of the three

96 Introduction to Wireless Local Loop

repetitions is assumed to be correct. The procedure is repeated for all bits. Such a system corrects one error in every three bits but triples the bandwidth required. Considerably more efficient schemes are available.

There are schemes that detect errors but do not correct them. In the simple example in the preceding paragraph, if the message is repeated only twice and the repetition of a given bit is not the same as the original transmission, it is clear that an error has occurred, but it is not possible to say which transmission is in error. In an error-detection scheme, the receiver requests that the block that was detected to be in error is retransmitted. Such a scheme is called anautomatic repeat request(ARQ).

ARQs have the advantage of often reducing the transmission require- ments (even accounting for the bandwidth needed for retransmission of errored blocks) but add a variable delay to the transmission while blocks are repeated. The variable delay is unsuitable for speech but typically acceptable on computer file transfer. Some of the more advanced coding systems can perform error correction and also detect if there are too many errors for it to be possible to correct them all and hence request retransmission.

Error-correction methodologies broadly fall into two types, block coding or convolutional coding. Both are highly involved and mathemati- cal, and the treatment here will no more than scratch the surface.

Interested readers are referred to [1]. Block coding works basically by putting the information to be transmitted in a matrix and multiplying that by another matrix, whose contents are fixed for the particular coding scheme and known to both the transmitter and the receiver. The result of the matrix multiplication forms the codeword. The codeword then is transmitted after the information, which is left unchanged. At the re- ceiver, the information is loaded into another identical matrix and mul- tiplied by the known matrix, and the results are compared with the received codeword. If there are differences, complex matrix operations (which are processor intensive) can be used to determine where the error lies and it can be corrected. If no solution can be found, more errors than can be corrected have occurred.

Depending on the type of matrix, codes fall into a number of families.

Two well-known families are the Bose-Chaudhuri-Hocquenghem (BCH) family and theReed-Solomon(RS) family. The coding power is represented by a shorthand, for example, BCH(63,45,3). That code takes a block

of 45 bits, adds 28 coding bits, and then transmits the 63-bit signal.

It can correct up to 3 errors in the received signal (an error rate of 3/63=4.7%), but it increases the datastream to be transmitted by 63/45=1.4, or 40%.

Convolutional coders are completely different. Figure 7.4 is a dia- gram of a highly simplified convolutional coder.

By combining the input and previously input bits in a variety of ways, predictable redundancy is added to the signal. For example, in Figure 7.4, where the plus sign represents an XOR operation, if the previous three bits had been 010 and then a new bit arrived, the three bits in the encoder would be either 101 or 001, depending on whether the new bit was a 1 or a 0, respectively, and the only possible outputs would be 01 for bits 1 and 2, respectively, or 11 (if 00 or 10 was received, there would have been an error). The decoder in the receiver can use that knowledge of the redundancy to correct errors. It does that by using an architecture known as a Viterbi decoder.2Such decoders are used widely in mobile radio, but they are complex to describe and beyond the scope of this text.

T T T

+

+

Input bits

Output bit 1

Output bit 2

Figure 7.4 Diagram of a convolutional encoder.

98 Introduction to Wireless Local Loop

2. The Viterbi decoder is named after Andrew Viterbi, one of the cofounders of Qualcomm, a WLL equipment manufacturer.

The references provide a full description. Put briefly, a Viterbi decoder computes what it would have received for all possible inputs (in the case of the example, a total of 8=23different inputs). It then compares the received signals with each of those possible inputs and scores each possible input depending on how close the input is to the received signal. When the next symbol arrives, it does the same thing. Also, for each of the inputs for the first bit the decoder calculates which possible inputs could be expected if either a 0 or a 1 was inserted as the next bit (as explained at the start of this paragraph). It then adds to the score of the first input the score of each of the two possible next symbols, building a path through the received data.

Because the original data is never transmitted, unlike block codes, convolutional codes cannot perform error detection. Therefore, they cannot deploy ARQ. However, compared to block codes, they both are more powerful and require less computing power. Often radio systems use both types of error-correction systems in a concatenated arrangement to get the best of both worlds.

All error-correction systems work best when the errors are randomly distributed and worst when the errors arrive in blocks. That can be readily seen with the BCH(63,45,3) example. Ideally, in each block of 63 bits, there would be three (or fewer errors). The system will not work if there are no errors in the first 3 blocks and then 12 errors in the next block.

Unfortunately, fading tends to result in errors occurring in blocks. The solution is to randomize the errors using a device known as an interleaver.

Interleavers are quite simple devices. A typical interleaver would place the input bits in a matrix, filling it from left to right and then moving down a row. When the matrix is full, the data is read out in columns and transmitted. At the receiver, the data fills up a matrix from top to bottom in columns and when full reads it out in rows from left to right, as shown diagrammatically in Figure 7.5.

A block of errors would affect one column, but only one error would appear on each row, thus reducing the impact of fades.

Interleavers have a key disadvantage in that they introduce delay while the matrix at the transmitter is filled and while the matrix at the receiver is filled. That delay is undesirable for speech. System designers need to balance the reduction in error rate (and hence improvement in speech quality) with the undesirable effect of the delay.

Một phần của tài liệu introduction to wireless local loop (Trang 109 - 113)

Tải bản đầy đủ (PDF)

(324 trang)