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– Multiple error correcting
• Problems and applications
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
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
Effects
• A single synchronization error causes a
catastrophic burst of additive errorsTx: 0001010011011110Rx: 0001100001110
• Boundaries of data blocks are unknown to
receiver
e.g. 001100 becomes 0000
Synchronizable codes
• Comma-free codes
• Prefix synchronised codes
• Bounded synchronisation delay
• Synchronisation with timing
• Marker codes
• Corrupted blocks are discarded!!
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)
Binary Algebraic block codes
• Varshamov Tenengoltz construction:
• One asymmetric error
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
Example
i = 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
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.
Weight distance diagram
2
3
n-2
n-3
dmin = 3
n
dmin = 3
dmin = 4
dmin = 4
dmin = 2
dmin = 4
0
dmin = 4
dmin = 2
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.
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
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
Bounds for the general algebraic construction
• Lower bound on s correction capability
• Upper Bound on correction capability
Upper bound on Cardinality
• Hamming type upper bound
General algebraic construction
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)
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
Cardinalities
Word length n
s = 2 s = 3 s = 4 s = 5
4 2 2 - -
5 2 2 2 -
6 3 2 2 2
7 4 2 2 2
8 5 3 2 2
9 6 4 2 2
10 8 4 3 2
11 9 5 4 2
12 11 6 4 3
13 15 8 4 4
14 18 8 5 4
Problems
• Very low cardinalities
• Does not scale well
• No decoding algorithm
• Codeword boundaries assumed
• Validity not proven in general
Cardinality bounds
• Levenshtein
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
Lower bounds on the capacity of the binary deletion channel
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?