DIGITAL COMMUNICATION - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

DIGITAL COMMUNICATION

Description:

Make the number of ones in a code word even: Method 1. Take F(X) = 1 X, i. ... C(X= 1) adds up the number of ones and since X = 1 is a root of F(X), the result ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 36
Provided by: hanv
Category:

less

Transcript and Presenter's Notes

Title: DIGITAL COMMUNICATION


1
DIGITAL COMMUNICATION
  • Packet error detection (CRC)
  • November 2011
  • A.J. Han Vinck

2
Some books
3
Cyclic Redundancy Check
  • Add n-k bits of extra data (the CRC field) to an
    k-bit message to provide error detection function
  • For efficiency, want n-k ltlt n
  • e.g., n-k 32 for Ethernet and n 12,000 (1500
    bytes)

4
Automatic Repeat reQuest
  • IDEA ask for retransmission if error detected
  •  

channel
Pass data if no error
ERROR ?
If Yes ask retransmission
5
Some properties of ARQ
  • Automatic Repeat-reQuest (ARQ)
  • send ACK packet OK
  • send NACK packet in error
  • Some modes
  • Resend the packet if no ACK received before
    timeout
  • Use a predetermined maximum of retransmissions
    until it is correctly received
  • Some ARQ protocols are
  • Stop-and-wait ARQ
  • Go-Back-N ARQ
  • Selective Repeat ARQ.
  • Hybrid ARQ is a combination of ARQ and forward
    error correction.

6
A pictorial view of coding
Replace k information bits by a unique n bit code
word
  • 2n vectors 2k code words (code)
  •  

7
Error detection
received vector not equal to one of the 2k
code words.
  • 2n vectors transmitted word
  • received
  •  

8
Misdetection
  • 2n vectors transmitted word
  • received
  •  
  •  

9
Consider the following example
  • transmitted
  • 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0
  • received
  • 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1
  • 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0
  • 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 0
    one error
  • 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0
  • 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0
  • 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0
  • 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 1 0
  • Property one error can be corrected
  • two errors can be detected
  • CHECK!

10
Error detection capability
  • code words differ in at
    least dmin positions
  • 2k vectors
  •  
  •  

0xx1x0x0 4 differences 1xx0x1x1 lt 3 errors
can be detected
up to dmin 1 errors are detectable
11
Misdetection
  • 2n vectors 2k code words
  •  
  •  

for a random vector the probability of
false acceptance  is (2k-1)/2n probability of
hitting the wrong code word
12
A polynomial description of the procedure
  • Let a (a0 a1,..., ak-1) be k information
    bits
  • the information is represented by A(X) Xn-k
    (a0a1X ...ak-1 Xk-1 )
  •  
  • the check polynomial is F(X) f0f1X
    ...fn-k Xn-k.
  •  
  • The transmitted code polynomial or encoding
    procedure is
  •  
  • C(X) ( A(X) mod F(X) A(X) )
  •  
  • Note that C(X) mod F(X) ? 0, and thus is C(X) a
    multiple of F(X).

13
A non-systematic procedure
  • Transmit C(X) F(X) (a0a1X ...ak-1 Xk-1 )
  • then, C(X) modulo F(X) 0!

14
Some examples
  • All coefficient operations are modulo-2
  • ( 1 X X3 ) (X X2 ) X X2 X4 X2 X3
    X5
  • X X3 X4 X5
  • errors change 0 1 and 1 0
  • Ex ( X X4 X5 ) modulo-(1 X2 ) 1
  • Subtract as often as possible ( 1 X2 ), but
    keep calculating mod-2

15
Ex ( X X4 X5 ) Modulo- (1 X2 )
  • X X4 X5
  • X3 X5 X3
  • X X3 X4
  • X2 X4 X2
  • X X2 X3
  • X X3 X
  • X2
  • 1 X2 1
  • 1

16
detection procedure
  • Assume that we receive the polynomial R(X)
    C(X) E(X)
  • where E(X) is a binary error polynomial
  • i.e. an error vector ( 0,0,0,1,0) ? C(X) X3
  •  
  • the decoder calculates R(X) mod F(X)
  • - if the result 0 no error detected
  • - if the result ? 0, then an error is
    detected.
  •  
  • The polynomial R(X) mod F(X) 0 if and only if
    E(X) is a multiple of F(X).

17
performance
  • ASSUME the polynomial F(X) has the form F(X)
    1 ... Xn-k
  • - degree n-k - and a nonzero constant term,
  • THEN any error burst of length ? n-k has a
    polynomial representation
  • that looks like E(X) Xi (1 ... Xn-k-1 )
  • and can thus never be a multiple of F(X).
  • F(X) is capable of detecting any burst of
    length ? n-k !

18
Performance contd
  • A nonzero burst of length ? (n-k) can never
    give a zero result.
  • This can also be seen as follows
  • n - k
  • E(X) 0 0 0 0 0 0 ... 0 1 0 ... 1 0 ...
    1 0 0 0
  •  
  • Xi F(X) 0 0 ... 0 ... 1 ...
    1
  • n-k1
  • WHY the binary representation of F(X) has
    length (n - k 1)
  • cancellation of the highest degree nonzero
    component in E(X) always gives a non-zero
    result.
  •  

19
CRC standard polynomials
  • CRC-8 x8x2x11
  • CRC-10 x10x9x5x4x11
  • CRC-12 x12x11x3x21
  • CRC-16 x16x15x21
  • CRC-CCITT x16x12x51
  • CRC-32 x32x26x23x22 x16x12x11x10x8
    x7x5x4x21
  • Ethernet uses CRC-32
  • HDLC CRC-CCITT
  • ATM CRC-8, CRC-10, and CRC-32

20
Why these polynomials (CRC-16 and CRC-CCITT) ?
  • 1st property Multiples of these polynomials have
    even weight
  • Hence error vectors of odd weight cannot be a
    multiple!
  • 2nd property error vectors of the form E(X) (1
    Xi )
  • are not divisible by F(X) for i lt L,
  • L larger than word length
  • Try to check this property!
  • Conclusion 1, 2 and 3 errors are detectable.
    CHECK!

21
SUMMARY for ERROR DETECTION
  • Remark We do all operations modulo 2 (XOR).
    F(X) 1 .... Xn-k
  • A packet has the form
  •  
  • C(X) A(X) mod F(X) A(X) Xn-k
    (a0 a1X ... ak-1 Xk-1
  • checksum information packet of length
    k.
  •  
  • C checksum a0 a1 a2
    ... ak-1
  • n-k bits k bits data
  • To calculate A(X) mod F(X), cancel highest
    nonzero term with F(X) until result has degree
    less than n-k

22
Contd
  • invert C at positions where the binary error
    vector E has ones R C ? E
  •  
  • EXAMPLE
  • C checksum a0 a1 a2 ...
    ak-1 0 0 0 1 1 1 1
    1 0 1 1
  • C c0 c1 c2 ... 0 ... 1 ...
    1 ... 0 cn-1 0 0 0 0 1 0 0
    1 0 1 1
  • E e0 e1 e2 ... 1 ... 1 ...
    0 ... 0 en-1 0 1 0 1
  • 1 0 1 1
  • R r0 r1 r2 1 ... 0
    ... 1 ... 0 rn-1 1 1 1 0 check
    sum
  • If no errors C(X) mod F(X) A(X) mod F(X) ?
    A(X) mod F(X) 0!
  • If errors C(X) ? E(X) mod F(X) E(X) mod
    F(X).

23
Shift-register
The following shift register can be used to
calculate A(X) modulo (1 X X3 )
a0 a1 a2 ... ak-1
Homework give a description of the shift
control to obtain the result
24
Contd
  • Example calculate ( 1 X2 X4 X5 ) modulo (
    1 X X3 )
  • In binary ( 1 0 1 0 1 1 ) modulo ( 1 1 0 1 )
  • The operations in binary are as follows
  • 1 0 1 0 1 1 1 X2 X4 X5
  • 0 0 1 1 0 1 X2 ( 1 X X3 )
  • 1 0 0 1 1 0
  • 0 1 1 0 1 0 X ( 1 X X3 )
  • 1 1 1 1 0 0
  • 1 1 0 1 0 0 ( 1
    X X3 )
  • RESULT 0 0 1 0 0 0 X2

Homework draw the corresponding shift register
25
CRC contd
  • The following clocked shift register can be
    used to implement CRC16

F(X) 1 X2 X15 X16
Data in
13 flip-flops
Example X16 modulo F(X) 1 X2 X15
Question When is the result A(X) mod F(X) equal
to 0? What does this mean?
26
A simple method
Fill row wise Transmit column wise RESULT any
burst of length L can be detected
0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
L
0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 1 1
row parity
27
A simple code the single parity check code
  • Make the number of ones in a code word even
  • Method 1
  • Take F(X) 1 X, i.e. C(X) F(X) A(X).
  • C(X 1) adds up the number of ones and since X
    1 is a root of F(X), the result is 0.
  • Method 2.
  • Use the n-th bit to make the parity of a word
    even
  • CONCLUSION detection of any number of odd errors
  • Efficiency R (n-1)/n

28
ISBN checksum checksum for 10-digit ISBN
- Given 9 digit product code. Starting at
leftmost digit - multiply corresponding digit
by 10, 9, 8, ... down to 2 inclusive - add the
resulting numbers add digit 10 such that the
result is divisible by 11 the number 10 is
written as X e.g., 0-201-61586-X is valid. The
last digit has to be 10 ( X). 100 92 80
71 66 51 45 38 62 110 122
10 132 1211 detects transpositions and
single digit errors - an error e at
position I gives as result the value eI modulo 11
? 0 - detection of an transposition error of
A and B A I B (I-1) ? BI A(I-1) AI
B(I-1) A B the value ( A B ) ? 0
modulo 11 for A ? B
29
Combining error detection-correction
  • G1(X) G2(X) generates a code with minimum
    distance D2
  • G1(X) generates a code with minimum distance D1 lt
    D2
  • C(X) I(X) G1(X) G2(X) I(X)G1(X)
  • decoding
  • step 1 correct a maximum of ë( D1 1 )/2û
    errors with G1(X)
  • step 2 detect the remaining errors with
    G1(X)G2(X)
  • properties
  • 1. t ë( D1 1 )/2û errors correctable
  • 2. t D2 - 1 - ë( D1 1 )/2û errors
    detectable
  • Homework construct some examples

30
Combining error detection-correction
  • Example
  • n k dmin generator polynomial (octal)
  • 63 57 3 G1 103 (octal)
  • 51 5 G2 x G1 G1 x (127)
  • 45 7 G3 x G2 x G1 G2 x G1 x (147)

31
Example bluetooth
  • Three error correction schemes are defined for
    Bluetooth
  • 1/3 rate FEC, a simple repetition
  • 2/3 rate FEC, a shortened Hamming Code (10,15)
  • ARQ scheme for data (automatic retransmission
    request)
  • FEC schemes reduce the number of retransmissions
  • A CRC code decides whether a packet/header
    contains errors, i.e.
  • transmit C(X) I(X) g(X)
  • receive R(X) C(X) E(X)
  • check R(X) modulo g(X) 0 ?

32
Bookland EAN Symbol
33
Proper codes
Linear block codes do not necessarily obey the
2-(n-k) bound. In other words, a code is proper
if PU is monotonically increasing in p, for 0.0 ?
p ? 0.5. Hamming codes and primitive double
error-correcting BCH codes are proper. To
illustrate the above behavior, we compare the
standard CRC-16 for a length 80 packet with a
double error correcting BCH code of length 81 and
17 redundant digits.
Detection error probability as a function of the
channel error probability.
34
Unidirectional errors detection Berger
codesapplication memory systems
Errors unidirectional, i.e. In a word only from
0 to 1 (or from 1 to 0)
log2 (n1) check bits indicate the of zeros in
the first part
n binary data bits
Example n 7 log2 (n1) 3 1 0 0 0 1 1 1 0
1 1
Suppose errors from 1 to 0 in the first part
only number of zeros does not match check in
the second part only idem dito in the first and
second part the first part gets more
zeros the second part gets
smaller CONCLUSION any number of errors
detectable!
35
Some practical info
INTEL website http//datasheets.chipdb.org/Intel
/x86/Pentium/Embedded20PentiumAE20Processor/ERR
ORDET.PDF
Xilinx website http//www.xilinx.com/support/doc
umentation/application_notes/xapp645.pdf
Altera website http//www.altera.com/literature/
an/an357.pdf
Write a Comment
User Comments (0)
About PowerShow.com