• No results found

Error Correction Approaches

2 Spectrum Warfare

2.10  Error Correction Approaches

As shown in Figure 2.28, errors can be corrected by rebroadcasting received signals back to the transmitter and checking bit for bit and then rebroadcasting if necessary. This requires a two-way link and adds latency to the system that varies with the momentary conditions (transmission distance, interference, jamming, and so forth). Errors can also be reduced by majority encoding in which redundant transmissions are compared and the version with the maximum number of agreements is output. Similar to this is sending multiple identical messages and eliminating erroneous data through powerful parity encoding. Both of these approaches add significant numbers of transmitted bits. The third approach shown in the figure is the use of error correction codes. Figure 2.28 Bit errors can be corrected by several techniques.

2.10.1 Error Detection and Correction Codes

If an error detection and correction (EDC) code is used, received errors can be corrected (up to a limit set by the power of the code). The more EDC bits that are added to the data, the higher percentage of bit errors can be corrected. Figure 2.29 demonstrates the operation of a simple hamming code encoder. If the first input bit is a one, the first 7-bit code is placed into a register. If a bit is a zero, all zeros are entered. When all bits are encoded, the register is summed and the sum is sent. Figure 2.30 shows the decoder. If a received bit is one, the corresponding 3-bit code is entered into a register; if it is a zero, all zeros are entered. If all of the bits are correctly received, the register adds to zeros. In this example there is an error in the fourth bit of the received code, so the register sums to 011. This indicates that the fourth bit must be changed.

Figure 2.29 Hamming code encoder.

Figure 2.30 Hamming code decoder.

There are two classes of EDC codes: convolutional codes and block codes. Convolutional codes correct errors bit by bit, while block codes correct whole bytes (of, for example, 8 bits). Block codes do not care if one bit in a byte is bad or if all of them are bad; they correct the whole byte. In general, if the errors are evenly spread, convolutional codes are better. However, if there is some mechanism that causes groups of errors, the block codes are more efficient.

An important application for block codes is for frequency-hopping communication. Whenever the signal is hopped to a frequency occupied by another signal (highly likely in a dense tactical environment), all of the bits transmitted during that hop will be erroneous.

The power of a convolutional code is stated as (n, k). This means that n bits must be sent to protect k information bits. The power of a block code is stated as (n/k) meaning that n code symbols (bytes) must be sent to protect k information symbols.

2.10.2 Example of a Block Code

The Reed-Solomon (RS) code is a widely used block code. Examples of its application are Link 16 (for military interconnectivity) and television broadcast from satellites. The RS code can correct a number of bad bytes in its block equal to half the number of extra bytes in the block (above the number of data bytes included).

The version used in both of the above applications is the (31/15) RS code. It sends 31 bytes in each block including 15 information carrying bytes and 16 extra bytes for error correction. This means that it can correct up to 8 bad bytes of the 31.

Consider the use of this code with a frequency-hopped signal. Because the code can correct only 8 bad bytes, the data is interleaved to transmit no more than 8 of 31 bytes in a single hop. Figure 2.31 shows a simplified interleaving scheme; actually, the placement of the bytes in a modern communication system will be pseudo random. The resulting bit error rate will be effectively reduced to zero unless the RFSNR is low enough to cause a significant number of cases in which errors occur in multiple transmitted data blocks (for example, hops) carrying data from the same 31-byte code block.

Figure 2.31 Interleaving places adjacent data into other parts of the signal stream to protect against systematic

Interference or jamming.

2.10.3 Error Correction Versus Bandwidth

In any forward error correction approach (majority encoding, redundant data, or EDC coding), the bit rate is increased. If majority encoding is used, the data rate will be at least tripled. If redundant data with strong parity is used, the rate could be increased by a factor of five or six. With the above described (31/15) RS code, the data rate increases by 207%.

Receiver sensitivity varies inversely with the receiver bandwidth. As discussed in detail in Chapter 5, the typical bandwidth required to receive a digital signal is 0.88 times the bit rate. Therefore, doubling the bit rate with the same data throughput rate will decrease the sensitivity by 3 dB. Referring to Figure 2.1, this will typically increase the bit error rate by three orders of magnitude. This demonstrates what people in the digital communication business have said: error correction measures will probably hurt you more than they help you except where you have a very low tolerance to bit errors or there is significant interference or jamming.