Kodowanie Liniowe
Przekształcanie danych binarnych w sygnały fizyczne do transmisji (NRZ, RZ, Manchester, AMI, HDB-3).
Dlaczego Potrzebujemy Kodowania Liniowego?
W systemach cyfrowych informacja jest reprezentowana jako abstrakcyjna sekwencja bitów (zer i jedynek). Jednakże, aby przesłać tę informację przez fizyczne medium, takie jak kabel miedziany czy światłowód, te abstrakcyjne bity muszą zostać przekształcone w sygnał fizyczny - na przykład w zmieniające się napięcie lub impuls świetlny. Ten proces konwersji nazywany jest kodowaniem liniowym lub kodowaniem kanałowym.
Proste użycie wysokiego napięcia dla '1' i niskiego/zerowego dla '0' (schemat znany jako NRZ) jest często niewystarczające dla niezawodnej komunikacji z powodu kilku krytycznych problemów. Dobre kody liniowe są projektowane tak, aby przezwyciężyć te wyzwania.
Pożądane Właściwości Kodów Liniowych
Efektywny kod liniowy powinien posiadać kilka kluczowych cech, aby zapewnić solidną i wydajną transmisję danych:
- Minimalizacja Składowej Stałej: Sygnał powinien mieć zerową lub bliską zeru średnią wartość napięcia, czyli być zrównoważony DC. Wiele sieci używa transformatorów lub sprzężenia AC, które blokują trwałą , co prowadzi do zniekształcenia sygnału.
- Samotaktowanie (Self-Synchronization): Kod musi zapewniać częste przejścia (zmiany poziomu sygnału) niezależnie od przesyłanych danych. Odbiornik wykorzystuje te przejścia do wydobycia i utrzymania synchronizacji z nadajnikiem, co jest kluczowe do uniknięcia błędów czasowych.
- Wydajność Pasma: Kod powinien zajmować jak najmniejszą szerokość pasma dla danej przepływności. Niektóre kody, oferując dobrą synchronizację, wymagają dwukrotnie szerszego pasma niż prostsze kody.
- Możliwość Wykrywania Błędów: Niektóre kody posiadają wewnętrzne reguły, dzięki którym pewne sekwencje sygnału są niedozwolone. Jeśli odbiornik wykryje taką sekwencję, wie, że nastąpił błąd transmisji.
- Przezroczystość: Kod musi być w stanie niezawodnie przesłać dowolną sekwencję bitów, w tym długie ciągi samych zer lub samych jedynek, bez utraty synchronizacji lub wprowadzania znaczącej składowej stałej.
Popularne Kody Liniowe
Przyjrzyjmy się kilku kluczowym kodom liniowym, oceniając je pod kątem powyższych właściwości.
NRZ (Non-Return-to-Zero)
Najprostszy kod liniowy, w którym poziom sygnału jest stały przez cały czas trwania bitu.
- Bipolarny NRZ: Logiczne '1' jest reprezentowane przez dodatnie napięcie (), a '0' przez ujemne napięcie ().
- Unipolarny NRZ: Logiczne '1' to dodatnie napięcie (), a '0' to napięcie zerowe ().
Ocena: Prosty i wydajny pasmowo (główny płat widma sięga do ). Cierpi jednak na znaczącą składową stałą (zwłaszcza w wersji unipolarnej) i słabe odzyskiwanie zegara przy długich sekwencjach identycznych bitów, co czyni go zawodnym w wielu systemach.
RZ (Return-to-Zero)
W RZ, '1' jest reprezentowane przez impuls trwający tylko przez połowę okresu bitu, powracający do zera na drugą połowę. '0' jest reprezentowane przez brak impulsu (0V).
Ocena: Obecność prążka widmowego przy częstotliwości zegarowej () znacznie ułatwia synchronizację. Wymaga jednak dwukrotnie szerszego pasma niż NRZ, nadal ma problem ze składową stałą i traci synchronizację przy długich ciągach zer.
AMI (Alternate Mark Inversion)
AMI to kod trójwartościowy (+V, 0, -V) zaprojektowany w celu eliminacji składowej stałej.
- Logiczne '0' jest reprezentowane przez 0V.
- Logiczne '1' („Mark”) są reprezentowane przez naprzemiennie dodatnie () i ujemne () impulsy.
Ocena: Doskonałe zrównoważenie DC niezależnie od treści danych. Jednakże, podobnie jak NRZ, długa sekwencja '0' skutkuje brakiem zmian sygnału, co prowadzi do utraty synchronizacji. To jego główna wada.
HDB3 (High-Density Bipolar - 3 zera)
Inteligentna modyfikacja kodu AMI, szeroko stosowana w europejskich systemach telefonii cyfrowej E1, zaprojektowana specjalnie w celu rozwiązania problemu synchronizacji.
- Działa na tych samych zasadach co AMI.
- Wyjątek: Gdy pojawi się sekwencja czterech kolejnych zer (), jest ona zastępowana specjalną sekwencją zawierającą impuls „naruszenia” (), który łamie zasadę naprzemienności AMI.
- Wybór sekwencji zastępczej ( lub ) jest dokonywany tak, aby utrzymać ogólne zrównoważenie DC. jest standardowym impulsem bipolarnym zgodnym z zasadą naprzemienności.
Ocena: HDB3 skutecznie rozwiązuje problem długich ciągów zer z kodu AMI, gwarantując synchronizację przy jednoczesnym zachowaniu jego doskonałych właściwości zrównoważenia DC.
Kod Manchester
Kod Manchester to kod dwufazowy, w którym każdy okres bitu zawiera przejście sygnału w jego połowie, co skutecznie osadza sygnał zegarowy w strumieniu danych.
- Logiczne '0' może być przejściem z poziomu wysokiego na niski.
- Logiczne '1' może być przejściem z poziomu niskiego na wysoki.
Ocena: Gwarantuje doskonałą synchronizację dzięki przejściu w każdym bicie i nie ma składowej stałej. Jego główną wadą jest niska wydajność pasma, wymagająca dwukrotnie szerszego pasma niż NRZ.