УДК 621.391.1 АЛГОРИТМ ИСПРАВЛЕНИЯ ОШИБОК В КОДАХ

advertisement
УДК 621.391.1
АЛГОРИТМ ИСПРАВЛЕНИЯ ОШИБОК В КОДАХКОМПОЗИЦИЯХ
Е.Л. Онанченко, ст.преп.; Т.А.Протасова, асп.
Комбинаторные коды находят достаточно широкое применение в системах передачи и хранения
информации в случаях, когда от систем передачи требуется повышенная надежность и достоверность [1].
В качестве комбинаторных кодов наиболее часто используются сочетания (комбинации), сочетания с
повторениями, композиции. Рассмотрим способы обнаружения и исправления ошибок в последних.
По определению композицией является последовательность из m целых положительных чисел (цифр),
сумма которых равна Р. Максимальная цифра в композиции q = Р m + 1, где m-число элементов в
последовательности. Проверка на принадлежность заданной (принятой) последовательности к классу
композиций с заданными Р и m должна проводиться по следующим условиям:
1 Каждое число в принятой последовательности не должно превышать значения q, то есть (1  i  q).
2 Число элементов в последовательности равно m.
m
3 Сумма элементов последовательности

i 1
i
 P.
Алгоритм идентификации последовательности как композиции при заданных m и P имеет следующий
вид:
1 Взять первый элемент последовательности.
2 Проверить, что выполняется условие 1  i  q. Если условие не выполняется, то проверяемый элемент
не принадлежит к классу композиций с заданными P и m.
3 Взять следующий элемент. Если номер элемента i  m, то переход к п.2. Если i >m, то число элементов
больше заданного. Ошибка.
m
4 Вычислить сумму элементов последовательности S=   i .
i 1
5 Если S = P , то последовательность является композицией. В противном случае последовательность
содержит ошибку. Останов.
Пример. Для P = 10 и m = 4 определить, принадлежат ли следующие принятые последовательности к
классу композиций: 1124, 3133, 1243, 1117, 12124, 0811. Максимальная цифра в композиции
q=p-m+1=10  4+1=7 . В последней, шестой, последовательности нарушено условие п. 2 для двух
элементов: первого 1 = 0 и второго 2 = 8 > 7. Для остальных последовательностей условие п.2
выполняется. Для пятой последовательности число элементов в ней равно пяти i = 5 >m = 4, поэтому и она
не является композицией. Для первой последовательности сумма цифр в последовательности S = 8 < P,
поэтому данная последовательность также не является композицией. Последовательности 3133, 1243, 1117
удовлетворяют всем условиям, поэтому это композиции при заданных m и Р.
Очевидно, что проверка на принадлежность принятой последовательности к классу композиций с
заданными P и m является алгоритмом обнаружения ошибок.
Однако такое важное свойство композиций, как постоянство суммы ее элементов, может быть
использовано не только для обнаружения ошибок, но и для исправления части из них. Если каким-либо
способом будет выявлен элемент композиции, содержащий ошибку, а также будет известно, что остальные
элементы переданы верно, то ошибочный элемент может быть исправлен путем его замены новым, равным
разности Р и сумме верно переданных элементов:
m
*  P 

i  1,i  i î ø
i
.
(1)
Для контроля правильности передачи каждого элемента последовательности могут быть применены
различные методы, например, контроль по четности, или использован равновесный код.
Например. Если к каждому элементу композиции 1243, которая представляется и передается по каналу
связи в виде последовательности 0001.0010.1000.0011 применить контроль по четности и контрольную
сумму передавать вместе с исходным пакетом, то любая одиночная ошибка, возникшая в пакете будет
обнаружена и исправлена. Передаваемая последовательность теперь имеет вид 00011.00101.10001.00110.
Пусть ей соответствует следующая принятая искаженная кодовая комбинация: 00011.01101.10001.00110 или
1643. Очевидно, что ошибка произошла во втором разряде. Согласно выражения (1) восстанавливаем
значение данного разряда :    10  ( 1  4  3)  2 .
Рассмотренный алгоритм позволяет исправлять в композициях все одиночные ошибки.
Иногда бывает возможно исправить в пакете более одной ошибки. Исправление таких ошибок возможно
благодаря тому, что для некоторых комбинаций достаточно принять верно только один элемент. Например,
для последовательности 1117 достаточно безошибочно принять только четвертую цифру 7, чтобы
восстановить первые три цифры композиции, принятые с ошибками. Так как они могут иметь только
значения, равные 1, производят замену ошибочных цифр исправленными. Соответственно могут быть
исправлены и другие подобные ошибки.
Таким образом, в настоящей статье описан алгоритм обнаружения и исправления ошибок в кодах,
построенных на композициях. Эти алгоритмы отличаются простотой, что позволяет строить на их базе
несложные устройства, отличающиеся высоким быстродействием.
SUMMARY
Combinatory codes based on compositions are under review. The algorithm identifing a code sequence as a composition is proposed. It finds
and correct single and group errors when communicationg data.
СПИСОК ЛИТЕРАТУРЫ
1. Кувырков П.П., Темников Ф.Е. Комбинаторные системы. - М.: Энергия, 1975.
Поступила в редколлегию 17 декабря 1996 г.
Download