Długie sekwencje zer w kodzie AMI
ogranicza składową stałą, gdy jedynki są reprezentowane naprzemiennymi impulsami dodatnimi i ujemnymi. Długa, nieprzerwana sekwencja zer () tworzy stały przedział o napięciu zero.
Odbiornik wykorzystuje przejścia sygnału do zestrojenia zegara z taktowaniem nadajnika. Podczas przedziału o napięciu zero brak przejść może zwiększyć błąd taktowania. HDB3 zastępuje wybrane sekwencje zer impulsami bipolarnymi i zachowuje regułę równoważenia kodu AMI.
HDB3: bipolarny kod wysokiej gęstości z limitem trzech zer
HDB3 jest zmodyfikowanym kodem AMI określonym w zaleceniu ITU-T G.703 dla interfejsu 2048 kbit/s używanego w systemach . Zwykłe jedynki reprezentuje naprzemiennymi impulsami, a sekwencje czterech zer zastępuje określonymi wzorcami. Zalecenie definiuje sygnał jako pseudotrójpoziomowy. Poza blokami zastępczymi zera pozostają zerami, a jedynki przyjmują naprzemiennie polaryzację dodatnią i ujemną.
- Bipolarny kod wysokiej gęstości: Wykorzystuje poziomy +V, 0 i -V oraz reguły zastępowania sekwencji zer.
- Limit trzech zer: Zastąpienie zapobiega wystąpieniu więcej niż trzech kolejnych symboli zero w sygnale wyjściowym.
Poza blokiem czterech zer HDB3 stosuje reguły AMI. Zastąpienie określa wstawiany impuls B oraz naruszenie AMI oznaczane jako V.
Reguły zastępowania w HDB3
Gdy koder napotyka cztery kolejne zera (), zastępuje ten blok jednym z dwóch czteroelementowych wzorców: 000V albo B00V. Czwarty symbol wzorca jest zawsze V, więc dekoder może rozpoznać zastąpienie i odtworzyć cztery zera.
Impulsy B i V
- Impuls V (Violation, naruszenie): Ten impuls niezerowy (+V lub -V) łamie regułę naprzemiennej polaryzacji AMI. Impuls V ma taką samą polaryzację jak bezpośrednio poprzedzający go impuls niezerowy. Dekoder rozpoznaje go jako element zastąpienia sekwencji zer.
- Impuls B (bipolarny): Ten impuls niezerowy (+V lub -V) zastępuje pierwsze zero w sekwencji . Impuls B spełnia regułę naprzemiennej polaryzacji AMI i wpływa na wybór wzorca ograniczającego składową stałą.
Wybór wzorca z ograniczeniem składowej stałej
Koder wybiera 000V albo B00V, aby kolejne impulsy V miały naprzemienną polaryzację. Reguła HDB3 utrzymuje nieparzystą liczbę impulsów B między kolejnymi naruszeniami.
Reguła: Po wcześniejszym impulsie V koder kontroluje parzystość zwykłych impulsów niezerowych przed kolejnym blokiem zer. Nieparzysta liczba wybiera 000V, a parzysta B00V. Pierwszy blok zależy także od początkowego stanu zastępowania kodera. W tym przykładzie przyjęto 000V. Impuls B z bieżącego wzorca sprawia, że liczba impulsów między kolejnymi V pozostaje nieparzysta.
Nieparzysta liczba impulsów
Sekwencja jest zastępowana przez 000V. Impuls V narusza regułę AMI, powtarzając polaryzację ostatniego impulsu niezerowego.
Parzysta liczba impulsów
Sekwencja jest zastępowana przez B00V. Impuls B spełnia regułę AMI, a impuls V powtarza polaryzację impulsu B.
Przykład kodowania HDB3 krok po kroku
Zakodujmy następujący strumień binarny:
- Wejście : Ostatni impuls: brak. Przyjmujemy . Odwrócenie początkowej polaryzacji odwróciłoby wszystkie symbole niezerowe bez zmiany odkodowanych bitów.
Zakodowano:+ - Wejście : Brak zastąpienia.
Zakodowano:+ 0 - Wejście : Ostatni impuls był . Zmieniamy na .
Zakodowano:+ 0 - - Wejście : Pierwsze zastąpienie.
Dla pierwszego bloku przyjmujemy wzorzec , który kończy się symbolem .
Poprzedni impuls niezerowy to .
Naruszenie powtarza jego polaryzację.
Zakodowano:+ 0 - 0 0 0 - - Wejście : Ostatni impuls to o polaryzacji . Zmieniamy na .
Zakodowano:+ 0 - 0 0 0 - + - Wejście : Ostatni impuls był . Zmieniamy na .
Zakodowano:+ 0 - 0 0 0 - + - - Wejście : Kolejne zastąpienie.
Od ostatniego zastąpienia () poprzedni ma ujemną polaryzację, a następnie występują 2 zwykłe impulsy ( i ).
Jest to liczba PARZYSTA.
Wzorzec: użyj . Impuls zmienia polaryzację ostatniego impulsu , dlatego ma znak .
Polaryzacja powtarza , więc ma znak .
Zakodowano:+ 0 - 0 0 0 - + - + 0 0 +
Końcowy zakodowany sygnał: + 0 - 0 0 0 - + - + 0 0 +