Error detection and Correction - CRC and FEC Coding
In all radio systems the air interface will add noise to the signal . This will produce a distortion in the received signal.
In the case of an analogue cellular system the human ear perform error correction of this received signal and noise. However in digital systems we do not have this luxury.
This noise will result in bit errors, that is what left the transmitter as a logic 1 could be interpreted as a logic 0 if the level of noise lowers the amplitude below the threshold for a logic 0. The same
could be the case for a transmitted logic 0 being interpreted as a logic 1.
All digital systems must have some method of overcoming these errors.
facebook page
Cyclic Redundancy Check (CRC)
Cyclic Redundancy Check (CRC) is used to detect if there are any uncorrected errors left after error correction.
Blocks of data are passed through a CRC generator , which will perform a mathematical division on the data producing a remainder or checksum. This is added to the block of data and
transmitted.
The same division is performed on the data block in the receiver. If a different checksum is produced the receiver will know that there is an error in the block of data (alternatively there is an error in the
received checksum). This knowledge can be used to calculate Block Error Ratio (BLER) used in the outer loop power control.
The longer the checksum, the greater is the accuracy of the process. In the example the checksum is twelve bits long. 24 bits of binary information represents 16 777 216 (224) different combinations. It
could be imagined that various combinations of errors on the data and the checksum would produce the same checksum. The longer the checksum the less likely it is for this to happen. LTE uses a 24
bit CRC for the user data channels.
Forward Error Correction (FEC)
The next part in the transmitter is Forward Error Correction (FEC). The function of this block is to help the receiver correct bit errors caused by the air interface.
One method for correcting these errors would be to send the information a number of times Provided this is more than twice, the receiver could select which message is most correct by a “best out of three” decision. The more times the data is transmitted the better is the error protection. However the
bandwidth is also increased proportionally What is required is a system that provides forward error correction with minimal increase in the bandwidth.
There are two basic types of FEC available, block or continuous codes.
Block Codes (Hamming Codes, BCH Codes, Reed-Solomon
Codes)
– Continuous Codes (Convolutional Codes, Turbo Codes)
+ Data is processed continuously through FEC generator
+ Resulting data stream has built-in redundancy that can be extracted to correct bit errors.
– LTE uses Turbo codes with rate 1/3 for DL-SCH transmissions.
– Convolutional coding used for BCH
Continuous codes, such as convolutional codes and turbo codes are continuously produced as the data is fed to the FEC. The result will contain redundant bits that help to correct errors.
LTE utilizes turbo coding for the user data, regardless of if a low latency and real time processing are required or not. This type of coding gives a much better error correction performance than
traditional methods, as for example convolutional coding. Some signaling, however, uses convolutional coding.
Convolutional coding
facebook page
The original data is fed to the FEC generator, which in this case produces twice as much data. A coder that produces this increase, that is, two bits out for one bit in is known as a 1/2 rate coder. One
that produces three bits of information for one input is known as a 1/3 rate coder. This output is not simply the input data repeated; it will be subjected to noise superimposed by the RF transmission
path.
In the receiver, a device known as a ‘Viterbi Decoder’ can be used to correct these errors and recover the original data. This device works by taking the actual level of the data and estimating whether this was a 1 or a 0 when it left the transmitter, rather than use thresholds for 1 and 0.