Методы цифрового кодирования
Цифровое кодирование (Digital Encoding), иногда не совсем корректно называемое модуляцией, определяет способ представления битов в физическом канале передачи данных. В этом документе рассмотрены различные варианты цифрового кодирования от простого метода NRZ (Non Return to Zero – без возврата к нулю) до существенно более сложного кодирования HDB3 (High Density Bipolar 3 – биполярное кодирование с высокой плотностью, вариант 3). Документ содержит список требований, предъявляемых к алгоритмам цифрового кодирования, и краткие описания наиболее распространенных методов кодирования цифровых сигналов.
Требования к алгоритмам цифрового кодирования
При кодировании цифровых сигналов должны выполняться перечисленные ниже требования.
-
Малая полоса цифрового сигнала для того, чтобы можно было передать больший объем данных по имеющемуся физическому каналу.
-
Невысокий уровень постоянного напряжения в линии.
-
Достаточно большие перепады напряжения, позволяющие использовать сигнальные импульсы (переходы напряжения) для синхронизации приемника и передатчика без добавления в поток сигналов дополнительной информации.
-
Сигнал должен быть неполяризованным для того, чтобы можно было не обращать внимания на полярность подключения проводников в каждой паре.
Обзор методов цифрового кодирования
NRZ – Non Return to Zero (без возврата к нулю)
В этом варианте кодирования используется следующее представление битов:
-
биты 0 представляются нулевым напряжением (0 В);
-
биты 1 представляются напряжением +V.
Этот метод кодирования является наиболее простым и служит базой для построения более совершенных алгоритмов кодирования. Кодированию по методу NRZ присущ целый ряд недостатков:
-
высокий уровень постоянного напряжения (среднее значение 1/2V для последовательности, содержащей равное число 1 и 0);
-
широкая полоса сигнала (от 0 Гц для последовательности, содержащей только 1 или только 0, до половины скорости передачи данных при чередовании 10101010…);
-
возможность возникновения продолжительных периодов передачи постоянного уровня (длинная последовательность 1 или 0) в результате чего затрудняется синхронизация устройств;
-
сигнал является поляризованным.
RZ – Return to Zero (возврат к нулю)
Цифровые данные представляются следующим образом:
-
биты 0 представляются нулевым напряжением (0 В);
-
биты 1 представляются значением +V в первой половине и нулевым напряжением – во второй, т.е. единице соответствует импульс напряжения продолжительностью в половину длительности передачи одного бита данных.
Этот метод имеет два преимущества по сравнению с кодированием NRZ:
-
средний уровень напряжения в линии составляет ¼ V (вместо ½ V);
-
при передаче непрерывной последовательности 1 сигнал в линии не остается постоянным.
Однако при использовании кодирования RZ полоса сигнала может достигать значений, равных скорости передачи данных (при передаче последовательности 1).
NRZI – Non Return to Zero Invertive (инверсное кодирование без возврата к 0)
Этот метод кодирования использует следующие представления битов цифрового потока:
-
биты 0 представляются нулевым напряжением (0 В);
-
биты 1 представляются напряжением 0 или +V в зависимости от предшествовавшего этому биту напряжения – если предыдущее напряжение было равно 0, единица будет представлена значением +V, а в случаях, когда предыдущий уровень составлял +V для представления единицы будет использовано напряжение 0 В.
Этот алгоритм обеспечивает малую полосу (как при методе NRZ) в сочетании с частыми изменениями напряжения (как в RZ), а кроме того, обеспечивает неполярный сигнал (т. е. проводники в линии можно поменять местами).
AMI – Alternate Mark Inversion (поочередная инверсия единиц)
Этот метод кодирования использует следующие представления битов:
-
биты 0 представляются нулевым напряжением (0 В);
-
биты 1 представляются поочередно значениями +V и -V.
Этот метод подобен алгоритму RZ, но обеспечивает в линии нулевой уровень постоянного напряжения. Недостатком метода AMI является ограничение на «плотность» нулей в потоке данных, поскольку длинные последовательности 0 ведут к потере синхронизации.
HDB3 – High Density Bipolar 3 (биполярное кодирование с высокой плотностью)
Представление битов в методе HDB3 лишь незначительно отличается от представления, используемого алгоритмом AMI. При наличии в потоке данных 4 последовательных битов 0 последовательность изменяется на 000V, где полярность бита V такая же, как для предшествующего ненулевого импульса (в отличие от кодирования битов 1, для которых знак сигнала V изменяется поочередно для каждой единицы в потоке данных).
Этот алгоритм снимает ограничения на плотность 0, присущие кодированию AMI, но порождает взамен новую проблему – в линии появляется отличный от нуля уровень постоянного напряжения за счет того, что полярность отличных от нуля импульсов совпадает. Для решения этой проблемы полярность бита V изменяется по сравнению с полярностью предшествующего бита V. Когда это происходит, битовый поток изменяется на B00V, где полярность бита B совпадает с полярностью бита V. Когда приемник получает бит B, он думает, что этот сигнал соответствует значению 1, но после получения бита V (с такой же полярностью) приемник может корректно трактовать биты B и V как 0.
Метод HDB3 удовлетворяет всем требованиям, предъявляемым к алгоритмам цифрового кодирования, но при использовании этого метода могут возникать некоторые проблемы.
PE – Phase Encode (Manchester, фазовое кодирование, манчестерское кодирование)
При фазовом кодировании используется следующее представление битов:
-
биты 0 представляются напряжением +V в первой половине бита и напряжением -V – во второй половине;
-
биты 1 представляются напряжением -V в первой половине бита и напряжением +V – во второй половине.
Рисунок 6. Манчестерское кодирование.
Этот алгоритм удовлетворяет всем предъявляемым требованиям, но передаваемый в линию сигнал имеет широкую полосу и является поляризованным.
CDP – Conditional Diphase
Этот метод является комбинацией алгоритмов NRZI и PE и использует следующие представления битов цифрового потока:
-
биты 0 представляются переходом напряжения в том же направлении, что и для предшествующего бита (от +V к -V или от -V к +V);
-
биты 1 представляются переходом напряжения в направлении, противоположном предшествующему биту (от +V к -V или от -V к +V).
Этот алгоритм обеспечивает неполярный сигнал, который занимает достаточно широкую полосу.
Заключение
Как вы увидели из приведенных описаний, существует достаточно много алгоритмов кодирования цифровых сигналов. Простейший метод NRZ используется в протоколах на базе интерфейса RS232, в сетях Ethernet применяется кодирование PE, а в телефонии используется алгоритм HDB3 (этот метод служит для кодирования сигналов в потоках E1 и E2). Выбор метода кодирования зависит от полосы канала связи, используемой кабельной системы, скорости передачи данных и других параметров.
Николай Малых