In coding theory, especially in telecommunications, a self-synchronizing code 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.[1] 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.

Examples

edit

Counterexamples:

  • The prefix code {00, 11} is not self-synchronizing; while 0, 1, 01 and 10 are not codes, 00 and 11 are.
  • The prefix code {ab,ba} is not self-synchronizing because abab contains ba.
  • The prefix code ba (using the Kleene star) is not self-synchronizing (even though any new code word simply starts after a) because code word ba contains code word a.

See also

edit

References

edit
  1. ^ "Self-synchronizing code – Glossary".
  2. ^ Berstel, Jean; Perrin, Dominique; Reutenauer, Christophe (2010). Codes and automata. Encyclopedia of Mathematics and its Applications. Vol. 129. Cambridge, UK: Cambridge University Press. p. 137. ISBN 978-0-521-88831-8. Zbl 1187.94001.
  3. ^ Berstel, Jean; Perrin, Dominique (1985). Theory of Codes. Pure and Applied Mathematics. Vol. 117. Academic Press. p. 377. Zbl 0587.68066.

Further reading

edit

📚 Artikel Terkait di Wikipedia

Comma-free code

codes are also known as self-synchronizing block codes because no synchronization is required to find the beginning of a code word. In the literature, the

Prefix code

Fibonacci coding uses a 11 to mark the end of every code word. Self-synchronizing codes are prefix codes that allow frame synchronization. A suffix code is a

Self-modifying code

In computer science, self-modifying code (SMC or SMoC) is code that alters its own instructions while it is executing – usually to reduce the instruction

Block cipher mode of operation

entire output of the block cipher. In this variation, it is very similar to CBC, turning a block cipher into a self-synchronizing stream cipher. CFB decryption

Stream cipher

are known as self-synchronizing stream ciphers, asynchronous stream ciphers or ciphertext autokey (CTAK). The idea of self-synchronization was patented

Bit slip

rest of the message. Clock drift Deletion channel Erasure code Self-synchronizing code John Everett, ed. (1992). "6.22 Demodulator failure: data bit slips"

MOSQUITO

intentions: Self-synchronizing stream encryption can be performed by using a block cipher in CFB mode. However, for single-bit self-synchronizing stream encryption

Varicode

a self-synchronizing code for use in PSK31. It supports all ASCII characters, but the characters used most frequently in English have shorter codes. The