Wprowadzenie do Kodu AMI
Kod AMI (Alternate Mark Inversion) to rodzaj , który używa trzech poziomów napięcia: dodatniego (+V), zerowego (0) i ujemnego (-V). Nazwa odnosi się do zasady działania. "Mark" to dawny termin telekomunikacyjny oznaczający logiczną '1', a kolejne znaki otrzymują naprzemienną polaryzację. Kod AMI opracowano między innymi w celu ograniczenia składowej stałej obecnej w prostszych kodach, takich jak NRZ. AMI jest też określany jako kod bipolarny. Stosowano go we wczesnych systemach PCM, między innymi w amerykańskim systemie T1.
Zasady Kodowania AMI
Proces kodowania AMI opiera się na dwóch zasadach:
- Logiczne '0' (spacja):Bit '0' jest zawsze reprezentowany przez zerowy poziom napięcia (0V) przez cały czas trwania bitu.
- Logiczne '1' (znak): Bit '1' jest reprezentowany przez niezerowy impuls napięcia (+V lub -V). Polaryzacja impulsu zmienia się naprzemiennie dla kolejnych jedynek. Jeśli ostatnia '1' była zakodowana jako +V, następna musi być zakodowana jako -V i na odwrót. Szerokość impulsu opisuje się względem okresu bitowego , a jej wartość i kształt zależą od interfejsu. W specyfikacji G.703 określa je maska impulsu, dlatego reguła AMI nie oznacza automatycznie kodowania RZ.
Na przykład, dla sekwencji binarnej :
Zakodowany sygnał AMI wyglądałby następująco: .
Zalety i Wady Kodu AMI
Zalety
- Ograniczenie Składowej Stałej: Naprzemienna polaryzacja znaków sprawia, że w idealnym, zrównoważonym przebiegu dodatnie i ujemne impulsy dla bitów '1' znoszą się w parach. Średnia składowa stała dąży wtedy do zera, co ułatwia transmisję przez linie ze sprzężeniem AC. .
- Prosta Detekcja Błędów: W czystym AMI naruszenie zasady naprzemiennej polaryzacji może wskazywać błąd transmisji. Jeśli odbiornik zobaczy dwa kolejne impulsy o tej samej polaryzacji, na przykład +V i +V, wykrywa „naruszenie bipolarne” (bipolar violation). W kodach HDB3 i B8ZS podobne naruszenia są elementem celowej substytucji.
- Właściwości Widmowe: Idealne widmo AMI ma zerową składową przy częstotliwości 0. Położenie głównego maksimum zależy od kształtu impulsu i statystyki danych. Dla typowych impulsów przypada w przybliżeniu w okolicy połowy przepływności bitowej (), a wymagane pasmo zależy od kształtu impulsu.
Główne Ograniczenie
- Utrata Synchronizacji przy Długich Ciągach Zer:Bity '0' są kodowane jako zero woltów, więc długa sekwencja '0' daje płaski sygnał na linii. Brak przejść może uniemożliwić układowi odzyskiwania zegara utrzymanie synchronizacji i zwiększyć ryzyko błędnej interpretacji kolejnych bitów.
Rozwiązanie: Kody Bipolarne Wysokiej Gęstości
Aby ograniczyć problem długich ciągów zer, opracowano zmodyfikowane kody bipolarne. Kody z substytucją zer zachowują właściwości AMI związane ze składową stałą i zwiększają gęstość impulsów potrzebną do synchronizacji.
- HDB3 (High-Density Bipolar 3-zero): Stosowany głównie w europejskim standardzie PCM E1. Kod dopuszcza najwyżej trzy kolejne zera. Gdy pojawia się czwarte zero (), zastępuje się je sekwencją albo . Symbol oznacza naruszenie bipolarne, czyli impuls o tej samej polaryzacji co poprzedni znak, a oznacza zwykły impuls o polaryzacji naprzemiennej. Wybór sekwencji zależy od liczby impulsów B między kolejnymi naruszeniami V. Kolejne impulsy V mają wtedy naprzemienną polaryzację i nie wprowadzają składowej stałej.
- B8ZS (Bipolar with 8-Zero Substitution): Stosowany w północnoamerykańskim standardzie PCM T1. Ten kod rozwiązuje problem, zastępując sekwencję ośmiu kolejnych zer () specjalnym wzorcem naruszenia .