You are on page 1of 9

Error control wireless communication

Error
In wireless communication, an error is a deviation from the original signal that is transmitted. Errors can
occur due to a variety of factors, including:

 Noise: Noise is any unwanted signal that can interfere with the transmitted signal. Noise can be
caused by natural sources, such as lightning, or by man-made sources, such as electronic
devices.
 Interference: Interference is a signal that is transmitted from another source and that overlaps
with the desired signal. Interference can be caused by other wireless devices, such as cell
phones or radios.
 Degradation: Degradation is a gradual loss of signal quality over time. Degradation can be
caused by factors such as distance, obstacles, and weather conditions.

Types of error

 Single Error: A single error refers to the occurrence of a single bit or symbol error within a data
transmission. It means that only one bit or symbol has been corrupted or received incorrectly.
Single errors can occur randomly or in burst form, depending on the characteristics of the
communication channel.
 Burst Errors: Burst errors involve the occurrence of multiple consecutive errors within a short
duration or a specific pattern. These errors can affect a group of bits or symbols together,
making it more challenging to correct them. Burst errors often result from fading, multipath
propagation, interference, or other channel impairments.
 Multiple Errors: Multiple errors refer to the simultaneous occurrence of more than one error
within a data transmission. This means that multiple bits or symbols have been corrupted or
received incorrectly at the same time. Multiple errors can occur due to severe channel
impairments, high interference levels, or transmission issues.

Error Control
Errors can have a significant impact on the performance of wireless communication systems. If the error
rate is too high, the data that is transmitted may be corrupted and unusable. Error control can be used
to detect and correct errors in wireless communication, such as:

 Error detection: Error detection techniques can identify whether an error has occurred. If an
error is detected, the data may be retransmitted.
 Error correction: Error correction techniques can correct errors that have occurred. Error
correction techniques are more complex than error detection techniques, but they can improve
the reliability of wireless communication systems.

Parity check
Parity check is a basic error detection technique used in data transmission
to identify errors. It involves adding an extra bit, known as the parity bit,
to the transmitted data. The parity bit is set to ensure a specific parity
(even or odd) based on the content of the data being transmitted.

30006
Page

1
Error control wireless communication

1. Even Parity: In even parity, the number of 1s in the data, including the parity bit, is made even.
For example, if the data being transmitted is "1101," which contains three 1s, the parity bit will
be set to "1" to make the total number of 1s even. So, the transmitted data will be "11011."

2. Odd Parity: In odd parity, the number of 1s in the data, including the parity bit, is made odd.
Using the same example as above, the parity bit will be set to "0" to make the total number of
1s odd. Thus, the transmitted data will be "11010."

At the receiver's end, the received data, including the parity bit, is checked for parity. The receiver
counts the number of 1s in the received data and compares it with the expected parity (even or odd). If
the number of 1s matches the expected parity, it indicates that no errors occurred during transmission.
However, if the number of 1s differs from the expected parity, it suggests that errors may have
occurred.

Cyclic Redundancy Check (CRC)

RC or Cyclic Redundancy Check is a method of detecting accidental changes/errors in the


communication channel.
CRC uses Generator Polynomial which is available on both sender and receiver side. An example
generator polynomial is of the form like x3 + x + 1. This generator polynomial represents key 1011.
Another example is x2 + 1 that represents key 101.

Working of CRC

1. Polynomial Selection: Choose a generator polynomial, represented as a binary number, based


on the desired error detection capability. For example, a commonly used generator polynomial
is 110101, which represents a CRC-6 code.
2. Polynomial Division: Treat the data bits as coefficients of a polynomial. Perform polynomial
division using the generator polynomial. This division is done modulo-2, meaning only binary
addition and subtraction are used. No carries or borrows are involved.
3. Checksum Calculation: The remainder obtained from the polynomial division is the CRC
checksum. It represents the extra bits appended to the transmitted data for error detection. The
length of the checksum depends on the generator polynomial chosen. For example, if the
generator polynomial is CRC-6, the checksum will be 6 bits long.
4. Transmission: Transmit the original data along with the CRC checksum to the receiver. The
receiver needs to be aware of the generator polynomial used for CRC calculation.
5. Checksum Verification: At the receiving end, perform the same polynomial division on the
received data, including the appended checksum, using the same generator polynomial. If the
remainder obtained is zero, it indicates that no errors are detected. If the remainder is non-zero,
it suggests that errors may have occurred during transmission.

30006
Page

2
Error control wireless communication

For example, let's say we want to transmit the 8-bit data sequence 11011011 using CRC-6. The
generator polynomial is 110101.

1. Polynomial Division: Divide the data by the generator polynomial using modulo-2 division. The
remainder obtained is 101, which represents the CRC checksum.
2. Transmission: Transmit the original data (11011011) along with the CRC checksum (101) to the
receiver.
3. Checksum Verification: At the receiver's end, perform the same polynomial division on the
received data (11011011101) using the generator polynomial. The remainder obtained should
be zero to indicate error-free transmission.

Block error correction codes (BEC)


Block error correction codes (BEC) are a type of error-correcting code that can be used to correct errors
in data blocks. BECs work by adding redundant bits to the data block. The redundant bits are used to
correct errors that have occurred.

There are a number of different types of BECs. The most common types of BECs include:

Hamming codes: Hamming codes are one of the simplest and most efficient types of BECs. They can
correct single-bit errors and detect two-bit errors.

It is developed by the R.W hamming

o There are there step involved in the sender side to encoding the code
o Step 1 − Calculation of the number of redundant bits.

If the message contains m𝑚number of data bits, r𝑟number of redundant bits are added to
it so that m𝑟 is able to indicate at least (m + r+ 1) different states. Here, (m + r) indicates
location of an error in each of (𝑚 + 𝑟) bit positions and one additional state indicates no
error. Since, r𝑟 bits can indicate 2r𝑟 states, 2r𝑟 must be at least equal to (m + r + 1). Thus
the following equation should hold 2r ≥ m+r+1

o Step 2 − Positioning the redundant bits.

The r redundant bits placed at bit positions of powers of 2, i.e. 1, 2, 4, 8, 16 etc. They are
referred in the rest of this text as r1 (at position 1), r2 (at position 2), r3 (at position
4), r4 (at position 8) and so on.

o Step 3 − Calculating the values of each redundant bit.

The redundant bits are parity bits. A parity bit is an extra bit that makes the number of 1s
either even or odd. The two types of parity are −

Even Parity − Here the total number of bits in the message is made even.

Odd Parity − Here the total number of bits in the message is made odd.

30006
Page

3
Error control wireless communication

o At the receiver side the code the decoded, the steps involved
o Step 1 − Calculation of the number of redundant bits

Using the same formula as in encoding, the number of redundant bits are ascertained.

2r ≥ m + r + 1 where m is the number of data bits and r is the number of redundant bits.

 Step 2 − Positioning the redundant bits

The r redundant bits placed at bit positions of powers of 2, i.e. 1, 2, 4, 8, 16 etc.

 Step 3 − Parity checking

Parity bits are calculated based upon the data bits and the redundant bits using the
same rule as during generation of c1,c2 ,c3 ,c4 etc. Thus

c1 = parity (1, 3, 5, 7, 9, 11 and so on)

c2 = parity (2, 3, 6, 7, 10, 11 and so on)

c3 = parity (4-7, 12-15, 20-23 and so on)

 Step 4 − Error detection and correction

The decimal equivalent of the parity bits binary values is calculated. If it is 0, there is no
error. Otherwise, the decimal value gives the bit position which has error. For example,
if c1c2c3c4 = 1001, it implies that the data bit at position 9, decimal equivalent of 1001,
has error. The bit is flipped to get the correct message.

Cyclic code
Cyclic codes are known to be a crucial subcategory of linear coding technique because these offers
efficient encoding and decoding schemes using a shift register. These are used in error correction as
they can check for double or burst errors. Various other important codes like, Reed Solomon, Golay,
Hamming, BCH, etc. can be represented using cyclic codes.

Basically, a shift register and a modulo-2 adder are the two crucial elements considered as building
blocks of cyclic encoding. Using a shift register, encoding can be efficiently performed. The fundamental
elements of shift registers are flip flops (that acts as a storage unit) and input-output. While the other
i.e., a binary adder has two inputs and one output.

Properties of cyclic code

Property 1: Property of Linearity

According to this property, a linear combination of two codewords must be another codeword.

Suppose we have two codewords Ci and Cj. So, on adding

30006
Page

4
Error control wireless communication

Where this Cp must also be a codeword.

For example, suppose we have given 3 codewords (110, 101, 011).

So, according to linearity property, the addition of any of the two given codewords must produce the
third codeword. Let’s check

Property 2: Property of Cyclic Shifting

According to this property, after a right or left shift in the bits of codewords the resultant code
generated must be another codeword.

Suppose, C is a codeword given as:

Then after cyclic shifts

Here we have performed the right cyclic shift that has produced these codewords.

For example, consider again those 3 codewords (110, 101, 011) which we considered for linearity
property.

So, according to cyclic shifting property, an either right or left shift in the bits of a codeword must
generate another codeword.

110: shifting the bits towards the right will provide 011.

101: a right shift in the bits of this codeword will give 110.

011: right shifting of these bits will provide 101.

30006
Page

5
Error control wireless communication

Bose, Chaudhuri, and Hocquenghem (BCH)


 The Bose, Chaudhuri, and Hocquenghem (BCH) codes form a large class of powerful random error-
correcting cyclic codes.
 This class of codes is a remarkable generalization of the Hamming code for multiple-error
correction.
 Bose–Chaudhuri–Hocquenghem codes (BCH codes) are a family of block error-correcting codes
(BEC) that can correct multiple bit errors. They are named after Raj Chandra Bose, D. K. Ray-
Chaudhuri, and Alexis Hocquenghem, who independently developed the codes in the early 1960s.
 BCH codes are a type of cyclic code, which means that the codewords can be generated by a linear
feedback shift register (LFSR). This makes them relatively easy to implement in hardware.
 The minimum distance of a BCH code is the minimum number of errors that can be corrected by
the code. The higher the minimum distance, the more errors the code can correct.
 BCH codes are commonly used in storage devices and digital communication systems. They are
also used in some satellite communication systems.

Note. Each BCH code is a ‘t’ error correct code that can detect and correct up top ‘t’ random error per
code word.

Properties of BCH

1. Code length: The code length is the number of bits in a codeword.


n = 2m-1
2. Information length: The information length is the number of bits of data that can be encoded in
a codeword.
k = n - mt
3. Minimum distance: The minimum distance is the minimum number of errors that can be
corrected by the code.

dmin = 2t +1

Generator code polynomial

g(x) = LCM [m1(x), m2(x), m3(x)… m2t(x)]

let we have double error correcting code then,

t=2

g(x) = LCM [m1(x), m2(x), m3(x), m4(x)]

here

30006
Page

6
Error control wireless communication

Reed Solomon code


Reed-Solomon (RS) codes are a type of error correction code that is widely used for reliable data
transmission and storage. They are particularly effective in dealing with burst errors, where consecutive
bits or symbols are corrupted in a communication channel.

 It is subset of BCH code


 Properties of reed Solomon code is same as the BCH code

Generator Polynomial

A Reed-Solomon codeword is generated using a special polynomial. All valid codewords are exactly
divisible by the generator polynomial. The general form of the generator polynomial is:

and the codeword is constructed using:

c(x) = g(x).i(x)

where g(x) is the generator polynomial, i(x) is the information block, c(x) is a valid codeword and a is
referred to as a primitive element of the field.

Example: Generator for RS(255,249)

Block interleaving
Block interleaving is a technique used to spread out errors in a data stream. It works by rearranging the
data in a block so that errors are not likely to occur in consecutive bits. This makes it more likely that
error-correcting codes can correct the errors.

Block interleaving is commonly used in communication systems where the data stream is susceptible to
burst errors. Burst errors are a type of error where multiple bits in a row are corrupted. Block
interleaving can help to spread out these errors so that they are more likely to be correctable.

There are two main types of block interleaving:

 Random interleaving: Random interleaving rearranges the data in the block in a random order.
This is the simplest type of block interleaving, but it is also the least efficient.
 Pseudorandom interleaving: Pseudorandom interleaving rearranges the data in the block using a
pseudorandom sequence. This is more efficient than random interleaving, but it is also more
complex to implement.

30006
Page

7
Error control wireless communication

Convolutional coding
Convolutional coding involves a shift register that acts as temporary storage and performs shifting using
a sliding window. The main parameters in convolutional coding are the constraint length (K) and the
code rate.

 Constraint Length (K): It represents the length of the convolutional encoder, which is
determined by the size of the shift register. The constraint length defines the overall window
size in bits and influences the error correction capability of the code.
 Code Rate: The code rate is the ratio of the number of bits shifted at once within the shift
register (k) to the total number of bits in the encoded bit stream (n). It determines the amount
of redundancy added to the original data. Higher code rates provide better error correction
capability but require more bandwidth.

Working

Basically, x[n-i] is the encoding state. Here we have shown two blocks x[n-1] and x[n-2], denoting there
are 2 states of the encoder which is nothing but the previous bits. Input bit x[n] is fed to the encoder in
order to obtain the parity bits.

Now, the question arises – how parity bits (i.e., the output bits) are calculated?

So, the parity bits are calculated using the states of the encoder and the input bit. In the above-given
block diagram, we have considered 2 states with a single input bit. Thus, the overall constraint length
i.e., K will be 3. Thus, for the convolutional code, it is said that the output stream shows dependency on
previously-stored bits in memory along with the present input bits.

It is to be noted here that as the obtained output contains the parity bits thus, it will be wrong to
assume that a longer constraint length will offer faster decoding. This is so because even a longer
constraint will hold parity bits and a large number of parity bits will not make the decoding process
quick.

ARQ
Automatic Repeat Request (ARQ) is a group of error – control protocols for transmission of data over
noisy or unreliable communication network. These protocols reside in the Data Link Layer and in the
Transport Layer of the OSI (Open Systems Interconnection) reference model. They are named so
because they provide for automatic retransmission of frames that are corrupted or lost during
transmission. ARQ is also called Positive Acknowledgement with Retransmission (PAR).

30006
Page

8
Error control wireless communication

ARQs are used to provide reliable transmissions over unreliable upper layer services. They are often
used in Global System for Mobile (GSM) communication.

Working Principle

In these protocols, the receiver sends an acknowledgement message back to the sender if it receives a
frame correctly. If the sender does not receive the acknowledgement of a transmitted frame before a
specified period of time, i.e. a timeout occurs, the sender understands that the frame has been
corrupted or lost during transit. So, the sender retransmits the frame. This process is repeated until the
correct frame is transmitted.

Types of ARQ Protocols

There are three ARQ protocols in the data link layer.

 Stop – and – Wait ARQ − Stop – and – wait ARQ provides unidirectional data transmission with
flow control and error control mechanisms, appropriate for noisy channels. The sender keeps a
copy of the sent frame. It then waits for a finite time to receive a positive acknowledgement
from receiver. If the timer expires, the frame is retransmitted. If a positive acknowledgement is
received then the next frame is sent.
 Go – Back – N ARQ − Go – Back – N ARQ provides for sending multiple frames before receiving
the acknowledgement for the first frame. It uses the concept of sliding window, and so is also
called sliding window protocol. The frames are sequentially numbered and a finite number of
frames are sent. If the acknowledgement of a frame is not received within the time period, all
frames starting from that frame are retransmitted.
 Selective Repeat ARQ − this protocol also provides for sending multiple frames before receiving
the acknowledgement for the first frame. However, here only the erroneous or lost frames are
retransmitted, while the good frames are received and buffered.

30006
Page

You might also like