какие коды не относятся к физическому кодированию
Кодирование для чайников, ч.1
Не являясь специалистом в обозначенной области я, тем не менее, прочитал много специализированной литературы для знакомства с предметом и прорываясь через тернии к звёздам набил, на начальных этапах, немало шишек. При всём изобилии информации мне не удалось найти простые статьи о кодировании как таковом, вне рамок специальной литературы (так сказать без формул и с картинками).
Статья, в первой части, является ликбезом по кодированию как таковому с примерами манипуляций с битовыми кодами, а во второй я бы хотел затронуть простейшие способы кодирования изображений.
0. Начало
Давайте рассмотрим некоторые более подробно.
1.1 Речь, мимика, жесты
1.2 Чередующиеся сигналы
В примитивном виде кодирование чередующимися сигналами используется человечеством очень давно. В предыдущем разделе мы сказали про дым и огонь. Если между наблюдателем и источником огня ставить и убирать препятствие, то наблюдателю будет казаться, что он видит чередующиеся сигналы «включено/выключено». Меняя частоту таких включений мы можем выработать последовательность кодов, которая будет однозначно трактоваться принимающей стороной.
1.3 Контекст
2. Кодирование текста
Текст в компьютере является частью 256 символов, для каждого отводится один байт и в качестве кода могут быть использованы значения от 0 до 255. Так как данные в ПК представлены в двоичной системе счисления, то один байт (в значении ноль) равен записи 00000000, а 255 как 11111111. Чтение такого представления числа происходит справа налево, то есть один будет записано как 00000001.
Итак, символов английского алфавита 26 для верхнего и 26 для нижнего регистра, 10 цифр. Так же есть знаки препинания и другие символы, но для экспериментов мы будем использовать только прописные буквы (верхний регистр) и пробел.
Тестовая фраза «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».
2.1 Блочное кодирование
Информация в ПК уже представлена в виде блоков по 8 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:
Сетевые заметки системного администратора
Физическое кодирование
Применяются два основных типа физического кодирования – на основе синусоидального несущего сигнала и на основе последовательности прямоугольных импульсов. Первый способ часто называется также модуляцией или аналоговой модуляцией, подчеркивая тот факт, что кодирование осуществляется за счет изменения параметров аналогового сигнала. Второй способ обычно называют цифровым кодированием. Эти способы отличаются шириной спектра результирующего сигнала и сложностью аппаратуры, необходимой для их реализации.
При цифровом кодировании дискретной информации применяют потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используется только значение потенциала сигнала, а его перепады, формирующие законченные импульсы, во внимание не принимаются. Импульсные коды позволяют представить двоичные данные либо импульсами определенной полярности, частью импульса – перепадом потенциала определенного направления.
При использовании прямоугольных импульсов для передачи дискретной информации необходимо выбрать такой способ кодирования, который одновременно бы достигал нескольких целей:
Более узкий спектр сигналов позволяет на одной и той же линии (с одной и той же полосой пропускания) добиваться более высокой скорости передачи данных. Кроме того, часто к спектру сигнала предъявляется требование отсутствия постоянной составляющей, то есть наличия постоянного тока между передатчиком и приемником. Синхронизация передатчика и приемника нужна для того, чтобы приемник точно знал в какой момент времени необходимо считывать новую информацию с линии связи. В сетях применяются так называемые самосинхронизирующиеся коды, сигналы которых несут для передатчика информации о том, в какой момент времени необходимо осуществить распознавание очередного бита.
Требования, предъявляемые к методам кодирования, являются взаимно противоречивыми, поэтому каждый из рассмотренных ниже методов цифрового кодирования обладает своими преимуществами и своими недостатками по сравнению с другими
На рис. приведены наиболее популярные способы физического кодирования.
Потенциальный код без возвращения к нулю (Non Return to Zero, NRZ)
Метод NRZ прост в реализации, обладает хорошей распознаваемостью ошибок (из-за двух резко отличающихся потенциалов), но не обладает свойством самосинхронизации. При передаче длинной последовательности единиц или нулей сигнал на линии не изменяется, поэтому приемник лишен возможности определять по входному сигналу моменты времени, когда в очередной раз нужно считывать данные. Для синхронизации начала приема пакета используется стартовый служебный бит, например, единица. Самый распространенный протокол RS232, применяемый для соединений через последовательный порт ПК, также использует код NRZ. Передача информации ведется байтами по 8 бит, сопровождаемыми стартовыми и стоповыми битами.
Потенциальный код NRZI (Non Return to Zero Inverted)
Этот код удобен в тех случаях, когда использование третьего уровня сигнала весьма нежелательно, например в оптических кабелях, где устойчиво распознаются два состояния сигнала – свет и темнота. Код NRZI не имеет синхронизации. Это является самым большим его недостатком. Если тактовая частота приемника отличается от частоты передатчика, теряется синхронизация, биты преобразуются, данные теряются. Для синхронизации начала приема пакета используется стартовый служебный бит, например, единица. Наиболее известное применение кода NRZI – стандарт ATM155.
Метод биполярного кодирования с альтернативной инверсией (Bipolar Alternate Mark Inversion, AMI)
В этом методе (рис 1, в) используются три уровня потенциала – отрицательный, нулевой и положительный. Для кодирования логической единицы используется нулевой потенциал, а логическая единица кодируется либо положительным, либо отрицательным потенциалом, при этом потенциал каждой новой единице противоположен потенциалу предыдущей.
Код AMI частично ликвидирует проблемы постоянной составляющей и отсутствия самосинхронизации, присущие коду NRZ. Это происходит при передаче длинных последовательностей единиц. В этих случаях сигнал на линиях представляет собой последовательность разнополярных импульсов с тем же спектром, что и кода NRZ, предающие чередующиеся нули и единицы, то есть без постоянной составляющей.
В целом, для различных комбинаций бит на линии использование кода AMI приводит к более узкому спектру сигнала, чем для кода NRZ, а значит, и к более высокой пропускной способности линии.
Биполярный импульсный код
Кроме потенциальных кодов в сетях используются и импульсные коды, когда данные представлены полным импульсом или же его частью – фронтом. Наиболее простым случаем такого подхода является биполярный импульсный код, в котором единица представлена импульсом одной полярности, а ноль – другой (рис. 1, г). Каждый импульс длится половину такта. Такой подход обладает отличным самосинхронизирующими свойствами, но постоянная составляющая может присутствовать, например, при передаче длинной последовательности единиц или нулей. Кроме того, спектр у него шире, чем у потенциальных кодов.
Манчестерский код (Манчестер II)
Он применяется в технологиях Ethernet и Token Ring. В манчестерском коде для кодирования единиц и нулей используется перепад потенциала, то есть фронт импульса. При манчестерском кодировании каждый такт делится на две части. Информация кодируется перепадами потенциала, происходящими в середине каждого такта. Единица кодируется перепадом от низкого уровня сигнала к высокому, а ноль – обратным перепадом. В начале каждого такта может происходить служебный перепад сигнала, если нужно представить несколько единиц или нулей подряд. Так как сигнал изменяется, по крайней мере, один раз за такт передачи одного бита данных, то манчестерский код обладает хорошими самосинхронизирующими свойствами. Полоса пропускания манчестерского кода уже, чем у биполярного импульсного. У него так же нет постоянной составляющей. Для передачи используется два уровня сигнала. Манчестерский код нашел применение в оптоволоконных и электропроводных сетях.
Код MLT-3
Код (е) трехуровневой передачи MLT-3 (Multi Level Transmission — 3) имеет много общего с кодом NRZ. Важнейшее отличие — три уровня сигнала. Единице соответствует переход с одного уровня сигнала на другой. Изменение уровня сигнала происходит последовательно с учетом предыдущего перехода. Максимальной частоте сигнала соответствует передача последовательности единиц. При передаче нулей сигнал не меняется. Информационные переходы фиксируются на границе битов. Один цикл сигнала вмещает четыре бита. Недостаток кода MLT-3, как и кода NRZ — отсутствие синхронизации. Эту проблему решают с помощью преобразования данных, которое исключает длинные последовательности нулей и возможность рассинхронизации.
Потенциальный код 2B1Q (PAM 5)
На рис 1, ж показан пятиуровневый код, в котором используется 5 уровней амплитуды и двухбитовое кодирование. Это код 2B1Q (или PAM 5), название которого отражает его суть – каждые два бита (2B) передаются за один такт сигналом, имеющем четыре состояния (1Q). Паре бит 00 соответствует потенциал –2,5 В, паре бит 01 соответствует потенциал –0,833 В, паре 11 – потенциал +0,833 В, а паре 10 – потенциал +2,5 В. при этом методе кодирования требуются дополнительные меры по борьбе с длинными последовательностями одинаковых пар бит, так как при этом сигнал превращается в постоянную составляющую. При случайном чередовании бит спектр сигнала в два раза уже, чем у кода NRZ, так как при той же битовой скорости длительность импульса длительность такта увеличивается в два раза. Таким образом, с помощью кода 2B1Q можно по одной и той же линии передавать данные в два раза быстрее, чем с помощью кода AMI или NRZI. Однако при его реализации мощность передатчика должна быть выше, чтобы четыре уровня четко различались приемником на фоне помех. Пятый уровень добавлен для создания избыточности кода, используемого для исправления ошибок. Это дает дополнительный резерв соотношения сигнал / шум 6 дБ.
Нет похожих постов.
Физическое кодирование
Физическое кодирование — способы представления данных в виде электрических или оптических импульсов.
Ни в одной из версий технологии Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 вольт и бита 1 — напряжением +5 вольт, так как такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая станция может интерпретировать её либо как 10000, либо как 01000, так как она не может отличить «отсутствие сигнала» от бита 0. Поэтому принимающей машине необходим способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Кодирование сигнала на физическом уровне позволяет приемнику синхронизироваться с передатчиком по смене напряжения в середине периода битов.
Содержание
Иерархия кодирования
Система кодирования сигналов имеет многоуровневую иерархию.
Физическое кодирование
Логическое кодирование
Вторым уровнем в иерархии кодирования является самый нижний уровень логического кодирования с разными назначениями.
В совокупности физическое кодирование и логическое кодирование образуют систему кодирования самого низшего уровня.
Системы кодирования
Наиболее часто используемые системы кодирования:
Системы с двухуровневым кодированием
Простейший код, обычный цифровой (дискретный) сигнал (может быть преобразован на обратную полярность или изменены уровни соответствующие нулю и единице).
Манчестерский код
Получил наибольшее распространение в сетях с электрическими кабелями. Является самосинхронизирующимся, то есть несущим в себе синхроимпульс. Имеет два уровня. Логическому нулю соответствует положительный переход в центре бита, то есть первая половина битового интервала — низкий уровень, вторая половина — высокий. Логической единице соответствует отрицательный переход в центре бита. Обязательное наличие перехода в центре бита позволяет легко выделить синхросигнал. Допустимое расхождение часов — до 25 %. При передаче цепочки бит из одних нулей или единиц необходима частота в 10 МГц при скорости в 10 Мбит/сек. Важным достоинством манчестерского кода является возможность обеспечить гальваническую развязку с помощью трансформатора, так как у него отсутствует постоянная составляющая.
NRZI — Non Return to Zero Invertive (инверсное кодирование без возврата к нулю). Этот метод является модифицированным методом Non Return to Zero (NRZ), где для представления 1 и 0 используются потенциалы двух уровней. В коде NRZ I также используется 2 потенциала, но его текущее значение зависит от предыдущего. Если текущее значение бита “1”, то полученный потенциал должен быть инверсией от предыдущего, если значение бита “0” — такой же.
Поскольку код незащищен от долгих последовательностей “нулей” или “единиц”, то это может привести к проблемам синхронизации. Поэтому перед передачей, заданную последовательность битов рекомендуется предварительно закодировать кодом предусматривающим скремблирование (скремблер предназначен для придания свойств случайности передаваемой последовательности данных с целью облегчения выделения тактовой частоты приемником). Используется в Fast Ethernet 100Base-FX и 100Base-T4.
Системы с трёхуровневым кодированием
Это трехуровневый код. После значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к нулевому уровню. Переход к нему происходит в середине бита. Логическому нулю при этом соответствует положительный импульс, логической единице — отрицательный. Здесь на 1 бит приходится 2 изменения уровня напряжения, поэтому для скорости в 10 Мбит/сек требуется пропускная способность в 10 МГц.
MLT-3 Multi Level Transmission — 3 (многоуровневая передача) — немного схож с кодом NRZ, но в отличие от последнего имеет три уровня сигнала. Единице соответствует переход с одного уровня сигнала на другой, причем изменение уровня сигнала происходит последовательно с учетом предыдущего перехода. При передаче “нуля” сигнал не меняется.
Этот код, так же как и NRZ нуждается в предварительном кодировании. Используется в Fast Ethernet 100Base-TX.
Виды и способы кодирование данных
Общее
Кодирование на двух нижних каналах характеризует метод представления информации сигналами, которые распространяются по среде транспортировки. Кодирование можно рассматривать как двухступенчатое. И ясно, что на принимающей стороне реализуется симметричное декодирование.
Логическое кодирование данных изменяет поток бит созданного кадра МАС-уровня в последовательность символов, которые подлежат физическому кодированию для транспортировки по каналу связи. Для логического кодирования используют разные схемы:
Таблица 1 — Кодирование 4В/5В
| Входной символ | Выходной символ |
|---|---|
| 0000 (0) | 11110 |
| 0001 (1) | 01001 |
| 0010 (2) | 10100 |
| 0011 (3) | 10101 |
| 0100 (4) | 01010 |
| 0101 (5) | 01011 |
| 0110 (6) | 01110 |
| 0111 (7) | 01111 |
| 1000 (8) | 10010 |
| 1001 (9) | 10011 |
| 1010 (A) | 10110 |
| 1011 (B) | 10111 |
| 1100 (C) | 11010 |
| 1101 (D) | 11011 |
| 1110 (E) | 11100 |
| 1111 (F) | 11101 |
| Служебный символ | Выходной символ |
|---|---|
| Idle | 11111 |
| J | 11000 |
| K | 10001 |
| T | 01101 |
| R | 11001 |
| S | 11001 |
| Quiet | 00000 |
| Halt | 00100 |
Избыточность логического кодирования разрешает облегчить задачи физического кодирования — исключить неудобные битовые последовательности, улучшить спектральные характеристики физического сигнала и др. Физическое/сигнальное кодирование пишет правила представления дискретных символов, результат логического кодирования в результат физические сигналы линии. Физические сигналы могут иметь непрерывную (аналоговую) форму — бесконечное число значений, из которого выбирают допустимое распознаваемое множество. На уровне физических сигналов вместо битовой скорости (бит/с) используют понятие скорость изменения сигнала в линии которая измеряется в бодах (baud). Под таким определением определяют число изменений различных состояний линии за единицу времени. На физическом уровне проходит синхронизация приемника и передатчика. Внешнюю синхронизацию не используют из-за дороговизны реализации еще одного канала. Много схем физического кодирования являются самосинхронизирующимися — они разрешают выделить синхросигнал из принимаемой последовательности состояний канала.
Скремблирование на физическом уровне разрешает подавить очень сильные спектральные характеристики сигнала, размазывая их по некоторой полосе спектра. Очень сильные помеха искажают соседние каналы передачи. При разговоре о физическом кодирировании, возможное использование следующие термины:
Популярные схемы кодирования, которые применяются в локальных сетях
AMI/ABP
MAMI — Modified Alternate Mark Inversion, или же ASI — модифицированная схема AMI, импульсами чередующейся полярности кодируется 0, а 1 — нулевым потенциалом. Применяется в ISDN (S/T — интерфейсы).
B8ZS — Bipolar with 8 Zero Substitution, схема аналогичная AMI, но для синхронизации исключает цепочки 8 и более нулей ( за счет вставки бит).
HDB3 — High Density Bipolar 3, схема аналогичная AMI, но не допускает передачи цепочки более трех нулей. Вместо последовательности из четырех нулей вставляется один из четырех биполярных кодов. (Рис.2)
Манчестерское кодирование
Дифференциальное манчестерское кодирование
Differential manchester encoding — двухфазное полярное/униполярное самосинхронизирующиеся код. Текущий бит узнается по наличию перехода в начале битового интервала (рис. 4.1), например 0 — есть переход (Вертикальный фрагмент), 1 — нет перехода (горизонтальный фрагмент). Можно и наоборот определять 0 и 1.В середине битового интервала переход есть всегда. Он нужен для синхронизации. В Token Ring применяется измененная версия такой схемы, где кроме бит 0 и 1 определенны также два бита j и k (Рис. 4.2). Здесь нет переходов в середине интервала. Бит К имеет переход в начале интервала, а j — нет.
NRZ и NRZI
NRZ — Non-return to zero (без возврата к нулю), биполярная нетранзиктивная схема (состояния меняются на границе), которая имеет 2 варианта. Первый вариант это недифференциальное NRZ (используется в RS-232) состояние напрямую отражает значение бита (рис. 6.а). В другом варианте — дифференциальном, NRZ состояние меняется в начале битового интервала для 1 и не меняется для 0. (рис.6.Б). Привязки 1 и 0 к определенному состоянию нету.
NRZI — Non-return to zero Inverted, измененная схема NRZ (рис. 6.в). Тут состояния изменяются на противоположные в начале битового интервала 0, и не меняются при передаче 1. Возможна и обратная схема представления. Используются в FDDI, 100BaseFX.
RZ — Return to zero (с возвратом к нулю), биполярная транзитивная самосинхронизирующаяся схема. Состояние в определенный момент битового интервала всегда возвращается к нулю. Имеет дифференциальный/недифференциальный варианты. В дифференциальном привязки 1 и 0 к состоянию нету. (рис. 7.а).
FM 0 — Frequency Modulation 0 (частотная модуляция), самосинхронизирующийся полярный код. Меняется на противоположное на границе каждого битового интервала. При передаче 1 в течение битового интервала состояние неизменное. При передаче 0, в середине битового интервала состояние меняется на противоположное. (рис. 8). Используется в LocalTalk.
PAM 5
PAM 5 — Pulse Amplitude Modulation, пятиуровневое биполярное кодирование, где пара бит в зависимости от предыстории оказывается одним из 5 уровней потенциала. Нужен неширокая полоса частот (вдвое ниже битовой скорости). Используется в 1000BaseT.
Здесь пара бит оказывается одним четверичным символом (Quater-nary symbol), где каждому соответствует один из 4 уровней сигнала. В табллице показано представление символов в сети ISDN.
| Биты | Четверичный символ | Уровень, В |
|---|---|---|
| 00 | -3 | -2,5 |
| 01 | -1 | -0,883 |
| 10 | +3 | +2,5 |
| 11 | +1 | +0,883 |
| Двоичный код | S1 | Переход | S2 | Переход | S3 | Переход | S4 | Переход |
|---|---|---|---|---|---|---|---|---|
| 0001 | 0 — + | S1 | 0 — + | S2 | 0 — + | S3 | 0 — + | S4 |
| 0111 | — 0 + | S1 | — 0 + | S2 | — 0 + | S3 | — 0 + | S4 |
| 0100 | — + 0 | S1 | — + 0 | S2 | — + 0 | S3 | — + 0 | S4 |
| 0010 | + — 0 | S1 | + — 0 | S2 | + — 0 | S3 | + — 0 | S4 |
| 1011 | + 0 — | S1 | + 0 — | S2 | + 0 — | S3 | + 0 — | S4 |
| 1110 | 0 + — | S1 | 0 + — | S2 | 0 + — | S3 | 0 + — | S4 |
| 1001 | + — + | S2 | + — + | S3 | + — + | S4 | — — — | S1 |
| 0011 | 0 0 + | S2 | 0 0 + | S3 | 0 0 + | S4 | — — 0 | S2 |
| 1101 | 0 + 0 | S2 | 0 + 0 | S3 | 0 + 0 | S4 | — 0 — | S2 |
| 1000 | + 0 0 | S2 | + 0 0 | S3 | + 0 0 | S4 | 0 — — | S2 |
| 0110 | — + + | S2 | — + + | S3 | — — + | S2 | — — + | S3 |
| 1010 | + + — | S2 | + + — | S3 | + — — | S2 | + — — | S3 |
| 1111 | + + 0 | S3 | 0 0 — | S1 | 0 0 — | S1 | 0 0 — | S3 |
| 0000 | + 0 + | S3 | 0 — 0 | S1 | 0 — 0 | S2 | 0 — 0 | S3 |
| 0101 | 0 + + | S3 | — 0 0 | S1 | — 0 0 | S2 | — 0 0 | S3 |
| 1100 | + + + | S4 | — + — | S1 | — + — | S2 | — + — | S3 |
Схемы, которые не являются самосинхронизирующими, вместе с логическим кодированием и определением фиксированной длительности битовых интервалов разрешают достигать синхронизации. Старт-бит и стоп-бит служат для синхронизации, а контрольный бит вводит избыточность для повышения достоверности приема.





