Читайте также: |
|
Это блочный разделимый линейный код. Он содержит n информационных и столько же проверочных разрядов. В этом коде проверочные разряды являются простым повторением информационных разрядов первичной комбинации.
Процедура выявления ошибок в принятом кодовом слове заключается в сравнении одноимённых информационных и проверочных разрядов.
Пример: закодировать число 78.
78=64+8+4+2 Þ 1001110 Þ 10011101001110
Избыточность кода:
R=1-n/2n=1/2
Обнаруживает все ошибки нечётной кратности и большинство ошибок чётной кратности.
Инверсный код (код Бауэра).
Блочный разделимый линейный код с повторением с инверсией. Является модификацией предыдущего кода. Содержит n информационных и n проверочных разрядов.
Отличие от предыдущего состоит в том, что значения проверочных разрядов в нём зависят от значения суммы по модулю 2 всех информационных элементов. При чётном кол-ве единиц в исходной кодовой комбинации проверочные разряды просто повторяют информационные, а при нечётном - проверочные разряды повторяют информационные в инвертированном виде.
Для обнаружения ошибок на приёмной стороне в последовательности, состоящей из 2 n разрядов, сначала суммируются единицы, находящиеся в первых n разрядах. Затем, если их количество чётное, оставшиеся n элементов принимаются в позитиве. Обе полученные части кодовой комбинации поэлементно сравниваются. При выявлении хотя бы одного несовпадения вся последовательность бракуется. Если же количество единиц в первых n разрядах нечётное, то оставшиеся n элементов принимаются в негативе (инвертируются). Далее – сравнение.
Такое построение кода позволяет выявить почти все случаи искажения разрядов, кроме четырёх-, восьми-, 12-тикратных (и т.д.) «зеркальных» ошибок.
Пример: закодировать числа 78 и 79.
78=64+8+4+2 Þ 1001110 Þ 10011101001110
79=64+8+4+2+1 Þ 1001111 Þ 10011110110000
Избыточность кода:
R=1-n/2n=1/2
Корреляционный код.
Предусматривает кодирование КАЖДОГО элемента исходной кодовой комбинации. При этом «0» записывается как «01», а «1» как «10».
Приёмное устройство в каждом такте, состоящем из двух соседних элементов корреляционного кода, должно зафиксировать переход 0®1 или 1®0. В случае приёма двух «1» или двух «0» фиксируется ошибка.
Пример: закодировать числа 78 и 79.
78=64+8+4+2 Þ 1001110 Þ 10010110101001
79=64+8+4+2+1 Þ 1001111 Þ 10010110101010
Избыточность кода:
R=1-n/2n=1/2
Код Бергера.
Это наиболее распространённый из несистематических кодов. В этом коде проверочные элементы, записываемые в конце исходной кодовой комбинации – инвертированное представление двоичного числа, которым записывается количество единиц в комбинации k-элементного исходного кода, кодируемого кодом Бергера.
Количество проверочных разрядов r³ log(k+1). Значение r округляется до ближайшего большего целого числа.
Для обнаружения ошибки в декодере выполняется подсчёт количества единиц в информационной части принятого слова. Это число представляется в двоичной форме, инвертируется и сравнивается с проверочной частью принятой кодовой комбинации. В случае расхождения – ошибка.
Код выявляет, в основном, однократные ошибки.
Пример: закодировать числа 78 и 79.
78=64+8+4+2 Þ 1001110 Þ 1001110011
79=64+8+4+2+1 Þ 1001111 Þ 1001111010
Избыточность кода:
R=1-k/n=1-k/(k+r)=r/n
Дата добавления: 2015-11-14; просмотров: 288 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Коды с проверкой на чётность (нечётность). | | | I. Study the vocabulary that is useful to talk about family |