Professional Documents
Culture Documents
)
3.3 Error detection methods
3.3.1 Parity bit method - The most used method for detecting bit errors
with asynchronous and character-oriented synchronous transmission.
the transmitter adds an additional bit - the parity bit - to each transmitted
character (byte) prior to transmission. The parity bit used is a function of the bits
that make up the character being transmitted.
The receiver performs a similar function on the received character and compare
the result with the received parity bit. If they are equal, no error is assumed, but
if they are different, then a transmission error has occurred.
The parity bit is chosen so that the total number of 1 bits (including the parity bit
itself) is either even - even parity - or odd - odd parity. For example, with
character 0110101 the parity bit is 0 for even parity and 1 for odd parity. The set
of code words is thus said to have a minimum distance of 2.The receiver can thus
detect all single errors in each code words, but can’t correct any. In this
particular case, the distance between any two code words is an even number and
any error model with an odd number of errors is detected.
3.3 Error detection methods (contin.)
The Hamming distance for a block = the minimum distance d → any two code
words are different in at least d positions;
3.3 Error detection methods (contin.)
If the block code is a linear one → the sum of any two words is also a code
word, and the minimum distance is equal with the minimum weight (the number
of 1 bits) of the nonzero code words.
3.3 Error detection methods (contin.)
Principle:
Any code polynomial (a polynomial associated to a code word, having as
coefficients the code word symbols, and the maximum degree n−1) is a multiple
of the same polynomial, called generator polynomial.
For a (n, k) polynomial code the degree of the generator polynomial is n−k.
The coding operation, to find the n−k control bits associated to each k-bits
information block is done by dividing a n−1 degree polynomial, (whose
coefficients are, in order, from the n−1 degree term to n−k degree term the k
information bits, the other coefficients being 0) by the generator polynomial.
3.3 Error detection methods (contin.)
The coefficients of the remainder polynomial are the control bits, representing the
FCS (frame check sequence), which are transmitted at the tail of information digits.
The operations with polynomial coefficients are made in GF 2 (Galois field 2, using
modulo 2 operations). Hence, the set of 2k multiple polynomials, with the maximum
degree n−1, of the generator polynomial (degree n−k) are the set of the 2k code
polynomials.
Similarly, on receipt, the received bit stream including the FCS digits is again
divided by the same generator polynomial and if no errors are present, the
remainder is all zeros. If an error is present, however, the remainder is non-zero.
3.3 Error detection methods (contin.)
The minimum
weight of this code is
3, so the minimum
distance is also 3,
resulting that this
code can detect any
pattern of two or less
errors.
3.3 Error detection methods (contin.)
x5 + x 4 + x3 r ( x)
3
= q( x ) +
x + x +1 x3 + x + 1
So, we have r(x)=x=0·x2+1·x+0·x0 and the control bits are 010, and the
corresponding code word is 0111010.
3.3 Error detection methods (contin.)
A cyclic code (n, k) is a polynomial code with the generator polynomial being a divider of
xn+1.
For a cyclic code any cyclic permutation, to the left or to the right, with one or more
positions, is also a code word.
The computed check (control) digits are referred to as the frame check sequence (FCS) or
the cyclic redundancy check (CRC) digits.
The number of check digits per frame is selected to suit the type of transmission errors
anticipated, although 16 and 32 bits are the most common.
3.4 Error correction methods
More powerful than block codes, offering higher encoding gains at the same
structural complexity;
Principle: continuous encoding process, with memory, over the entire input data
sequence;
3.4.1 Convolutional Codes (contin.)
CC are generated using a shift-register with m ≠ k cells and n output modulo-2 adders.
R=k/n
n modulo-2 adders
1 2 n
Note: the characteristic of the CC encoding process is the memory, each output bit depends
on the current input bit and on m-1 previous input bits.
3.4.1 Convolutional Codes (contin.)
CC description using the generator polynomials
The connections between register’s cells and adders = the polynomials coefficients;
3.4.1 Convolutional Codes (contin.)
Example 1: Draw the scheme of the CC defined by the following generator polynomials:
g1 ( x) = 1 + x + x 2 ⇔ g1 = [111]
g2 ( x) = 1 + x 2 ⇔ g2 = [101]
and determine the codeword corresponding to the following input data sequence:
u = (1011)
Solution: The encoder has 2 outputs, the shift register includes 2 cells, and the encoding rate
is R = 1/2. The input bits are entering the shift register from left to right. For each input
bit entering the encoder there are generated two output bits at the outputs of the modulo-2
adders. Hence, each input bit is influencing the 3 output bit intervals: over the current
interval, and over the next 2 bit intervals. The adders are read in an alternative manner,
such that the code rate is twice the input sequence rate.
v1 v1
v1 v 2 v1 v 2
t3 D D t4 D D
1 0 1 0 0 1 1 0 0 1
v2 v2
3.4.1 Convolutional Codes (contin.)
Example 1 (contin.)
Message sequence: u = (1011)
Time Output Time Output
(Branch word) (Branch word)
v1 v1
v1 v 2 v1 v 2
t5 D D t6 D D
0 1 1 0 1 0 0 1 1 1
v2 v2
Time Output
(Branch word)
v1
v1 v 2
t7 D D
0 0 0 0 0
v2
u( x) = u0 + u1 x + u2 x 2 + L + u j x j + L u j ∈ {0,1}
u = u0 , u1 , u2 ,L u j L
v1 ( x) = g1 ( x)u( x) = v1,0 + v1,1 x + v1,2 x 2 + L + v1, j x j + L ⇔ v1 = v1,0 , v1,1 , v1,2 ,L v1, j L
v2 ( x) = g2 ( x)u( x ) = v2,0 + v2,1 x + v2,2 x 2 + L + v2, j x j + L ⇔ v2 = v2,0 , v2,1 , v2,2 ,L v2, j L
3.4.1 Convolutional Codes (contin.)
Example 1 (contin.)
The two output sequences are interleaved and the global output sequence is obtained:
u = (1011) ⇒ u( x ) = 1 + x 2 + x 3
( )( )
v1 ( x ) = 1 + x 2 + x3 1 + x + x 2 = 1 + x + x5 ⇔ v1 = [110001]
v ( x) = (1 + x
2
2
+ x )(1 + x ) = 1 + x
3 2 3
+ x 4 + x5 ⇔ v2 = [100111]
v = (11 10 00 01 01 11)