Title: Error Control Coding Techniques incomplete
1Error Control Coding Techniques(incomplete)
- Summarized by
- Neetesh Purohit
- Lecturer, IIIT,
- Allahabad, UP, India
- http//profile.iiita.ac.in/np/
2Source
- Communication Systems, IV Edition, A. B.
Carlson and others, McGraw Hills.
3Why an Error occurs?
- Noise/ distortion/ interference/ fading.
- All the above parameters have random
characteristics. - One (more than one) factor(s) may change the
shape of transmitted signal while it travels thru
channel. - Due to randomness sometimes the received signal
may fall on the other side of the threshold level
used for signal detection which introduces an
error.
4Commercial advantages of Coding
- Coding gains can give as much as 10 dB
performance improvement. - VLSI and DSP chips are cheaper than higher power
transmitters, bigger antennas
5Types of Channel Coding
- Waveform
- M-ary signaling
- Bipolar signaling
- Orthogonal
- Trellis-coded modulation
- Structured Sequences
- Block Codes, cyclic codes
- Convolutional Codes
- Turbo Codes
6Concept of redundancy
- Systematic generation and addition of redundant
bits to the message bits, at the transmitter,
such that transmission errors can be minimized by
performing an inverse operation, at the receiver. - Example triple repetition codes
- Logic 0 - 000
- Logic 1 - 111
- It has the ability to correct one bit error and
detect two bit error.
7Code vectors, Hamming Distance
- n-bit codeword can be represented as a code
vector in a n-dimensional vector space. Each unit
weight vector represents a unique
dimension/direction.
001
011
111
101
000
010
100
110
8- Only 2k are valid code vectors out of 2n total
possible unique vectors. - The distance between two code vectors is measured
as the weight of the resultant when mod-2
addition is done on these vectors. - The minimum distance between all possible pairs
of valid code vectors is called the hamming
distance (dmin).
96-D Code Space
10Error control capability , Code rate
- Detect up to t errors
- dmin gt t1
- Correct up to t errors
- dmin gt 2t1
- Code Rate (Rc)
- Rc k/n
- A good code should have
- High dmin and Rc should be close to 1.
11Triple repetition codes
- If probability of transmission error of a
channel is x per bit and Triple repetition
codes are used. Calculate the probability that
the received word will be in error when - (a) it is used for error correction
- (b) It is used for error detection
12- Pwe,uncoded x
- - With triple repetition code
- Pwe,detection P(3,3) x3
- Pwe,correction P(2,3) P(3,3) 3x2 -2x3
- - For any channel with xltlt1
- Pwe,uncoded gt Pwe,correction gt Pwe,detection
- - The cost is paid in terms of reduction in bit
rate.
13FEC and BEC systems
- In FEC systems the receiver processes every
received data packet. (sometimes it may introduce
more errors instead of correcting an existing
error). - BEC systems uses error detecting codes and
retransmission of packet is requested for error
correction. Any one of the following ARQ
protocols can be used for this purpose - (a) Stop and wait (b) Go Back to n (c) Selective
repeat
14ARQ Techniques
15Error Detecting codes
- Horizontal Redundancy Check (HRC)
- Vertical Redundancy check (VLR)
- Cyclic Redundancy Check (CRC)
- Checksum
16Classification of codes
- Error detecting/correcting.
- Systematic/nonsystematic
- Binary/nonbinary
- Block (includes cyclic codes)/convolutional
- Recursive/nonrecursive
17Linear Block codes (n,k)
- Linearity Property
- All zero vector must be a valid code vector
- Sum of any two valid code vectors produces
another valid code vector. - Advantage of linearity?
18- Requirement for Systematic codes
- Xkxn Mkxk Ckxq
-
- If G be the generator matrix such that
- XMG
- then G must be given as Ik P.
-
- What should be the dimension of P?
19- The contents of P will produce the redundant bits
for a given message, thus governs the hamming
distance and error correcting capability of
generated code. - Can we generate a block code for a specified
hamming distance? - Can we generate a block code for a specified
hamming distance with a constraint on n and k??
20- Till date, no such method is proposed by any
researcher. (surprised?? But there are reasons.) - A large number of good block codes have been
proposed using hit and trial method. - Hamming codes have single bit error correction
capability i.e. dmin 3, qgt3 and n2q-1 (why??
It will be clear very soon). - The parity matrix for generation of Hamming codes
should contain all q-bit words with two or more
than two 1s arranged in any order.
21(7,4) Systematic Hamming code
- The codewords for P 101 111 110 011
22Syndrome Decoding
HT P Iq
HT P Iq
- XiHT (0 0 0 . . . . .0)1xq
- If there is any error then Yi Xi Ei
- The operation YiHT will generate a non zero
(1xq) vector called syndrome (S).
23- The Receiver already posses a syndrome table. The
generated syndrome (from previous operation) is
searched in it to find the corresponding error
vector can be obtained. - This error vector is added with Yi to get Xi. as
Yi Ei Xi Ei Ei Xi . - How does the receiver already has a syndrome
table?
24- S YHT EHT
- All possible error patterns E are already known
(depending upon error correcting capability of
code) and HT is also a known quantity. - Hence, If a code is to correct up to t errors
per word then - 2q 1 gt n nC2 nC3 . . . . . . nCt
- (Total no. of syndromes - 1) gt (possible error
patterns)
25Syndrome table
To accommodate the syndrome table the decoder
needs to store (qn)2q bits. Larger is the table
size more time will be required to find error
vector thus decoding delay will be increased.
26Cyclic codes
- 2q 1 gt n nC2 nC3 . . . . . . nCt
- qLog (2) gt log? nCi 0ltiltt base 2
- n k n(1-k/n) log ? nCi
- 1 Rc (1/n)log ? nCi
- Rc should be close to unity in order to minimize
overhead but it requires ngtgt1 which in turn
requires more memory space and decoding time.
27- The solution lies in imposing some constraint on
structure. - cyclic codes are a subclass of linear block codes
with a cyclic structure that leads to more
practical implementation. - Every cyclic shift of a valid code vector will
produce another valid code vector. - (see the table in slide no. 21)
28- A n bit codeword X can be represented in
polynomial form as - X(p) xn-1pn-1xn-2pn-2..x1px0
- Power of p ( i) will denote the position of
codeword bit presented by its coefficient xi. - Xi may be either zero or one. i.e. the code word
is X (xn-1 xn-2 .. x1 x0) - As per cyclic property X (xn-2 .. x1 x0
xn-1) and all other iterations will also be valid
codes.
29- How the first code should be generated?
- If a code word has n bits then at the most n
different codewords can be generated by
iteration. - if the message size is k bits such that 2k gt n
then how the other codewords should be generated?
30Generation of cyclic codes
- Mathematically the cyclic shift may also be
represented as - X(p) pX(p) xn-1(pn1)
- How? (The answer is mod-2 algebra)
- Let X(p)M(p)G(p). If G(p) is a factor of
(pn1) and M(p) is a k-bit message then the
aforesaid condition for cyclic codes will be
satisfied.
31- If there are more than one factor of (pn1)?
- Choose any factor. It will generate a valid
cyclic code but it may not possess optimum error
correcting capability. - How to find value of n or select a factor of
(pn1) to maximize coding benefits? - (my answer is hit and trial method)
- Hamming codes, BCH codes, Golay codes etc. are
examples of cyclic codes.
32Systematic cyclic codes
- For (n,k) code (qn-k) the requirement is
- X(p) pqM(p) C(p)
- Combining with cyclic property
- M(p)G(p) pqM(p) C(p)
- M(p) pqM(p)/G(p) C(p)/G(p)
- pqM(p)/G(p) M(p) C(p)/G(p)
33- On performing the division pqM(p)/G(p) the
q-bit remainder will be the required code bits
C(p) for the given message M(p). - Generate X(p) for a message using the above
method. Then find other possible codewords by
iteration. - Complete the code table for all possible messages
by repeating step 2.
34Advantages of Cyclic codes
- Simplified encoding.
- Easy syndrome calculation S(p) remY(p)/G(p)
- Ingenious error correcting decoding methods have
been devised for specific cyclic codes. They
eliminate the storage needed for table lookup. - Cyclic Redundancy Codes (CRC), a class of cyclic
codes, has ability to detect burst errors of
length q, all single bit errors, any odd number
of errors if (p1) is a factor of G(p), Double
errors if G(p) has at least three 1s.