Top Banner
Coding for the Correction of Synchronization Errors ASJ Helberg CUHK Oct 2010
27

Coding for the Correction of Synchronization Errors

Feb 24, 2016

Download

Documents

elysia

Coding for the Correction of Synchronization Errors. ASJ Helberg CUHK Oct 2010. Content. Background Synchronization errors and their effects Previous approaches Resynchronization Concatenation Error correction Algebraic insertion/deletion correction Single error correcting - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Coding for the Correction of Synchronization Errors

Coding for the Correction of Synchronization Errors

ASJ HelbergCUHK Oct 2010

Page 2: Coding for the Correction of Synchronization Errors

Content

• Background– Synchronization errors and their effects

• Previous approaches– Resynchronization– Concatenation– Error correction

• Algebraic insertion/deletion correction– Single error correcting– Multiple error correcting

• Problems and applications

Page 3: Coding for the Correction of Synchronization Errors

Synchronization errors

• Due to timing or other noise and inaccuracies,• Manifests as the insertion or deletion of symbols• Examples:

– PPM (Pulse position modulation) in optic fibres, – Terabit per square inch magnetic recording– Optic disc recording due to ISI and ITI– Multipath effects in radio

Page 4: Coding for the Correction of Synchronization Errors

Types of Synchronization errors

• Insertion or deletion, excluding additive errors– Additive errors are special case of deletion and

insertion in same position of bits of opposite value

– Repetition/duplication error: copies bit– Bit/peak shift: 01 becomes 10– Bit/peak shift of size a: 0a1 becomes 10a

Page 5: Coding for the Correction of Synchronization Errors

Effects

• A single synchronization error causes a catastrophic burst of additive errors

Tx: 0001010011011110Rx: 0001100001110

• Boundaries of data blocks are unknown to receiver

e.g. 001100 becomes 0000

Page 6: Coding for the Correction of Synchronization Errors

Synchronizable codes

• Comma-free codes• Prefix synchronised codes• Bounded synchronisation delay• Synchronisation with timing• Marker codes

• Corrupted blocks are discarded!!

Page 7: Coding for the Correction of Synchronization Errors

Sync error correcting codes

• Binary Algebraic block codes• Nonbinary and perfect codes• Bursts of sync errors• Weak synchronization errors• Convolutional codes• Expurgated codes (Reed Muller/ LDPC)

Page 8: Coding for the Correction of Synchronization Errors

Binary Algebraic block codes

• Varshamov Tenengoltz construction:

• One asymmetric error

Page 9: Coding for the Correction of Synchronization Errors

Levenshtein codes

With 2n > m >= n + 1, s=1 correcting code

With m >= 2n, s=1 and t=1 correcting code

Partition a=0 was proven to have the maximum cardinality

Largest common subword obtained from two valid codewords is

Page 10: Coding for the Correction of Synchronization Errors

Examplei = 4 3 2 1 ixi ixi  a mod(n+1); x = 0 0 0 0 0 0x = 0 0 0 1 1 1x = 0 0 1 0 2 2x = 0 0 1 1 3 3x = 0 1 0 0 4 4x = 0 1 0 1 4 4x = 0 1 1 0 5 0x = 0 1 1 1 6 1x = 1 0 0 0 4 4x = 1 0 0 1 5 0x = 1 0 1 0 6 1x = 1 0 1 1 7 2x = 1 1 0 0 7 2x = 1 1 0 1 8 3x = 1 1 1 0 9 4x = 1 1 1 1 10 0

Page 11: Coding for the Correction of Synchronization Errors

Hamming distance properties of Levenshtein codes

 • Proposition 1 : A Levenshtein code C has only one code

word of either weight w = 0 or weight w  = 1. • Proposition 2 : In a Levenshtein code there is a minimum

Hamming distance, dmin 2 between any two code words. • Proposition 3 : Code words in a Levenshtein code have a

dmin 4 if they have the same weight. • Proposition 4 : Levenshtein code words that differ in one

unit of weight have dmin 3.

Page 12: Coding for the Correction of Synchronization Errors

Weight distance diagram

2

3

n-2

n-3

dmin = 3

n

dmin = 3dmin = 4

dmin = 4

dmin = 2

dmin = 4

0

dmin = 4

dmin = 2

Page 13: Coding for the Correction of Synchronization Errors

Generalised structure

Proposition 5• Code words of weights w = 0, 1, 2, ..., s do not occur

together in an s ‑ correcting code. Proposition 6• The minimum Hamming distance of an s ‑ insertion/deletion

correcting code is dmin  s + 1. • Again, the proof of propositions 5 and 6, is straight forward

when considering the resulting subwords after s deletions.

Page 14: Coding for the Correction of Synchronization Errors

Proposition 7• Any two number theoretic s ‑ insertion/deletion correcting

code words which differ in weight by i, 0  i  s, have a Hamming distance of d  2(s + 1) ‑ i.

dmin = (w2 ‑ x) + (w1 ‑ x)= w2 + w1 ‑ 2x= w2 + w2 ‑ w ‑ 2x= 2(w2 ‑ x) ‑ w

From Proposition 6, dmin  s + 1 corresponding to number of “1’s” by which w2 differ from w1 i.e. (w2 ‑ x) thus d  2(s + 1) ‑ i

Page 15: Coding for the Correction of Synchronization Errors

Weight-distance diagram

s+1

s+2

n-s+1

n-s+2

dmin = 2s+1

n

dmin = 2s+1

dmin = s+1

0

dmin = 2(s+1)

dmin = s+1

dmin = 2(s+1)

dmin = 2(s+1)

dmin = 2(s+1)

dmin = 2(s+1) - i

Page 16: Coding for the Correction of Synchronization Errors

Bounds for the general algebraic construction

• Lower bound on s correction capability

Page 17: Coding for the Correction of Synchronization Errors

• Upper Bound on correction capability

Page 18: Coding for the Correction of Synchronization Errors

Upper bound on Cardinality

• Hamming type upper bound

Page 19: Coding for the Correction of Synchronization Errors

General algebraic construction

Page 20: Coding for the Correction of Synchronization Errors

Modified Fibonacci

• S=1:• 1, 2, 3, 4, 5, 6, 7, …• S=2• 1, 2, 4, 7, 12, 20, 33, …• S=3:• 1, 2, 4, 8, 14, 23, 38, …• S=4:• 1, 2, 4, 8, 16, 31, 60, …

• Partitioning 2n into , thus in limit, cardinality bounded by

• 2n / m with

(non-empty partitions)

Page 21: Coding for the Correction of Synchronization Errors

Example

v = 7 4 2 1 vx vx  a mod(m); m=12x = 0 0 0 0 0 0x = 0 0 0 1 7 7x = 0 0 1 0 4 4x = 0 0 1 1 11 11x = 0 1 0 0 2 2x = 0 1 0 1 9 9x = 0 1 1 0 6 6x = 0 1 1 1 13 1x = 1 0 0 0 1 1x = 1 0 0 1 8 8x = 1 0 1 0 5 5x = 1 0 1 1 12 0x = 1 1 0 0 3 3x = 1 1 0 1 10 10x = 1 1 1 0 7 7x = 1 1 1 1 14 2

Page 22: Coding for the Correction of Synchronization Errors

Cardinalities

Word length n

s = 2 s = 3 s = 4 s = 5

4 2 2 - -5 2 2 2 -6 3 2 2 27 4 2 2 28 5 3 2 29 6 4 2 210 8 4 3 211 9 5 4 212 11 6 4 313 15 8 4 414 18 8 5 4

Page 23: Coding for the Correction of Synchronization Errors

Problems

• Very low cardinalities• Does not scale well• No decoding algorithm• Codeword boundaries assumed

• Validity not proven in general

Page 24: Coding for the Correction of Synchronization Errors

Cardinality bounds

• Levenshtein

Page 25: Coding for the Correction of Synchronization Errors

Lower bounds on the capacity of the binary deletion channel

A Kirsch and E Drinea, “Directly lower bounding the information capacity for channels with i.i.d. deletions and duplications, IEEE Transactions on Information Theory, vol. 56, no. 1, January 2010, pp 86-102

Page 26: Coding for the Correction of Synchronization Errors

Lower bounds on the capacity of the binary deletion channel

Page 27: Coding for the Correction of Synchronization Errors

Connection with network coding?

• Synchronization in NC environments is assumed• Especially on physical layer NC

• “Pruned/punctured” codes may be useful ?

• Superimposed codes that are also sync error correcting?