Перейти до вмісту

Non-return-to-zero

Матеріал з Вікіпедії — вільної енциклопедії.
Image
Двійковий сигнал кодується за допомогою прямокутної імпульсної модуляції за амплітудою з полярним кодом NRZ(L), або полярним кодом рівня без повернення до нуля.

У телекомунікаціях кодування без повернення до нуля (NRZ) — це лінійний код, у якому двійкові одиниці представлені одним значущим станом, зазвичай додатною напругою, тоді як нулі представлені іншим значущим станом, зазвичай відʼємною напругою, без будь-якого іншого нейтрального стану або стану спокою.

За заданого темпу передавання сигналів(інші мови), тобто бітової швидкості, код NRZ потребує лише половини ширини основної смуги частот, необхідної для манчестерського кодування (ширина в смузі пропускання однакова). Імпульси NRZ мають більшу енергію, ніж у коді Return-to-zero (RZ), який, крім станів, що відповідають одиницям і нулям, також має додатковий стан спокою.

Коли NRZ використовується для представлення даних у схемі асинхронного зв'язку, відсутність нейтрального стану потребує інших механізмів бітової синхронізації, якщо окремий тактовий сигнал недоступний. Оскільки NRZ за своєю природою не є самосинхронізувальним сигналом, необхідно застосовувати додаткову техніку синхронізації, щоб уникнути зісковзування бітів; прикладами таких методів є кодування з обмеженням довжини серії та паралельний сигнал синхронізації.

Варіанти

[ред. | ред. код]

NRZ може позначати будь-який із таких лінійних кодів послідовного перетворювача:

Назва
коду
Інша
назва
Повна назва Опис
NRZ(L) NRZL Рівень без повернення до нуля Виглядає як необроблені двійкові біти без будь-якого кодування. Зазвичай двійкова 1 відповідає високому логічному рівню, а двійковий 0 — низькому логічному рівню. Відображення з використанням інверсної логіки також є типом коду NRZ(L).
NRZ(I) NRZI Інверсний код без повернення до нуля Позначає код NRZ(M) або NRZ(S).
NRZ(M) NRZM Маркерний код без повернення до нуля Відображення послідовного перетворювача {0: без зміни, 1: перемикання}.
NRZ(S) NRZS Код пропуску без повернення до нуля Відображення послідовного перетворювача {0: перемикання, 1: без зміни}.
NRZ(C) NRZC Код зміни без повернення до нуля Кодує 1 як перехід від низького рівня до високого, а 0 — як перехід від високого рівня до низького. Відображення з використанням інверсної логіки також є типом коду NRZ(C).

Код NRZ також можна класифікувати як полярний або неполярний: полярний передбачає відображення на напруги +V і −V, а неполярний — на напруги +V і 0 для відповідних двійкових значень 1 і 0.

Однополярний рівень без повернення до нуля

[ред. | ред. код]
Image
Однополярний NRZ(L), або однополярний рівень без повернення до нуля

Одиниця представлена постійним зміщенням на лінії передавання (традиційно додатним), тоді як нуль представлений відсутністю зміщення — лінія має напругу 0 вольт або заземлена. З цієї причини цей метод також відомий як кодування «все або нічого» (англ. on-off keying). У термінах тактового сигналу одиниця переходить до зміщеного рівня або залишається на ньому на задньому фронті тактового імпульсу попереднього біта, тоді як нуль переходить до відсутності зміщення або залишається в цьому стані на задньому фронті тактового імпульсу попереднього біта. Серед недоліків однополярного NRZ — можливість передавання довгих послідовностей без змін, що ускладнює синхронізацію, хоча ця проблема властива не лише однополярному варіанту. Одним із рішень є заборона передавання байтів без переходів. Важливішими проблемами, притаманними саме однополярному NRZ, є проблеми, пов'язані з наявністю переданого постійного рівня напруги: спектр потужності переданого сигналу не прямує до нуля за нульової частоти. Це призводить до двох суттєвих проблем: по-перше, постійна складова потужності переданого сигналу спричиняє більші втрати потужності, ніж за інших способів кодування; по-друге, наявність постійної складової сигналу вимагає гальванічного зв'язку лінії передавання.

Біполярний рівень без повернення до нуля

[ред. | ред. код]

Одиниця представлена одним фізичним рівнем (зазвичай додатною напругою), тоді як нуль представлений іншим рівнем (зазвичай відʼємною напругою). У термінах тактового сигналу в біполярному NRZ-рівні напруга перемикається з додатної на відʼємну на задньому фронті тактового циклу попереднього біта.

Прикладом є RS-232, де одиниця відповідає напрузі від −12 В до −5 В, а нуль — від +5 В до +12 В.

Кодування пропуску без повернення до нуля

[ред. | ред. код]
Image
Кодування пропуску без повернення до нуля
Image
Кодер NRZS, перемикання на нулі

Одиниця представлена відсутністю зміни фізичного рівня, тоді як нуль представлений зміною фізичного рівня. У термінах тактового сигналу рівень перемикається на задньому фронті тактового імпульсу попереднього біта, щоб представити нуль.

Цей метод перемикання на нулі використовується протоколами HDLC та USB. Обидва протоколи уникають тривалих періодів без переходів (навіть коли дані містять довгі послідовності бітів 1), використовуючи вставлення нульового біта. Передавачі HDLC вставляють біт 0 після 5 послідовних бітів 1 (за винятком випадків передавання роздільника кадру 01111110). Передавачі USB вставляють біт 0 після 6 послідовних бітів 1. Приймач на іншому кінці використовує кожен перехід — як спричинений нульовими бітами даних, так і спричинений цими додатковими нульовими бітами, що не належать до даних, — для підтримання тактової синхронізації. В іншому разі приймач ігнорує ці додаткові нульові біти, що не належать до даних.

Інверсне кодування без повернення до нуля

[ред. | ред. код]
Image
Приклад кодування NRZI: перехід на одиниці
Image
Протилежна домовленість: перехід на нулі
Image
Кодер NRZ-M, перемикання на одиниці

Інверсне кодування без повернення до нуля (NRZI, також відоме як IBM-кодування без повернення до нуля,[1] або IBM-кодування) було розроблене Брайоном Е. Фелпсом (IBM) у 1956 році.[2] Це метод відображення двійкового сигналу у фізичний сигнал для передавання певним середовищем передавання. Дворівневий сигнал NRZI розрізняє біти даних за наявністю або відсутністю переходу на межі тактових інтервалів. Сигнал, закодований NRZI, можна однозначно декодувати після проходження через тракт передавання даних, який не зберігає полярність.

Те, якому значенню біта відповідає перехід, на практиці може відрізнятися; NRZI однаково застосовний до обох варіантів. У магнітних системах зберігання даних зазвичай використовується домовленість NRZ-M, маркерний код без повернення до нуля: логічна 1 кодується переходом, а логічний 0 — відсутністю переходу. Протоколи HDLC і USB використовують протилежну домовленість NRZ-S, код пропуску без повернення до нуля: логічний 0 кодується переходом, а логічна 1 — відсутністю переходу. Жоден із варіантів кодування NRZI не гарантує наявності переходів у закодованому потоці бітів.

Асинхронний приймач використовує незалежний тактовий сигнал бітів, фазу якого синхронізовано шляхом виявлення переходів між бітами. Якщо асинхронний приймач декодує блок бітів, у якому відсутність переходу триває довше за період, що відповідає різниці частот тактових сигналів передавача й приймача, тактовий сигнал бітів декодера або випереджатиме тактовий сигнал кодера на один біт, унаслідок чого до декодованого потоку даних буде вставлено дубльований біт, або відставатиме від нього на один біт, унаслідок чого дубльований біт буде видалено з декодованого потоку даних. Обидва випадки називаються просковзуванням біта (англ. bit slip), що означає зсув фази тактового сигналу на один бітовий інтервал.

Примусове створення переходів з інтервалами, коротшими за період, що відповідає різниці частот тактових сигналів, дає змогу використовувати асинхронний приймач для потоків бітів NRZI. Додаткові переходи неминуче споживають частину пропускної здатності каналу передавання даних. Мінімізація такого споживання пропускної здатності, необхідного для підтримання тактової синхронізації бітів, без збільшення витрат, пов'язаних зі складністю, є проблемою, що має багато можливих розв'язків.

Кодування з обмеженням довжини серії (RLL) використовувалося в пристроях зберігання даних на магнітних дисках і стрічках із застосуванням RLL-кодів із фіксованою швидкістю, які збільшують швидкість передавання даних каналом на відому частку відносно швидкості передавання інформаційних даних. HDLC і USB використовують вставлення бітів: перед кодуванням NRZ-S вставляється додатковий біт 0, щоб примусово створити перехід у закодованій послідовності даних після 5 (HDLC) або 6 (USB) послідовних бітів 1. Вставлення бітів споживає пропускну здатність каналу лише за потреби, але призводить до змінної швидкості передавання інформаційних даних.

Синхронізоване кодування без повернення до нуля

[ред. | ред. код]

Синхронізоване кодування NRZI (SNRZI) і групове кодування під час запису (GCR) є модифікованими формами NRZI.[3] У SNRZI-M кожна 8-бітова група розширюється до 9 бітів шляхом додавання одиниці, щоб вставити перехід для синхронізації.[3]

Порівняння з кодуванням із поверненням до нуля

[ред. | ред. код]

Кодування з поверненням до нуля описує лінійний код, який використовується в телекомунікаціях і за якого сигнал знижується до нуля (повертається до нуля) між кожними двома імпульсами. Це відбувається навіть тоді, коли в сигналі є кілька послідовних нулів або одиниць. Сигнал є самосинхронізувальним. Це означає, що окремий тактовий сигнал не потрібно передавати разом із сигналом, але для досягнення тієї самої швидкості передавання даних, що й у форматі без повернення до нуля, використовується вдвічі ширша смуга пропускання.

Нуль між кожними двома бітами є нейтральним станом або станом спокою, наприклад нульовою амплітудою в імпульсно-амплітудній модуляції (PAM), нульовим фазовим зсувом у фазовій маніпуляції (PSK) або середньою частотою в частотній маніпуляції (FSK). Цей стан нуля зазвичай розташований посередині між значущим станом, що представляє біт 1, та іншим значущим станом, що представляє біт 0.

Хоча кодування з поверненням до нуля передбачає синхронізацію, воно все одно може мати постійну складову, що спричиняє дрейф базового рівня під час довгих послідовностей бітів 0 або 1, так само як і лінійний код без повернення до нуля.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. ↑ {{cite book|title=IBM 729 II, IV, V, VI Magnetic Tape Units|date=1962|page=7|edition=223-6988|url=http://ibm-1401.info/223-6988-729-MagTapeCE-InstRef-62-r.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://ibm-1401.info/223-6988-729-MagTapeCE-InstRef-62-r.pdf |archive-date=2022-10-09<ref name="Vasic_2005_NRZI">Palmer, Dean (2005). Section 1: Recording Systems, 1: A brief history of magnetic recording. У Vasic, Bane; Kurtas, Erozan M. (ред.). Coding and Signal Processing for Magnetic Recording Systems (вид. 1st). CRC Press. с. I-6, I-15. ISBN 0-8493-1524-7.
  2. ↑ US 2774646, Phelps, Bryon E., "Magnetic recording method", published 1956-12-18, assigned to IBM (See also: DE950858C)
  3. 1 2 Patel, Arvind Motibhai (1988). 5. Signal and Error-Control Coding. У Mee, C. Denis; Daniel, Eric D. (ред.). Magnetic Recording. Т. II: Computer Data Storage (вид. 1st). McGraw-Hill Book Company. ISBN 0-07-041272-3.