Примеры построения кода с проверкой на чётность
Пятиразрядный код с двумя единицами и пример семиразрядного кода с тремя единицами
Код С52 | Код С73 | |
1 0 1 0 1 0 0 | ||
0 1 0 1 0 1 0 | ||
1 1 1 0 0 0 0 | ||
0 0 0 0 1 1 1 | ||
1 0 0 1 0 0 1 |
Правильность принятых кодовых комбинаций в кодах определяется путем подсчета количества единиц, и если, например, в коде С52приняты не две единицы, а в коде С73 – не три единицы, то в передаче произошла ошибка.
Код С73может обнаружить все одиночные ошибки, так как при этом в комбинации будет либо две единицы, либо четыре. Кроме того, он позволяет обнаружить часть многократных ошибок (двойные, тройные и т.п.), за исключением случаев, когда одна из единиц переходит в нуль, а один из нулей – в единицу (такое двойное искажение называется смещением). При смещениях искажение также не обнаруживается.
Все сказанное справедливо и для кода С52.
4.6.1.2. Распределительный код
Распределительным называется код Cn1 с одной единицей в кодовой комбинации.Это разновидность кода с постоянным весом, равным единице. В любой кодовой комбинации длиной п содержится только одна единица. Число кодовых комбинаций в распределительном коде
N=Cnl=n.
Кодовые комбинации при n=6 можно записать в виде 000001, 000010, 000100, 001000, 010000, 100000. Сложение по модулю 2двух комбинаций показывает, что они отличаются друг от друга на кодовое расстояние d = 2.
4.6.2. Коды, построенные добавлением контрольных разрядов
Для построения этих кодов также используется двоичный код на все сочетания. Он образует информационную часть полной кодовой комбинации корректирующего кода, к которой добавляются контрольные разряды, формируемые по определённому правилу.
4.6.2.1. Код с проверкой на чётность
Такой код образуется путем добавления к передаваемой комбинации, состоящей из k информационных символов неизбыточного кода, одного контрольного символа т (0 или 1) так, чтобы общее число единиц в передаваемой комбинации было чётным. Таким образом, общее число символов в передаваемой комбинации n = k + 1, так как т=1. Примеры построения кода с проверкой на чётность приведены в табл. 4.10.
В приведённых примерах длина исходной кодовой комбинации k=5, это позволяет передать N=25=32 кодовые комбинации. Хотя приписывание контрольного символа и увеличивает разрядность кода до n=6, число комбинаций корректирующего кода остается прежним. Поэтому общее число информационных комбинаций N = 2n-1.
Таблица 4.10
Информационные символы k | Контрольный символ т | Полная кодовая комбинация n=k + 1 |
1 1 0 1 1 | 1 1 0 1 1 0 | |
1 0 1 0 1 | 1 0 1 0 1 1 | |
0 0 0 1 0 | 0 0 0 1 0 1 | |
1 1 0 0 0 | 1 1 0 0 0 0 | |
1 1 1 1 0 | 1 1 1 1 0 0 | |
1 1 1 1 1 | 1 1 1 1 1 1 |
Таким образом, этот код обладает избыточностью, так как вместо N=26=64 комбинаций можно применять только N=26-1=32 комбинации.
Мера избыточности определяется отношением числа контрольных символов т к длине слова:
И=(n – k)/n=m/n.
Для пятиразрядного кода с проверкой на чётность избыточность
И =1/6. Очевидно, чем длиннее кодовая комбинация, тем меньше избыточность и больше экономичность кода. Добавление контрольного символа увеличивает кодовое расстояние в передаваемых комбинациях от dmin = 1 до dmin = 2.
Декодирование кода заключается в том, что на приёмной стороне производят так называемую проверку на чётность. В принятых комбинациях подсчитывают количество единиц: если оно чётное, считают, что искажений не было. Тогда последний контрольный символ отбрасывают и записывают информационную комбинацию. Очевидно, чётное число искажений такой код обнаружить не может, так как число единиц при этом снова будет чётным. В то же время этот код способен обнаружить не только одиночные, но и тройные, пятерные и т.п. ошибки, т.е. любое возможное нечётное число ошибок, так как сумма единиц в принятой кодовой комбинации становится нечётной.
В случае если велика вероятность появления многократных ошибок, код использовать нецелесообразно.
По изложенному принципу строится код с проверкой на нечётность, который также широко применяется в телемеханике.
4.6.2.2. Код с числом единиц, кратным трём
Этот код образуется добавлением к k информационным символам двух дополнительных контрольных символов (m=2), имеющих такие значения, чтобы сумма единиц, посылаемых в линию кодовых комбинаций, была кратной трем. Примеры комбинации такого кода представлены в табл. 4.11.
Таблица 4.11