ERROR CONTROL CODING METHODS
To accomplish error detection and correction at the receiver,
error control coding approaches entail the systematic insertion of redundant
bits to the transmitted information. As a result, the message's controlled
redundancy minimizes the likelihood of mistakes at the recipient.
• Check bits are the unnecessary bits that are appended to
the message. With the use of these bits, errors may be recognized and repaired.
• The data rate via the channel is reduced by the check bits.
• It is impossible to detect and repair every inaccuracy in a
message received. Errors may only be noticed and repaired up to a certain
point.
• When it comes to error control coding, there are two
primary approaches. They are namely:
1) Error correction that occurs in the future (FEC)
A hybrid system combining FEC and ARQ is sometimes employed.
Forward
Error Correction (FEC) Method
As illustrated in Figure 1, the Forward Error Correction (FEC) approach comprises a channel encoder at the transmitter and a channel decoder at the receiver. If the channel decoder identifies an issue, it uses error correction codes to correct it.
Figure 1: System Employing FEC
In a controlled manner, the channel encoder will add
unnecessary bits (check bits). As a result, the encoded data is generated at a
faster rate. The channel decoder uses the check bits to detect and repair
mistakes. The amount of check bits in the broadcast message determines the
receiver's capacity to identify and correct errors.
Advantages
of using FEC
• There is no
requirement for a feedback channel or a return path.
• The overall
delay is kept constant. As a result, the system is more efficient.
• In FEC
systems, the information throughput efficiency is constant.
Disadvantages
of using FEC
• Because certain
faults are uncorrectable, the total chance of errors is increased.
• Choosing an
effective error-correcting code and implementing its decoding algorithm might
be difficult when extremely high dependability is required.
• Only a
moderate amount of data is sent via the system.
Codes used
in FEC method
• There are several
error-correcting codes available. They are classified into two parts: 1) Block
Codes and 2) Convolutional Codes.
• The FEC
approach commonly employs cyclic codes, a subtype of linear block codes. BCH
codes, Hamming codes, Golay codes, and Reed Solomon codes are examples of
cyclic codes.
Error detection with retransmission or Automatic Repeat
Request(ARQ)
If the channel decoder discovers an error in this manner, it discards that portion of the data sequence and demands retransmission from the transmitter. Figure 2 is a block diagram of a basic ARQ system.
Figure 2: Block Diagram of basic ARQ System
For each message signal at its input, the channel encoder
generates codewords. Each codeword is momentarily held in the buffer before
being sent over the forward transmission channel. The channel decoder decodes
the codewords and checks for mistakes at the receiver.
• If there are no errors, the decoder transmits an
affirmative acknowledgment (ACK) via the return transmission channel.
• If a decoder detects an error, it sends a negative
acknowledgment (NAK). The transmitter next broadcasts the portion of the
codeword sequence where the fault was detected once again.
The decoder does not rectify the faults in this case. It just
identifies the mistakes and requests a resend from the transmitter. As a
result, this procedure is referred to as Automatic Repeat Request (ARQ).
Types of
ARQ System
ARQ is
divided into two categories. 1) Stop-and-wait ARQ 2) Continuous ARQ
1) Stop-and-wait ARQ
The transmitter transmits a codeword and then waits in this
technique. The decoder checks for errors in the received codeword. The receiver
sends an acknowledgment (ACK) signal along the return path if no error is
detected. The transmitter broadcasts the next codeword after receiving the
(ACK) signal.
The decoder sends a Negative Acknowledgement (NAK) to the transmitter if any error is discovered in the received codeword. The transmitter retransmits the same codeword after receiving the (NAK) signal. This approach is depicted in Figure 3.
Figure 3:
Automatic Repeat Request (ARQ) Procedures
2. Continuous ARQ
There are two types of continuous ARQ systems.
a) Go back–N ARQ Systems.
b) Selective repeat ARQ systems.
a) Go back-N ARQ System
The transmitter sends the message continuously without
waiting for an ACK signal from the receiver in this procedure. Assume the
decoder detects a mistake in the kth codeword. The transmitter receives
a NAK signal, indicating that the kth codeword is incorrect.
When the transmitter receives the NAK signal, it returns to
the kth code word and begins sending all subsequent codewords. This
process is depicted in Figure 3(b).
b)
Selective repeat ARQ
The
transmitter sends the messages one after the other without waiting for an ACK
in this technique. Assume the decoder notices a mistake in the kth
codeword. The transmitter receives a NAK signal, indicating that the kth
codeword is incorrect.
When the
transmitter receives a NAK signal, it just retransmits the kth
codeword. The transmission of messages is then resumed sequentially, beginning
where the sequence was broken. This process is depicted in Figure 3(c).
Advantages
of using ARQ
• This strategy
has a lower probability of error.
•
Stop-and-wait ARQ systems are straightforward. Because the round-trip latency
is so tiny, they are employed on terrestrial microwave lines.
• Return N
ARQ is beneficial in satellite communications with a long round trip delay.
• The main
benefit of ARQ over FEC is that error detection requires considerably simpler
decoding equipment and much less redundancy.
• ARQ is an
adaptive approach since information is only retransmitted when there are
errors.
Disadvantages
of using ARQ
• Because of
the huge overall latency, the ARQ system is sluggish, necessitating the
employment of expensive input and output buffers.
• The cost of
implementation is high.
Codes used
in the ARQ method
A code is
required just for error detection in the ARQ mechanism. Error detection is
well-suited to the Cyclic Redundancy Check (CRC) codes. Error detection is also
done with simple parity-check codes.