Self-synchronizing code

Not to be confused with self-clocking signal.

In coding theory, especially in telecommunications, a self-synchronizing code[1] is a uniquely decodable code in which the symbol stream formed by a portion of one code word, or by the overlapped portion of any two adjacent code words, is not a valid code word. Put another way, a set of strings (called "code words") over an alphabet is called a self-synchronizing code if for each string obtained by concatenating two code words, the substring starting at the second symbol and ending at the second-last symbol does not contain any code word as substring. Every self-synchronizing code is a prefix code, but not all prefix codes are self-synchronizing.

Other terms for self-synchronizing code are synchronized code[2] or, ambiguously, comma-free code.[3] A self-synchronizing code permits the proper framing of transmitted code words provided that no uncorrected errors occur in the symbol stream; external synchronization is not required. Self-synchronizing codes also allow recovery from uncorrected errors in the stream; with most prefix codes, an uncorrected error in a single bit may propagate errors further in the stream and make the subsequent data corrupted.

Importance of self-synchronizing codes is not limited to data transmission. Self-synchronization also facilitates some cases of data recovery, for example of a digitally encoded text.

Synchronizing word

A code X over an alphabet A has a synchronizing word (aka "syncword") w in A+ if

x w yX * ⇒ {x w, w y} X *.[2]

A prefix code is synchronized if and only if it has a synchronizing word.[4]

Examples

Examples

See also

References

  1. US Federal Standard 1037C
  2. 1 2 Berstel et al (2010) p. 137
  3. Berstel & Perrin (1985) p. 377
  4. 1 2 3 Berstel et al (2010) p. 138


This article is issued from Wikipedia - version of the Sunday, February 07, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.