Samosynchronizujący się kod

W teorii kodowania , zwłaszcza w telekomunikacji , kod samosynchronizujący się jest jednoznacznie dekodowalnym kodem , w którym strumień symboli utworzony przez część jednego słowa kodowego lub przez nałożoną część dowolnych dwóch sąsiednich słów kodowych nie jest prawidłowym słowem kodowym . Innymi słowy, zestaw ciągów (zwanych „słowami kodowymi”) nad alfabetem nazywany jest kodem samosynchronizującym się, jeśli dla każdego ciągu otrzymanego przez połączenie dwóch słów kodowych podłańcuch zaczyna się od drugiego symbolu i kończy na przedostatnim symbol nie zawiera żadnego słowa kodowego jako podłańcucha. Każdy samosynchronizujący się kod to a kod prefiksu , ale nie wszystkie kody prefiksu są samosynchronizujące się.

Inne terminy dotyczące kodu samosynchronizującego się to kod zsynchronizowany lub, niejednoznacznie, kod bez przecinków . Kod samosynchronizujący się umożliwia prawidłowe ramkowanie przesyłanych słów kodowych pod warunkiem, że w strumieniu symboli nie występują nieskorygowane błędy ; zewnętrzna synchronizacja nie jest wymagana. Kody samosynchronizujące umożliwiają również odzyskiwanie po nieskorygowanych błędach w strumieniu; w przypadku większości kodów prefiksów nieskorygowany błąd w pojedynczym bicie może propagować błędy dalej w strumieniu i powodować uszkodzenie kolejnych danych .

Znaczenie kodów samosynchronizujących się nie ogranicza się do transmisji danych . Samosynchronizacja ułatwia również niektóre przypadki odzyskiwania danych , na przykład tekstu zakodowanego cyfrowo .

Przykłady

kontrprzykłady:

  • Kod prefiksu { ab , ba } nie jest samosynchronizujący się, ponieważ abab zawiera ba .
  • Kod przedrostka b a (przy użyciu Kleene star ) nie jest samosynchronizujący się (nawet jeśli każde nowe słowo kodowe po prostu zaczyna się po a ), ponieważ słowo kodowe ba zawiera słowo kodowe a .

Zobacz też