UNIT5 Part 2-1-35
UNIT5 Part 2-1-35
UNIT5 Part 2-1-35
Introduction :
Errors are introduced in the data when it passes through the channel. Channel noise
interferes the signal, so the signal power is reduced. Transmission power and channel
bandwidth are the main parameters in transmission of data over the channel. With this
parameters power spectral density of channel noise is also determine signal to noise ratio.
This SNR determines the probability of error. Using coding Techniques Signal to noise ratio
is reduced for fixed probability of error.
Channel encoder :
The channel encoder adds bits (redundancy) to the message bits. The encoder
signal is then over the noisy channel.
Channel decoder :
It identifies the redundant bits and uses them to detect and correct the errors in the
message bits if any. Thus the number of errors introduced due to channel noise are
minimized by encoder and decoder. Due to the redundant bits the overall data rate
increases. Hence channel has to accommodate this increased data rate. Systems becomes
slightly complex because of coding techniques.
Types of codes:
These Codes consists of ‘n’ number of bits in one block or codeword. This codeword
consists of ‘k’ message bits and (n-k) redundant bits. Such block codes are called (n, k)
block codes.
The coding operation is discrete time convolution of input sequence with the impulse
response of the encoder. The Convolutional encoder accepts the message bits
continuously and generates the encoded sequence continuously.
a. Linear Code: If the two codewords of the linear codes are added by modulo-2
arithmetic the it produces third codeword in the code.
b. Nonlinear Code: Addition of the nonlinear codeword does not necessarily produce
third codeword.
where the maximum is taken over all possible input distributions p(x).
Types of errors
Random errors: These errors are due to white Gaussian noise in the channel.
These error generated in a particular interval does not affect the performance of the system
in subsequent intervals. These errors are totally uncorrelated.
Burst errors: These errors due to impulsive noise in the channel. Impulsive noise
due to lighting and switching transient. These error generated in a particular interval will
affect the performance of the system in subsequent intervals.
Codeword: The encoded block of ‘n’ bits is called a codeword. It contains message
bits and redundant bits.
Block length: The number of bits ‘n’ after coding is called the block length of the
code.
Code rate: The ration of message bits (k) and the encoder output bits (n) is called
code rate. Code rate r is defined by
𝑘
𝑟= 0<𝑟<1
𝑛
Channel Data Rate : It is the bit rate at the output of encoder. If the bit rate at the
input of encoder is 𝑅𝑆 , Then channel data rate will be,
𝑛
𝑅𝑜 = 𝑅
𝑘 𝑠
Code Vectors : An ‘n’ bit code word can be visualised in an n dimensional space as
a vector whose elements are the bits in the code word. To visualise 3 bit code vectors there
will be 8 different code words because of 2𝑘 symbol.
Sl.No Bits of Code vector
𝑏2 = 𝑍 𝑏1 = 𝑌 𝑏0 = 𝑋
1 0 0 0
2 0 0 1
3 0 1 0
4 0 1 1
5 1 0 0
6 1 0 1
7 1 1 0
8 1 1 1
Table. Code vectors in 3 dimensional space
Hamming Distance:
𝑡𝑑𝑒𝑡 = 𝑑𝑚𝑖𝑛 − 1
𝑑𝑚𝑖𝑛 − 1
𝑡𝑐𝑜𝑟𝑟 =
2
where dmin is the minimum Hamming distance between two codewords and t
means the smallest integer.
• From the example, tcorr = (3-1)/2 = 1 bit error can be corrected.
• A two-bit error will cause either an undecided correction or a failed correction.
• The number of errors that can be detected is
• From the example, tdet = 3-1 = 2
• All two-bit errors will be detected.
• As little as a three bit error might cause a failed detection.
Code efficiency :
message bits in the block k
Code efficiency = =
transmitted bits for block n
Weight of the Code :
The number of non zero elements in the transmitted code vector is called weight of
the code. It is denoted by w(X) where X is code vector.
By solving the above equation check vector can be obtained (additions are mod 2 addition)
Problem
The generator matrix for a (6,3) block code is given below. Find all code vectors of
this code.
1 0 0 0 1 1
𝐺 = [0 1 0 ∶ 1 0 1]
0 0 1 1 1 0
Solution :
We know that
G = [Ik [Pk×q ]]
k×n
1 0 0 0 1 1
𝐼 = [0 1 0] Pk×q = [ 1 0 1]
0 0 1 1 1 0
(ii) To obtain equations for check bits
Here k=3, q=3 and n=6, here the block size of message vector 3 bits. Hence there will be 8
message vector as shown in the table.
0 1 1
[𝐶1 𝐶2 𝐶3 ] = [𝑀1 𝑀2 𝑀3 ] [ 1 0 1]
1 1 0
𝐶1 = 𝑀1 0 ⊕ 𝑀2 ⊕ 𝑀3 = 𝑀2 ⊕ 𝑀3
𝐶2 = 𝑀1 ⊕ 𝑀2 0 ⊕ 𝑀3 = 𝑀1 ⊕ 𝑀3
𝐶3 = 𝑀1 ⊕ 𝑀2 ⊕ 𝑀3 0 = 𝑀1 ⊕ 𝑀2
(iii) To determine check bits and code vectors for every message vector
𝐶1 = 𝑀2 ⊕ 𝑀3 = 0 ⊕ 0 = 0
𝐶2 = 𝑀1 ⊕ 𝑀3 = 0 ⊕ 0 = 0
𝐶3 = 𝑀1 ⊕ 𝑀2 = 0 ⊕ 0 = 0 ie [𝐶1 𝐶2 𝐶3 ] = (0 0 0)
For (001)
𝐶1 = 𝑀2 ⊕ 𝑀3 = 0 ⊕ 1 = 1
𝐶2 = 𝑀1 ⊕ 𝑀3 = 0 ⊕ 1 = 1
𝐶3 = 𝑀1 ⊕ 𝑀2 = 0 ⊕ 0 = 0 ie [𝐶1 𝐶2 𝐶3 ] = (1 1 0)
Sl.No Message Bits Check bits Complete Code Vector
M1 M2 M3 𝐶1 = 𝐶2 = 𝐶3 = M1 M2 M3 C1 C2 C3
𝑀2 ⊕ 𝑀3 𝑀1 ⊕ 𝑀3 𝑀1 ⊕ 𝑀2
1 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 1 1 1 0 0 0 1 1 1 0
3 0 1 0 1 0 1 0 1 0 1 0 1
4 0 1 1 0 1 1 0 1 1 0 1 1
5 1 0 0 0 1 1 1 0 0 0 1 1
6 1 0 1 1 0 1 1 0 1 1 0 1
7 1 1 0 1 1 0 1 1 0 1 1 0
8 1 1 1 0 0 0 1 1 1 0 0 0
For every block code the parity check matrix can be defined as
H = [P T ∶ Iq ]
q×n
Submatrix P is represented as
These are (n,k) linear block codes, will satisfy the following conditions.
𝑘
Code rate 𝑟 = 𝑛 0<𝑟<1
𝑛−𝑞 𝑞 𝑞
𝑟= = 1− =1−
𝑛 𝑛 2q − 1
Since dmin is 3 for hamming code, it can detect double errors and correct single
errors.
Problem
The parity check matrix of a particular (7,4 ) linear block code is given by
1 1 1 0 1 0 0
[𝐻] = [1 1 0 1 0 1 0]
1 0 1 1 0 0 1
Solution :
Here n =7, k =4
The parity check matrix of q×n size is given and q = 3, n=7, k=4.
Therefore
p p p 1
11 12 13 1 1
p p p 1 1 0
𝑃 = 21
22 23
p31 p p 1 0 1
33
0
32
1 1
p41 p 42
p
43
1 0 0 0 1 1 1
0 1 0 0 1 1 0
𝐺= :
0 0 1 0 1 0 1
0 0 0 1 0 1 1
Codeword C = MP
p p p
11 12 13
p 21 p p
[𝐶1 𝐶2 𝐶3 ]1×3 = [𝑀1 𝑀2 𝑀3 𝑀4 ]1×4
22 23
p31 p 32
p
33
p 41 p 42
p
43
4×3
1 1 1
1 1 0
[𝐶1 𝐶2 𝐶3 ]1×3 = [𝑀1 𝑀2 𝑀3 𝑀4 ]1×4
1 0 1
0 1 1
4×3
𝐶1 = 𝑀1 1 ⊕ 𝑀2 1 ⊕ 𝑀3 1 ⊕ 𝑀4 0 = 𝑀1 ⊕ 𝑀2 ⊕ 𝑀3
𝐶2 = 𝑀1 1 ⊕ 𝑀2 1 ⊕ 𝑀3 0 ⊕ 𝑀4 1 = 𝑀1 ⊕ 𝑀2 ⊕ 𝑀4
𝐶3 = 𝑀1 1 ⊕ 𝑀2 0 ⊕ 𝑀3 1 ⊕ 𝑀4 1 = 𝑀1 ⊕ 𝑀3 ⊕ 𝑀4
𝐶1 = 𝑀1 ⊕ 𝑀2 ⊕ 𝑀3 = 1 ⊕ 0 ⊕ 1 = 0
𝐶2 = 𝑀1 ⊕ 𝑀2 ⊕ 𝑀4 = 1 ⊕ 0 ⊕ 1 = 0
𝐶3 = 𝑀1 ⊕ 𝑀3 ⊕ 𝑀4 = 1 ⊕ 1 ⊕ 1 = 1
2k = 28 = 16 code vectors along with their weights. The smallest weight of any non
zero code vector is 3 therefore the minimum distance dmin =3.
dmin =3
dmin ≥ s+1 3 ≥ s+1 therefore s ≤ 2 thus two errors will be detected. And
dmin ≥ 2t+1 3 ≥ s+1 therefore t ≤ 1 thus one errors will be corrected.
Definition of Syndrome:
When Some errors are present in received vector Y then it will be not from the valid
vector and it will not satisfy the property
𝑖𝑓 𝑋𝐻 𝑇 = (0 0 0 … . .0)𝑎𝑛𝑑 𝑌𝐻 𝑇 = (0 0 0 … . .0)
S = YH T = (𝑋 ⊕ 𝐸)𝐻 𝑇 = 𝑋𝐻 𝑇 ⊕ 𝐸𝐻 𝑇
𝑆 = 𝐸𝐻 𝑇 𝑠𝑖𝑛𝑐𝑒 𝑋𝐻 𝑇 = 0
Problem
1 1 1 0 1 0 0
[𝐻] = [0 1 1 1 ∶ 0 1 0]
1 1 0 1 0 0 1
Syndrome is 3 bit vector, here q=3. Therefore 2 q-1= 7 non zero syndrome. This shows that
7 single bit error pattern will be represented by these 7 non zero syndrome. Error vector E
is a n bit vector representing error pattern.
Sl.No Bit in Bits of vector (E), Non zero bits shows error
error
1 1st 1 0 0 0 0 0 0
2 2 nd 0 1 0 0 0 0 0
3 3rd 0 0 1 0 0 0 0
4 4 th 0 0 0 1 0 0 0
5 5 th 0 0 0 0 1 0 0
6 6th 0 0 0 0 0 1 0
7 7 th 0 0 0 0 0 0 1
(2) Calculation of Syndrome
1 0 1
1 1 1
1 1 0
𝑇
𝐻 = 0 1 1
1 0 0
0 1 0
0 0 1
1 0 1
1 1 1
1 1 0
𝑇
𝑆 = 𝐸𝐻 = (1000000) 0 1 1
1 0 0
0 1 0
0 0 1
S = (1 0 1)
S = (1 1 1)
Syndrome vector are rows of HT
Let us consider above (7,4) block code and the Code vector
𝑋 = (1 0 0 1 1 1 0 )
S = YHT
1 0 1
1 1 1
1 1 0
𝑆 = (1 0 1 1 1 1 0 ) 0 1 1 = (1 1 0)
1 0 0
0 1 0
0 0 1
(2) To determine the row of HT which is same as of S = 3rd row
(3) To determine E ; E = (0 0 1 0 0 0 0)
(4) Correct Vector X
𝑋 = 𝑌⊕𝐸
𝑋 = (1 0 1 1 1 1 0) ⊕ ( 0 0 1 0 0 0 0 ) = ( 1 0 0 1 1 1 0 )
and
𝑌 = (1 0 (𝟏) (𝟎) 1 1 0 )
S = YHT
1 0 1
1 1 1
1 1 0
𝑆 = (1 0 1 0 1 1 0 ) 0 1 1 = (1 0 1)
1 0 0
0 1 0
0 0 1
S is equal to row of HT which is same as of S = 1st row therefore E = 1000000. Thus the
error correction and detection goes wrong. The probability occurrence of multiple errors is
less compared to single errors. To correct multiple errors extended hamming codes are
used. In these codes one extra bit is provided to correct double errors. We know that for
(n,k) block codes there are 2n-1distinct non zero syndromes. There are nC1 = n single error
pattern, nC2 double error pattern, nC3 triple error pattern and so on. Therefore to correct t
error pattern
2𝑞 − 1 ≥ 𝑛 𝐶1 + 𝑛 𝐶2 + 𝑛 𝐶3 + … . . +𝑛 𝐶𝑡
Hamming Bound
2𝑞 ≥ 1 + 𝑛 𝐶1 + 𝑛 𝐶2 + 𝑛 𝐶3 + … . . +𝑛 𝐶𝑡
𝑡
2𝑞 ≥ ∑ 𝑛 𝐶𝑖
𝑖=0
𝑡
2𝑛−𝑘 ≥ ∑ 𝑛 𝐶𝑖
𝑖=0
𝑛 − 𝑘 ≥ 𝑙𝑜𝑔2 (∑ 𝑛 𝐶𝑖 )
𝑖=0
𝑡
𝑘 1
1 − ≥ 𝑙𝑜𝑔2 (∑ 𝑛 𝐶𝑖 )
𝑛 𝑛
𝑖=0
𝑘
𝐶𝑜𝑑𝑖𝑛𝑔 𝑟𝑎𝑡𝑒 =𝑟
𝑛
𝑡
1
1 − 𝑟 ≥ 𝑙𝑜𝑔2 (∑ 𝑛 𝐶𝑖 )
𝑛
𝑖=0
Problem:
Solution:
This equation shows that Syndrome depends only on error pattern not on transmitted
codeword.
All error pattern the differ by a codeword have the same syndrome.
S1 = Y1 H T = (𝑋1 ⊕ 𝐸)𝐻 𝑇 = 𝑋1 𝐻 𝑇 ⊕ 𝐸𝐻 𝑇
𝑆1 = 𝐸𝐻 𝑇 𝑠𝑖𝑛𝑐𝑒 𝑋1 𝐻 𝑇 = 0
S2 = Y2 H T = (𝑋2 ⊕ 𝐸)𝐻 𝑇 = 𝑋2 𝐻 𝑇 ⊕ 𝐸𝐻 𝑇
𝑆2 = 𝐸𝐻 𝑇 𝑠𝑖𝑛𝑐𝑒 𝑋2 𝐻 𝑇 = 0
1 1 1 0 1 0 0
[𝐻] = [1 1 0 1 ∶ 0 1 0]
1 0 1 1 0 0 1
X2 = 0 0 0 1 0 1 1 ; X3 = 0 0 1 0 1 0 1
Y2 = (𝟏)0 0 1 0 1 1 ; Y3 = (𝟏) 0 1 0 1 0 1
1 1 1
1 1 0
1 0 1
S2 = Y2 H T = ( 𝟏 0 0 1 0 1 1) 0 1 1 = ( 1 1 1)
1 0 0
0 1 0
0 0 1
1 1 1
1 1 0
1 0 1
T
S3 = Y3 H = ( 𝟏 0 1 0 1 0 1) 0 1 1 = ( 1 1 1)
1 0 0
0 1 0
0 0 1
Thus the syndrome S2 = S3 = ( 1 1 1) even if two codewords are different. This proves all
error pattern the differ by a codeword have the same syndrome.
If there are m1, m2, m3 ... mk are the bits of the k bit message word, then m1⊕ m2
⊕ m3 ⊕ ...... ⊕ mk ⊕ c1 = 0 In the above equation C1 is the parity bit added with the
message. If there are even number of parity check bit C 1 = 0 and vice versa. For this code
the transmitted bits are n = k+1 and q=1. This code can correct single bit.
Repeated codes
In this code , a single message bit is transmitted and q=2t bit are the parity bit and
k=1, then the transmitted bits are n = 2t+1. This code can correct t errors per block. It
requires large band width.
Hadamard Code
It is derived from hadamard matrix here n = 2k and q = n-k = 2k –k. the code rate is 𝑟 =
𝑘 𝑘
= 2𝑘 This shows the code rate will be very small.
𝑛
Extended Code
(n,k) linear block code has a parity check matrix H. One column of zero elements (except
last element) and one row of 1’s is added to the parity check matrix as shown below
The code turned by such parity is called extended code. Thus it will be described as
(n+1, k) linear block code. Now the parity check matrix size is (q+1) by (n+1). For example
(7,4) matrix is represented as below with the extended parity bits and the minimum
distance for extended code is
𝑑𝑒 (𝑚𝑖𝑛) = 𝑑𝑚𝑖𝑛 + 1
Dual code :
Consider an (n,k) block code. This code satisfies 𝐻𝐺 𝑇 = 0, then the (n, n-k) i.e (n,q)
block code called as dual code. The generator matrix and parity matrix will be,
Properties :
Linearity property :- Sum of any two codewords is also a valid codeword. For example
X1 and X2 is a codeword then X3 = X1 ⊕ X2 Here X3 is also a codeword. This property
shows cyclic code is also a linear code.
Cyclic property :- Every cyclic shift of the valid code vector produces another code vector.
Let us consider n bit code vector
𝑋 = {𝑥𝑛−1 , 𝑥𝑛−2 , … 𝑥1 , 𝑥0 }
Here 𝑥𝑛−1 , 𝑥𝑛−2 , … 𝑥1 , 𝑥0 represents the individual bits of code vectors. Let us shift the
above code vector cyclically to the left side
This code word will be represents by a polynomial of a degree less than or equal to (n-1)
𝑋(𝑝) = {𝑥𝑛−1 𝑝𝑛−1 + 𝑥𝑛−2 𝑝𝑛−2 + … + 𝑥1 𝑝 + 𝑥0 }
Here X(p) is the polynomial of degree (n-1), P is the arbitrary variable of the polynomial
The power of ‘p’ represents positions of the codeword.
𝑝0 𝑟𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑠 𝐿𝑆𝐵
1. These are algebraic codes. The algebraic operations such as addition, Subtraction,
Multiplication and division etc becomes very simple.
2. Position of the bits are represented with the help of powers of ‘p’ in a polynomial.
𝑋(𝑝) = 𝑀(𝑝)𝐺(𝑝)
Here G(p) is the generating polynomial of degree ‘q’. For an (n,k) cyclic code, q=n-k
represent the number of parity bits. The generating polynomial is given as,
If M1, M2, M3 … etc are the other message vectors, then the corresponding code vectors
can be calculated as
𝑋1 (𝑝) = 𝑀1 (𝑝)𝐺(𝑝)
𝑋2 (𝑝) = 𝑀2 (𝑝)𝐺(𝑝)
𝑋3 (𝑝) = 𝑀3 (𝑝)𝐺(𝑝) and So on. All the above code vectors in non systematic form and they
satisfy cyclic property. Note that G(p) is same for all code vectors.
Problem
The generator polynomial of (7,4) cyclic code is 𝐺(𝑝) = 𝑝3 + 𝑝 + 1 find all code vectors
in nonsystematic form.
Solution :
Here n =7, k =4 , Number of check bits q= n-k = 7- 4 = 3 and Block length n= 2q-1 = 8-1
= 7.
For ex Consider any message vector M = (m3, m2, m1, m0) = (0 1 0 1)
Then the message polynomial will be
𝑀(𝑝) = 𝑚3 𝑝3 + 𝑚2 𝑝2 + 𝑚1 𝑝 + 𝑚0 = 𝑝2 + 1
𝑋(𝑝) = 𝑀(𝑝)𝐺(𝑝)
𝑋(𝑝) = ( 𝑝2 + 1 )(𝑝3 + 𝑝 + 1)
𝑋(𝑝) = (p5 + 𝑝3 + 𝑝2 + 𝑝3 + 𝑝 + 1)
𝑋(𝑝) = (p5 + 𝑝3 + 𝑝3 + 𝑝2 + 𝑝 + 1)
𝑋(𝑝) = (p5 + (1 ⊕ 1) 𝑝3 + 𝑝2 + 𝑝 + 1)
Note that the degree of above polynomial is n-1 = 6, The code vector of above polynomial
is
𝑋 = (𝑥6 𝑥5 𝑥4 𝑥3 𝑥2 𝑥1 𝑥0 ) = (0 1 0 0 1 1 1)
𝑋𝑔 ′ = (1 0 1 1 0 0 0 )
𝑝𝑞 𝑀(𝑝)
𝐶(𝑝) = 𝑟𝑒𝑚 [ ]
𝐺(𝑝)
Problem
The generator polynomial of (7,4) cyclic code is 𝐺(𝑝) = 𝑝3 + 𝑝 + 1 find all code vectors in
systematic form.
Solution :
Here n =7, k =4 , Number of check bits q= n-k = 7- 4 = 3 and Block length n= 2q-1 = 8-1 =
7.
𝑀(𝑝) = 𝑚3 𝑝3 + 𝑚2 𝑝2 + 𝑚1 𝑝 + 𝑚0 = 𝑝2 + 1
𝑝𝑞 𝑀(𝑝)
𝐶(𝑝) = 𝑟𝑒𝑚 [ ]
𝐺(𝑝)
𝑝𝑞 𝑀(𝑝) 𝑝5 + 0 𝑝4 + 𝑝3 + 0𝑝2 + 0𝑝 + 0
[ ]=
𝐺(𝑝) 𝑝3 + 𝑝 + 1
𝑇ℎ𝑒𝑟𝑒𝑓𝑜𝑟𝑒 𝐶(𝑝) = 𝑝2 + 0𝑝 + 0
Problem :
An n digit code polynomial X(p) is obtained as 𝑋(𝑝) = 𝐶(𝑝)𝑝𝑛−𝑘 𝑀(𝑝) where M(p) is
message polynomial with k bit data and C(P) is the remainder polynomial obtained by
dividing 𝑝𝑛−𝑘 𝑀(𝑝) by proper generator polynomial G(p). prove that X(p) is systematic cyclic
code if G(p) is the factor of 𝑝𝑛+1 in modulo 2 sense
Obtain the generator matrix of (7,4) cyclic code if 𝐺(𝑝) = 𝑝3 + 𝑝 + 1. and the code
vectors.
Solution :
Here n =7, k =4 , Number of check bits q= n-k = 7- 4 = 3, 𝐺(𝑝)𝑝𝑖 will be
1 1 0 1 0 0 0
0 1 1 0 1 0 0
𝑋 = (𝑚3 , 𝑚2 , 𝑚1 , 𝑚0 ∶ 𝐺) = 1001 ∶ = (1010011)
0 0 1 1 0 1 0
( 0 0 0 1 1 0 1 )
The tth row of this matrix will be represented in the polynomial form as,
Find out the the generator matrix for a systematic (7,4) cyclic code if 𝐺(𝑝) = 𝑝3 + 𝑝 + 1.
Also find the parity matrix.
Solution :
𝑝6 + 𝑅𝑡 (𝑝) = 𝑄𝑡 (𝑝)( 𝑝3 + 𝑝 + 1)
To obtain 𝑹𝒕 (𝒑), 𝑸𝒕 (𝒑) for 1st Row
Here
1 0 0 0 1 0 1
0 1 0 0 1 1 1
𝑋 = (𝑚3 , 𝑚2 , 𝑚1 , 𝑚0 ∶ 𝐺) = 1100 ∶ = (1100010)
0 0 1 0 1 1 0
( 0 0 0 1 0 1 1 )
1 0 1
1 1 1
𝑝=
1 1 0
0 1 1
4×3
𝐻 = [𝑝𝑇 ∶ 𝐼𝑞 ]𝑞×𝑛
Mod 2 addition
Operation :
Problem : -
Design the encoder for (7,4) cyclic code generator polynomial is 𝐺(𝑝) = 𝑝3 + 𝑝 + 1 and
verify its operation for any message vector.
Solution:
𝑋 = (𝑚3 , 𝑚2 , 𝑚1 , 𝑚0 , 𝑐1 , 𝑐2 , 𝑐3 ) = (1100010 )
𝑋(𝑝) = 𝑀(𝑝)𝐺(𝑝)
𝑌(𝑝) 𝑅𝑒𝑚𝑖𝑛𝑑𝑒𝑟
= 𝑄𝑢𝑜𝑡𝑖𝑒𝑛𝑡 +
𝐺(𝑝) 𝐺(𝑝)
R(p) will be the polynomial of degree less than or equal to q-1. Multyply both sides of above
equation by G(p)
E depends upon the reminder R. For every reminder ‘R’ there will be specific error vector.
So ‘R’ is a syndrome vector S or R(p) = S(p)
Y(p) S(p)
= Q(p) +
G(p) G(p)
𝑌(𝑝)
𝑆(𝑝) = 𝑟𝑒𝑚 [ ]
𝐺(𝑝)
Decoder
Operation :
Initially all the shift register contents are zero and the switch is closed in position 1.
The received vector Y is shifted bit by bit into the shift register.
Flipflops keep on changing the values according to input bits of Y and values of g 1, g2
etc.
After all the bits of Y are shifted, q flipflops of shift register contains the q bit Syndrome
vector.
The switch id then closed to position 2 and clocks are applied to the shift register.
The output is a syndrome vector S = (Sq-1, Sq-2, ….S1, S0).
• (n,1) Repetition codes. High coding gain (minimum distance always n-1), but very low
rate: 1/n
• (n,k) Hamming codes. Minimum distance always 3. Thus can detect 2 errors and correct
one error. n=2m-1, k = n - m,
• Maximum-length codes. For every integer there exists a maximum length code (n,k)
with n = 2k - 1,dmin = 2k-1.
• BCH-codes. For every integer there exist a code with n = 2m-1, and where t is the error
correction capability
• (n,k) Reed-Solomon (RS) codes. Works with k symbols that consists of m bits that are
encoded to yield code words of n symbols. For these codes
and
• Nowadays BCH and RS are very popular due to large dmin, large number of codes, and
easy generation
Advantages :
Disadvantages:
• Error correction is complicated since the combinational logic circuits in error detector
are complex.
Convolutional Code:
Introduction:
Convolutional codes offer an approach to error control coding substantially different from
that of block codes.
• encodes the entire data stream, into a single codeword.
• maps information to code bits sequentially by convolving a sequence of
information bits with “generator” sequences.
• does not need to segment the data stream into blocks of fixed size
(Convolutional codes are often forced to block structure by periodic truncation).
• Is a machine with memory.
– This fundamental difference imparts a different nature to the design and
evaluation of the code.
• Block codes are based on algebraic/combinatorial techniques.
• Convolutional codes are based on construction techniques.
• Easy implementation using a linear finite-state shift register.
• A Convolutional code is specified by three parameters (n, k, k)
– Rc = k / n is the coding rate, determining the number of data bits per coded bit.
– K is the constraint length of the convolutinal code (where the encoder has K-1
memory elements).