Принципы обнаружения и исправления ошибок
Пусть для передачи сообщений используется некоторый код длины и объема . Это означает, что на вход дискретного канала поступает одна из последовательностей , называемая кодовым словом. На приемной стороне наблюдается некоторая выходная последовательность (вектор наблюдений) . Процедуру решения о том, произошла ли ошибка при передаче кодовой последовательности или нет, можно описать следующим алгоритмом. Все множество разбивается на две области и , причем область образована кодовыми последовательностями, а – запрещенными комбинациями. Очевидно, что если наблюдаемая последовательность , полученная в результате трансформации каналом некоторой кодовой комбинации , оказывается в области , то принимается решение об обнаружении ошибок в принятой последовательности. Если же наблюдаемая последовательность окажется в области , то принимается решение о безошибочной передаче информации.
Естественно возникает вопрос о том, а все ли ошибки могут быть обнаружены? Предположим, что алфавит входных и выходных символов одинаков, и его объем равен . Тогда объем кода, а значит и мощность множества , составляют величину , а число запрещенных комбинаций (или мощность множества ) определится как . При передаче по каналу связи M кодовых комбинаций возможны их переходов в принятые наблюдения , из которых только будут правильными, тогда как остальные переходов сопровождаются искажениями. Как уже указывалось, решение об обнаружение ошибок в принятой последовательности принимается всякий раз, когда она оказывается в области . Подобной ситуации отвечают переходов и, значит, общее число обнаруживаемых ошибок составляет величину , что еще раз свидетельствует о возможности обнаружения ошибок только при условии , т.е. при введении избыточных символов. Сравнение же общего количества ошибок с числом обнаруживаемых демонстрирует, что не все ошибки удается зафиксировать. Последнее объясняется тем, что переход одной кодовой комбинации в другую под действием канальных помех невозможно обнаружить, причем общее количество подобных переходов составит величину .
Аналогичным образом реализуется и процедура исправления ошибок. Отличие заключается лишь в том, что все множество разбивается теперь на (по числу передаваемых сообщений) решающих областей , причем и при не пересекаются, а в каждую область решения включается только одна кодовая последовательность. Если оказывается, что вектор наблюдений принадлежит j-й области, т.е. , то принимается решение о том, что было передано слово и, значит, канальные ошибки, вызвавшие трансформацию в , будут исправлены. Поскольку области решений не перекрываются, то общее число исправляемых ошибок определяется числом запрещенных комбинаций, распределяемых между M решающими областями. Следовательно, и, значит, как и в случае обнаружения ошибок, их исправление возможно лишь при , т.е. при введении избыточности.