+ All Categories
Home > Documents > Coding for the Correction of Synchronization Errors

Coding for the Correction of Synchronization Errors

Date post: 24-Feb-2016
Category:
Upload: elysia
View: 80 times
Download: 0 times
Share this document with a friend
Description:
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
27
Coding for the Correction of Synchronization Errors ASJ Helberg CUHK Oct 2010
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?


Recommended