В телекоммуникациях биполярное кодирование — это тип линейного кода с возвратом к нулю (RZ) , где используются два ненулевых значения, так что три значения — это +, − и ноль. Такой сигнал называется дуобинарным сигналом . Стандартные биполярные кодирования разработаны для балансировки по постоянному току , проводя одинаковое количество времени в состояниях + и −.
Причина, по которой биполярное кодирование классифицируется как возврат к нулю (RZ), заключается в том, что когда биполярно кодированный канал находится в состоянии ожидания, линия удерживается на постоянном уровне «ноль», а когда он передает биты, линия находится либо в состоянии +V, либо -V, соответствующем передаваемому двоичному биту. Таким образом, линия всегда возвращается к уровню «ноль», чтобы обозначить факультативно разделение битов или обозначить бездействие линии.
Одним из видов биполярного кодирования является парный код несоответствия , простейшим примером которого является альтернативная инверсия знаков . В этом коде двоичный 0 кодируется как ноль вольт, как в униполярном кодировании , тогда как двоичная 1 кодируется попеременно как положительное напряжение или отрицательное напряжение. Название возникло потому, что в контексте T-носителя двоичная «1» называется «меткой», а двоичный «0» называется «пробелом». [1]
Использование биполярного кода предотвращает значительное накопление постоянного тока , поскольку положительные и отрицательные импульсы в среднем составляют ноль вольт. Малая или нулевая составляющая постоянного тока считается преимуществом, поскольку кабель может затем использоваться на больших расстояниях и для передачи питания для промежуточного оборудования, такого как линейные повторители . [2] Составляющую постоянного тока можно легко и дешево удалить до того, как сигнал достигнет схемы декодирования.
Биполярное кодирование предпочтительнее, чем невозврат к нулю , когда для поддержания синхронизации между передатчиком и приемником требуются переходы сигнала. Другие системы должны синхронизироваться с использованием какой-либо формы внеполосной связи или добавлять последовательности синхронизации кадров , которые не переносят данные в сигнал. Эти альтернативные подходы требуют либо дополнительной среды передачи для тактового сигнала, либо потери производительности из-за накладных расходов, соответственно. Биполярное кодирование часто является хорошим компромиссом: серии единиц не приведут к отсутствию переходов.
Однако длинные последовательности нулей остаются проблемой. Длинные последовательности нулевых битов приводят к отсутствию переходов и потере синхронизации. Если требуются частые переходы, самосинхронизирующееся кодирование, такое как возврат к нулю или какой-либо другой более сложный линейный код , может быть более подходящим, хотя они вносят значительные накладные расходы.
Кодирование широко использовалось в сетях PCM первого поколения и до сих пор широко используется в старом мультиплексном оборудовании, но успешная передача зависит от отсутствия длинных последовательностей нулей. [3] Для обеспечения синхронизации не следует отправлять более 15 последовательных нулей.
Существует два популярных способа гарантировать, что никогда не будет отправлено более 15 последовательных нулей: сигнализация с использованием украденных битов и вставка битов .
T-carrier использует сигнализацию с отнятыми битами: наименее значимый бит байта просто принудительно устанавливается в «1» при необходимости.
Изменение бита 7 приводит к изменению голоса, которое не улавливается человеческим ухом, но это неприемлемое искажение потока данных. Каналы данных должны использовать какую-то другую форму импульсной подстановки, [2] например, всегда устанавливать бит 8 в '1', чтобы поддерживать достаточную плотность единиц. Конечно, это снижает эффективную пропускную способность данных до 56 кбит/с на канал. [4]
Если характеристики входных данных не соответствуют шаблону, что каждый восьмой бит равен '1', кодер, использующий альтернативную инверсию меток, добавляет '1' после семи последовательных нулей для поддержания синхронизации. На стороне декодера эта дополнительная '1', добавленная кодером, удаляется, воссоздавая правильные данные. При использовании этого метода данные, отправленные между кодером и декодером, длиннее исходных данных в среднем менее чем на 1%.
Еще одним преимуществом биполярного кодирования по сравнению с униполярным является обнаружение ошибок . В примере с T-несущей биполярные сигналы регенерируются через регулярные интервалы, так что сигналы, ослабленные расстоянием, не просто усиливаются, но и обнаруживаются и воссоздаются заново. Ослабленные сигналы, искаженные шумом, могут вызывать ошибки, отметку, интерпретируемую как ноль, или ноль как положительную или отрицательную отметку. Каждая однобитовая ошибка приводит к нарушению биполярного правила. Каждое такое биполярное нарушение (BPV) является указанием на ошибку передачи. (Расположение BPV не обязательно является местоположением исходной ошибки).
Для каналов данных, чтобы избежать необходимости всегда устанавливать бит 8 в 1, как описано выше, другие схемы кодирования T1 ( модифицированные коды AMI ) обеспечивают регулярные переходы независимо от передаваемых данных. Таким образом, достигается пропускная способность данных 64 кбит/с на канал. B8ZS — более новый формат для Северной Америки, где HDB3 — исходный тип линейного кодирования, используемый в Европе и Японии.
Очень похожая схема кодирования, с обратными логическими позициями, также используется и часто называется псевдотроичным кодированием . В остальном это кодирование идентично.
B-MAC и, по сути, все члены семейства Multiplexed Analogue Components Television Transmission использовали Duobinary для кодирования цифрового звука, телетекста, субтитров и выборочного доступа для распространения. Благодаря тому, как Duobinary был связан с подсистемами цифрового звука NICAM для семейства MAC, было возможно сокращение данных до 50% в режимах передачи стерео и моно. По крайней мере, с некоторыми системами передачи данных, duobinary может выполнять сокращение данных без потерь, хотя на практике это использовалось редко.