Zelf-synchroniserende code - Self-synchronizing code
In coderingstheorie , vooral in de telecommunicatie , een eigen synchronisatiecode is een uniek decodeerbare code waarin het symbool stroom gevormd door een gedeelte van een codewoord of het overlappende gedeelte van elke twee naastgelegen codewoorden, is geen geldig codewoord . Anders gezegd, een reeks strings ('codewoorden' genoemd) boven een alfabet wordt een zelfsynchroniserende code genoemd als voor elke string die wordt verkregen door twee codewoorden samen te voegen, de substring begint bij het tweede symbool en eindigt op het voorlaatste symbool bevat geen codewoord als substring. Elke zelfsynchroniserende code is een prefixcode , maar niet alle prefixcodes synchroniseren zichzelf.
Andere termen voor zelfsynchroniserende code zijn gesynchroniseerde code of, dubbelzinnig, kommavrije code . Een zelfsynchroniserende code maakt de juiste framing van verzonden codewoorden mogelijk, op voorwaarde dat er geen ongecorrigeerde fouten optreden in de symboolstroom ; externe synchronisatie is niet vereist. Zelfsynchroniserende codes maken ook herstel mogelijk van niet-gecorrigeerde fouten in de stream; bij de meeste prefixcodes kan een niet-gecorrigeerde fout in een enkele bit fouten verder in de stroom voortplanten en de daaropvolgende gegevens corrupt maken .
Het belang van zelfsynchroniserende codes is niet beperkt tot datatransmissie . Zelfsynchronisatie vergemakkelijkt ook enkele gevallen van gegevensherstel , bijvoorbeeld van een digitaal gecodeerde tekst .
Voorbeelden
- De prefixcode {00, 11} synchroniseert zichzelf omdat 0, 1, 01 en 10 geen codes zijn.
-
UTF-8 synchroniseert zichzelf omdat de voorloop- (
11xxxxxx) en volg- (10xxxxxx) bytes verschillende bitpatronen hebben. - High-Level Data Link Control (HDLC)
- Geavanceerde controleprocedures voor datacommunicatie (ADCCP)
- Fibonacci-codering
Tegenvoorbeelden:
- De prefixcode { ab , ba } synchroniseert niet zelf omdat abab ba bevat .
- Het voorvoegsel code b * a (met de Kleene ster ) is niet uit zichzelf synchroniseren (hoewel geen nieuwe codewoord gewoon gestart nadat Een a ) omdat codewoord ba bevat codewoord een .
Zie ook
Referenties
- Berstel, Jean; Perrin, Dominique (1985), Theory of Codes , Pure and Applied Mathematics, 117 , Academic Press, Zbl 0.587,68066
- Berstel, Jean; Perrin, Dominique; Reutenauer, Christophe (2010). Codes en automaten . Encyclopedie van de wiskunde en zijn toepassingen. 129 . Cambridge: Cambridge University Press . ISBN 978-0-521-88831-8 Zbl 1.187,94001 .
Dit artikel neemt materiaal uit het publieke domein over van het General Services Administration document: "Federal Standard 1037C" . (ter ondersteuning van MIL-STD-188 )