что такое коррекция опасного действия код

Электронные средства сбора, обработки и отображения информации

Оглавление

Помехоустойчивое кодирование

Понятие корректирующего кода

Теория помехоустойчивого кодирования базируется на результатах исследований, проведенных Клодом Шенноном. Он сформулировал теорему для дискретного канала с шумом: при любой скорости передачи двоичных символов, меньшей, чем пропускная способность канала, существует такой код, при котором вероятность ошибочного декодирования будет сколь угодно мала.

Построение такого кода достигается ценой введения избыточности. То есть, применяя для передачи информации код, у которого используются не все возможные комбинации, а только некоторые из них, можно повысить помехоустойчивость приема. Такие коды называют избыточными или корректирующими. Корректирующие свойства избыточных кодов зависят от правил построения этих кодов и параметров кода (длительности символов, числа разрядов, избыточности и др.).

В настоящее время наибольшее внимание уделяется двоичным равномерным корректирующим кодам. Они обладают хорошими корректирующими свойствами и их реализация сравнительно проста.

Наиболее часто применяются блоковые коды. При использовании блоковых кодов цифровая информация передается в виде отдельных кодовых комбинаций (блоков) равной длины. Кодирование и декодирование каждого блока осуществляется независимо друг от друга, то есть каждой букве сообщения соответствует блок из п символов.

Блоковый код называется равномерным, если п (значность) остается одинаковой для всех букв сообщения.

Различают разделимые и неразделимые блоковые коды.

При кодировании разделимыми кодами кодовые операции состоят из двух разделяющихся частей: информационной и проверочной. Информационные и проверочные разряды во всех кодовых комбинациях разделимого кода занимают одни и те же позиции.

При кодировании неразделимыми кодами разделить символы выходной последовательности на информационные и проверочные невозможно.

Непрерывными называются такие коды, в которых введение избыточных символов в кодируемую последовательность информационных символов осуществляется непрерывно, без разделения ее на независимые блоки. Непрерывные коды также могут быть разделимыми и неразделимыми.

Общие принципы использования избыточности

Способность кода обнаруживать и исправлять ошибки обусловлена наличием избыточных символов. На ввод кодирующего устройства поступает последовательность из k информационных двоичных символов. На выходе ей соответствует последовательность из п двоичных символов, причем n>k. Всего может быть что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодразличных входных последовательностей и что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодразличных выходных последовательностей. Из общего числа что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодвыходных последовательностей только что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодпоследовательностей соответствуют входным. Будем называть их разрешенными кодовыми комбинациями. Остальные ( что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код) возможных выходных последовательностей для передачи не используются. Их будем называть запрещенными кодовыми комбинациями.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодслучаев безошибочной передачи;

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код·(что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код-1) случаев перевода в другие разрешенные комбинации, что соответствует необнаруживаемым ошибкам;

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код·( что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код) случаев перехода в неразрешенные комбинации, которые могут быть обнаружены.

Часть обнаруживаемых ошибочных кодовых комбинаций от общего числа возможных случаев передачи соответствует:

Кобн что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Рассмотрим, например, обнаруживающую способность кода, каждая комбинация которого содержит всего один избыточный символ (п=k+1). Общее число выходных последовательностей составит что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, то есть вдвое больше общего числа кодируемых входных последовательностей. За подмножество разрешенных кодовых комбинаций можно принять, например, подмножество что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодкомбинаций, содержащих четное число единиц (или нулей). При кодировании к каждой последовательности из k информационных символов добавляется один символ (0 или 1), такой, чтобы число единиц в кодовой комбинации было четным. Искажение любого четного числа символов переводит разрешенную кодовую комбинацию в подмножество запрещенных комбинаций, что обнаруживается на приемной стороне по нечетности числа единиц. Часть обнаруженных ошибок составляет:

Кобн что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Пример кодирующего устройства с проверкой на четность показан на рис.

Основные параметры корректирующих кодов

Основными параметрами, характеризующими корректирующие свойства кодов являются избыточность кода, кодовое расстояние, число обнаруживаемых или исправленных ошибок.

Рассмотрим суть этих параметров.

Избыточность корректирующего кода может быть абсолютной и относительной. Под абсолютной избыточностью понимают число вводимых дополнительных разрядов

Относительной избыточностью корректирующего кода называют величину

отн что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодотн.

Эта величина показывает, какую часть общего числа символов кодовой комбинации составляют информационные символы. Ее еще называют относительной скоростью передачи информации.

Если производительность источника равна Н символов в секунду, то скорость передачи после кодирования этой информации будет равна

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

поскольку в последовательности из п символов только k информационных.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Если число ошибок, которое нужно обнаружить или исправить, значительно, необходимо иметь код с большим числом проверочных символов. Скорость передачи информации при этом будет уменьшена, так как появляется временная задержка информации. Она тем больше, чем сложнее кодирование.

Кодовое расстояние характеризует cтепень различия любых двух кодовых комбинаций. Оно выражается числом символов, которыми комбинации отличаются одна от другой.

Чтобы получить кодовое расстояние между двумя комбинациями двоичного кода, достаточно подсчитать число единиц в сумме этих комбинаций по модулю 2.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Кодовое расстояние может быть различным. Так, в первичном натуральном безызбыточном коде это расстояние для различных комбинаций может различаться от единицы до п, равной значности кода.

Число обнаруживаемых ошибок определяется минимальным расстоянием что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодмежду кодовыми комбинациями. Это расстояние называется хэмминговым.

В безызбыточном коде все комбинации являются разрешенными, что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=1. Достаточно только исказиться одному символу, и будет ошибка в сообщении.

Теорема. Чтобы код обладал свойствами обнаруживать одиночные ошибки, необходимо ввести избыточность, которая обеспечивала бы минимальное расстояние между любыми двумя разрешенными комбинациями не менее двух.

Доказательство. Возьмем значность кода п=3. Возможные комбинации натурального кода образуют следующее множество: 000, 001, 010, 011, 100, 101, 110, 111. Любая одиночная ошибка трансформирует данную комбинацию в другую разрешенную комбинацию. Ошибки здесь не обнаруживаются и не исправляются, так как что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=1. Если что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=2, то ни одна из разрешенных кодовых комбинаций при одиночной ошибке не переходит в другую разрешенную комбинацию.

Пусть подмножество разрешенных комбинаций образовано по принципу четности числа единиц. Тогда подмножества разрешенных и запрещенных комбинаций будут такие:

Очевидно, что искажение помехой одного разряда (одиночная ошибка) приводит к переходу комбинации в подмножество запрещенных комбинаций. То есть этот код обнаруживает все одиночные ошибки.

В общем случае при необходимости обнаруживать ошибки кратности что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— минимальное хэммингово расстояние должно быть, по крайней мере, на единицу больше что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, то есть

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код+1.

В этом случае никакая ошибка кратности что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодне в состоянии перевести одну разрешенную комбинацию в другую.

Ошибки можно не только обнаруживать, но и исправлять.

Теорема. Для исправления одиночной ошибки каждой разрешенной кодовой комбинации необходимо сопоставить подмножество запрещенных кодовых комбинаций. Чтобы эти подмножества не пересекались, хэммингово расстояние должно быть не менее трех.

Доказательство. Пусть, как и в предыдущем примере, п=3. Примем разрешенные комбинации 000 и 111 (кодовое расстояние между ними равно 3). Разрешенной комбинации 000 поставим в соответствие подмножество запрещенных комбинаций 001, 010, 100. Эти запрещенные комбинации образуются в результате возникновения единичной ошибки в комбинации 000.

Аналогично разрешенной комбинации 111 необходимо поставить в соответствие подмножество запрещенных комбинаций 110, 011, 101. Если сопоставить эти подмножества запрещенных комбинаций, то очевидно, что они не пересекаются:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

В общем случае исправляемые ошибки кратности что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодсвязаны с кодовым расстоянием соотношением

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=2что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код+1. (2.1)

где что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— сочетание из п элементов по t (число возможных ошибок кратности t на длине п-разрядной комбинации).

Если, например, п=7, что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=1, то из (2.1)

Нужно отметить, что каждый конкретный корректирующий код не гарантирует исправления любой комбинации ошибок. Коды предназначены для исправления комбинаций ошибок, наиболее вероятных для заданного канала связи.

Групповой код с проверкой на четность

Недостатком кода с четным числом единиц является необнаружение четных групповых ошибок. Этого недостатка лишены коды с проверкой на четность, где комбинации разбиваются на части, из них формируется матрица, состоящая из некоторого числа строк и столбцов:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Строки образуются последовательно по мере поступления символов исходного кода. Затем после формирования т строк матрицы производится проверка на четность ее столбцов и образуются контрольные символы что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Контрольные символы образуются путем суммирования по модулю 2 информационных символов, расположенных в столбце:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

При таком кодировании четные групповые ошибки обнаруживаются. Не обнаруживаются лишь такие ошибки, при которых искажено четное число символов в столбце.

Можно повысить обнаруживающую способность кода путем одновременной проверки на четность по столбцам и строкам или столбцам и диагоналям (поперечная и диагональная проверка).

Если проверка проводится по строкам и столбцам, то код называется матричным.

Проверочные символы располагаются следующим образом:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код;

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

В этом случае не обнаруживаются только ошибки четной кратности с кратностью 4, 8, 16 и т.д., при которых происходит искажение символов с попарно одинаковыми индексами строк столбцов. Наименьшая избыточность кода получается в том случае, когда образуемая матрица является квадратной.

Недостатком такого кода является необходимость внесения задержки в передачу информации на время, необходимое для формирования матрицы.

Матричный код позволяет исправлять одиночные ошибки. Ошибочный элемент находится на пересечении строки и столбца, в которых имеется нарушение четности.

Коды с постоянным весом

Весом называется число единиц, содержащихся в кодовых комбинациях.

В коде «3 из 7» возможных комбинаций сто двадцать восемь (что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код=128), а разрешенных кода только тридцать пять. Относительная избыточность отн = 0,28.

Схема устройства определения веса комбинаций кода «3 из 7» приведена на рис. 2.6.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Циклические коды

Циклические коды характеризуются тем, что при циклической перестановке всех символов кодовой комбинации данного кода образуется другая кодовая комбинация этого же кода.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— комбинация циклического кода;

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— также комбинация циклического кода.

Например, комбинация 1001111 (п=7) будет представлена многочленом

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

При таком представлении действия над кодовыми комбинациями сводятся к действиям над многочленами. Эти действия производятся в соответствии с обычной алгебры, за исключением того, что приведение подобных членов осуществляется по модулю 2.

Обнаружение ошибок при помощи циклического кода обеспечивается тем, что в качестве разрешенных комбинаций выбираются такие, которые делятся без остатка на некоторый заранее выбранный полином G(x). Если принятая комбинация содержит искаженные символы, то деление на полином G(x) осуществляется с остатком. При этом формируется сигнал, свидетельствующий об ошибке. Полином G(x) называется образующим.

Построение комбинаций циклического кода возможно путем умножения исходной комбинации А(х) на образующий полином G(x) с приведением подобных членов по модулю 2:

Таким образом, все полиномы, отображающие комбинации циклического кода, будут иметь степень ниже п.

Часто в качестве полинома, на который осуществляется деление, берется полином G(x)=что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код+1. При таком формировании кодовых комбинаций позиции информационных и контрольных символов заранее определить нельзя.

Большим преимуществом циклических кодов является простота построения кодирующих и декодирующих устройств, которые по своей структуре представляют регистры сдвига с обратными связями.

Число разрядов регистра выбирается равным степени образующего полинома.

Обратная связь осуществляется с выхода регистра на некоторые разряды через сумматоры, число которых выбирается на единицу меньше количества ненулевых членов образующего полинома. Сумматоры устанавливаются на входах тех разрядов регистра, которым соответствуют ненулевые члены образующего полинома.

На рис. 2.7 приведена схема кодирующего регистра для преобразования четырехразрядной комбинации в семиразрядную.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

В табл. 2.3 показано, как путем сдвигов исходной комбинации 0101 получается комбинация циклического кода 1010011. п=7, k=4. Комбинация 0101, ключ в положении 1. В течение первых четырех тактов регистр будет заполнен, затем ключ переводится в положение 2. Обратная связь замыкается. Под действием семи сдвигающих тактов проходит формирование семиразрядного циклического кода.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Свойства циклического кода:

1) циклический код обнаруживает все одиночные ошибки, если образующий полином содержит более одного члена. Если G(x)=x+1, то код обнаруживает одиночные ошибки и все нечетные;

2) циклический код с G(x)=(x+1)G(x) обнаруживает все одиночные, двойные и тройные ошибки;

Источник

Корректирующие коды «на пальцах»

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодКорректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам.

Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.

Давайте же разберёмся, что это такое.

Для понимания статьи не нужны никакие специальные знания. Достаточно лишь понимать, что такое вектор и матрица, как они перемножаются и как с их помощью записать систему линейных уравнений.

Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.

Каналы с ошибкой

Разберёмся сперва, откуда вообще берутся ошибки, которые мы собираемся исправлять. Перед нами стоит следующая задача. Нужно передать несколько блоков данных, каждый из которых кодируется цепочкой двоичных цифр. Получившаяся последовательность нулей и единиц передаётся через канал связи. Но так сложилось, что реальные каналы связи часто подвержены ошибкам. Вообще говоря, ошибки могут быть разных видов — может появиться лишняя цифра или какая-то пропасть. Но мы будем рассматривать только ситуации, когда в канале возможны лишь замены нуля на единицу и наоборот. Причём опять же для простоты будем считать такие замены равновероятными.

Ошибка — это маловероятное событие (а иначе зачем нам такой канал вообще, где одни ошибки?), а значит, вероятность двух ошибок меньше, а трёх уже совсем мала. Мы можем выбрать для себя некоторую приемлемую величину вероятности, очертив границу «это уж точно невозможно». Это позволит нам сказать, что в канале возможно не более, чем что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодошибок. Это будет характеристикой канала связи.

Для простоты введём следующие обозначения. Пусть данные, которые мы хотим передавать, — это двоичные последовательности фиксированной длины. Чтобы не запутаться в нулях и единицах, будем иногда обозначать их заглавными латинскими буквами (что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, …). Что именно передавать, в общем-то неважно, просто с буквами в первое время будет проще работать.

Кодирование и декодирование будем обозначать прямой стрелкой (что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код), а передачу по каналу связи — волнистой стрелкой (что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код). Ошибки при передаче будем подчёркивать.

Например, пусть мы хотим передавать только сообщения что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. В простейшем случае их можно закодировать нулём и единицей (сюрприз!):

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Передача по каналу, в котором возникла ошибка будет записана так:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Цепочки нулей и единиц, которыми мы кодируем буквы, будем называть кодовыми словами. В данном простом случае кодовые слова — это что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Код с утроением

Давайте попробуем построить какой-то корректирующий код. Что мы обычно делаем, когда кто-то нас не расслышал? Повторяем дважды:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Правда, это нам не очень поможет. В самом деле, рассмотрим канал с одной возможной ошибкой:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Какие выводы мы можем сделать, когда получили что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код? Понятно, что раз у нас не две одинаковые цифры, то была ошибка, но вот в каком разряде? Может, в первом, и была передана буква что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. А может, во втором, и была передана что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

То есть, получившийся код обнаруживает, но не исправляет ошибки. Ну, тоже неплохо, в общем-то. Но мы пойдём дальше и будем теперь утраивать цифры.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Получили что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Тут у нас есть две возможности: либо это что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди было две ошибки (в крайних цифрах), либо это что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди была одна ошибка. Вообще, вероятность одной ошибки выше вероятности двух ошибок, так что самым правдоподобным будет предположение о том, что передавалась именно буква что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Хотя правдоподобное — не значит истинное, поэтому рядом и стоит вопросительный знак.

Если в канале связи возможна максимум одна ошибка, то первое предположение о двух ошибках становится невозможным и остаётся только один вариант — передавалась буква что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Про такой код говорят, что он исправляет одну ошибку. Две он тоже обнаружит, но исправит уже неверно.

Это, конечно, самый простой код. Кодировать легко, да и декодировать тоже. Ноликов больше — значит передавался ноль, единичек — значит единица.

Если немного подумать, то можно предложить код исправляющий две ошибки. Это будет код, в котором мы повторяем одиночный бит 5 раз.

Расстояния между кодами

Рассмотрим поподробнее код с утроением. Итак, мы получили работающий код, который исправляет одиночную ошибку. Но за всё хорошее надо платить: он кодирует один бит тремя. Не очень-то и эффективно.

И вообще, почему этот код работает? Почему нужно именно утраивать для устранения одной ошибки? Наверняка это всё неспроста.

Давайте подумаем, как этот код работает. Интуитивно всё понятно. Нолики и единички — это две непохожие последовательности. Так как они достаточно длинные, то одиночная ошибка не сильно портит их вид.

Пусть мы передавали что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, а получили что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Видно, что эта цепочка больше похожа на исходные что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, чем на что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. А так как других кодовых слов у нас нет, то и выбор очевиден.

Но что значит «больше похоже»? А всё просто! Чем больше символов у двух цепочек совпадает, тем больше их схожесть. Если почти все символы отличаются, то цепочки «далеки» друг от друга.

Можно ввести некоторую величину что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, равную количеству различающихся цифр в соответствующих разрядах цепочек что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Эту величину называют расстоянием Хэмминга. Чем больше это расстояние, тем меньше похожи две цепочки.

Например, что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, так как все цифры в соответствующих позициях равны, а вот что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Расстояние Хэмминга называют расстоянием неспроста. Ведь в самом деле, что такое расстояние? Это какая-то характеристика, указывающая на близость двух точек, и для которой верны утверждения:

Достаточно разумные требования.

Математически это можно записать так (нам это не пригодится, просто ради интереса посмотрим):

Предлагаю читателю самому убедиться, что для расстояния Хэмминга эти свойства выполняются.

Окрестности

Таким образом, разные цепочки мы считаем точками в каком-то воображаемом пространстве, и теперь мы умеем находить расстояния между ними. Правда, если попытаться сколько нибудь длинные цепочки расставить на листе бумаги так, чтобы расстояния Хэмминга совпадали с расстояниями на плоскости, мы можем потерпеть неудачу. Но не нужно переживать. Всё же это особое пространство со своими законами. А слова вроде «расстояния» лишь помогают нам рассуждать.

Пойдём дальше. Раз мы заговорили о расстоянии, то можно ввести такое понятие как окрестность. Как известно, окрестность какой-то точки — это шар определённого радиуса с центром в ней. Шар? Какие ещё шары! Мы же о кодах говорим.

Но всё просто. Ведь что такое шар? Это множество всех точек, которые находятся от данной не дальше, чем некоторое расстояние, называемое радиусом. Точки у нас есть, расстояние у нас есть, теперь есть и шары.

Так, скажем, окрестность кодового слова что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодрадиуса 1 — это все коды, находящиеся на расстоянии не больше, чем 1 от него, то есть отличающиеся не больше, чем в одном разряде. То есть это коды:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Да, вот так странно выглядят шары в пространстве кодов.

А теперь посмотрите. Это же все возможные коды, которые мы получим в канале в одной ошибкой, если отправим что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код! Это следует прямо из определения окрестности. Ведь каждая ошибка заставляет цепочку измениться только в одном разряде, а значит удаляет её на расстояние 1 от исходного сообщения.

Аналогично, если в канале возможны две ошибки, то отправив некоторое сообщение что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, мы получим один из кодов, который принадлежит окрестности что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодрадиусом 2.

Тогда всю нашу систему декодирования можно построить так. Мы получаем какую-то цепочку нулей и единиц (точку в нашей новой терминологии) и смотрим, в окрестность какого кодового слова она попадает.

Сколько ошибок может исправить код?

Чтобы код мог исправлять больше ошибок, окрестности должны быть как можно шире. С другой стороны, они не должны пересекаться. Иначе если точка попадёт в область пересечения, непонятно будет, к какой окрестности её отнести.

В коде с удвоением между кодовыми словами что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодрасстояние равно 2 (оба разряда различаются). А значит, если мы построим вокруг них шары радиуса 1, то они будут касаться. Это значит, точка касания будет принадлежать обоим шарам и непонятно будет, к какому из них её отнести.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Именно это мы и получали. Мы видели, что есть ошибка, но не могли её исправить.

Что интересно, точек касания в нашем странном пространстве у шаров две — это коды что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Расстояния от них до центров равны единице. Конечно же, в обычно геометрии такое невозможно, поэтому рисунки — это просто условность для более удобного рассуждения.

В случае кода с утроением, между шарами будет зазор.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Минимальный зазор между шарами равен 1, так как у нас расстояния всегда целые (ну не могут же две цепочки отличаться в полутора разрядах).

В общем случае получаем следующее.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Этот очевидный результат на самом деле очень важен. Он означает, что код с минимальным кодовым расстоянием что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодбудет успешно работать в канале с что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодошибками, если выполняется соотношение

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Полученное равенство позволяет легко определить, сколько ошибок будет исправлять тот или иной код. А сколько код ошибок может обнаружить? Рассуждения такие же. Код обнаруживает что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодошибок, если в результате не получится другое кодовое слово. То есть, кодовые слова не должны находиться в окрестностях радиуса что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коддругих кодовых слов. Математически это записывается так:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Рассмотрим пример. Пусть мы кодируем 4 буквы следующим образом.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Чтобы найти минимальное расстояние между различными кодовыми словами, построим таблицу попарных расстояний.

ABCD
A334
B343
C343
D433

Минимальное расстояние что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, а значит что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, откуда получаем, что такой код может исправить до что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодошибок. Обнаруживает же он две ошибки.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Чтобы декодировать полученное сообщение, посмотрим, к какому символу оно ближе всего.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Минимальное расстояние получилось для символа что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, значит вероятнее всего передавался именно он:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Итак, этот код исправляет одну ошибку, как и код с утроением. Но он более эффективен, так как в отличие от кода с утроением здесь кодируется уже 4 символа.

Таким образом, основная проблема при построении такого рода кодов — так расположить кодовые слова, чтобы они были как можно дальше друг от друга, и их было побольше.

Для декодирования можно было бы использовать таблицу, в которой указывались бы все возможные принимаемые сообщения, и кодовые слова, которым они соответствуют. Но такая таблица получилась бы очень большой. Даже для нашего маленького кода, который выдаёт 5 двоичных цифр, получилось бы что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодварианта возможных принимаемых сообщений. Для более сложных кодов таблица будет значительно больше.

Попробуем придумать способ коррекции сообщения без таблиц. Мы всегда сможем найти полезное применение освободившейся памяти.

Интерлюдия: поле GF(2)

Для изложения дальнейшего материала нам потребуются матрицы. А при умножении матриц, как известно мы складываем и перемножаем числа. И тут есть проблема. Если с умножением всё более-менее хорошо, то как быть со сложением? Из-за того, что мы работаем только с одиночными двоичными цифрами, непонятно, как сложить 1 и 1, чтобы снова получилась одна двоичная цифра. Значит вместо классического сложения нужно использовать какое-то другое.

Введём операцию сложения как сложение по модулю 2 (хорошо известный программистам XOR):

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Умножение будем выполнять как обычно. Эти операции на самом деле введены не абы как, а чтобы получилась система, которая в математике называется полем. Поле — это просто множество (в нашем случае из 0 и 1), на котором так определены сложение и умножение, чтобы основные алгебраические законы сохранялись. Например, чтобы основные идеи, касающиеся матриц и систем уравнений по-прежнему были верны. А вычитание и деление мы можем ввести как обратные операции.

Множество из двух элементов что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодс операциями, введёнными так, как мы это сделали, называется полем Галуа GF(2). GF — это Galois field, а 2 — количество элементов.

У сложения есть несколько очень полезных свойств, которыми мы будем пользоваться в дальнейшем.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Это свойство прямо следует из определения.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

А в этом можно убедиться, прибавив что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодк обеим частям равенства. Это свойство, в частности означает, что мы можем переносить в уравнении слагаемые в другую сторону без смены знака.

Проверяем корректность

Вернёмся к коду с утроением.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Для начала просто решим задачу проверки, были ли вообще ошибки при передаче. Как видно, из самого кода, принятое сообщение будет кодовым словом только тогда, когда все три цифры равны между собой.

Пусть мы приняли вектор-строку что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодиз трёх цифр. (Стрелочки над векторами рисовать не будем, так как у нас почти всё — это вектора или матрицы.)

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Математически равенство всех трёх цифр можно записать как систему:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Или, если воспользоваться свойствами сложения в GF(2), получаем

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

В матричном виде эта система будет иметь вид

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Транспонирование здесь нужно потому, что что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— это вектор-строка, а не вектор-столбец. Иначе мы не могли бы умножать его справа на матрицу.

Будем называть матрицу что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодпроверочной матрицей. Если полученное сообщение — это корректное кодовое слово (то есть, ошибки при передаче не было), то произведение проверочной матрицы на это сообщение будет равно нулевому вектору.

Умножение на матрицу — это гораздо более эффективно, чем поиск в таблице, но у нас на самом деле есть ещё одна таблица — это таблица кодирования. Попробуем от неё избавиться.

Кодирование

Итак, у нас есть система для проверки

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Её решения — это кодовые слова. Собственно, мы систему и строили на основе кодовых слов. Попробуем теперь решить обратную задачу. По системе (или, что то же самое, по матрице что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код) найдём кодовые слова.

Правда, для нашей системы мы уже знаем ответ, поэтому, чтобы было интересно, возьмём другую матрицу:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Соответствующая система имеет вид:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Чтобы найти кодовые слова соответствующего кода нужно её решить.

В силу линейности сумма двух решений системы тоже будет решением системы. Это легко доказать. Если что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия коди что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код— решения системы, то для их суммы верно

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

что означает, что она тоже — решение.

Поэтому если мы найдём все линейно независимые решения, то с их помощью можно получить вообще все решения системы. Для этого просто нужно найти их всевозможные суммы.

Выразим сперва все зависимые слагаемые. Их столько же, сколько и уравнений. Выражать надо так, чтобы справа были только независимые. Проще всего выразить что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код.

Если бы нам не так повезло с системой, то нужно было бы складывая уравнения между собой получить такую систему, чтобы какие-то три переменные встречались по одному разу. Ну, или воспользоваться методом Гаусса. Для GF(2) он тоже работает.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Чтобы получить все линейно независимые решения, приравниваем каждую из зависимых переменных к единице по очереди.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Всевозможные суммы этих независимых решений (а именно они и будут кодовыми векторами) можно получить так:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

где что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодравны либо нулю или единице. Так как таких коэффициентов два, то всего возможно что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодсочетания.

Но посмотрите! Формула, которую мы только что получили — это же снова умножение матрицы на вектор.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Строчки здесь — линейно независимые решения, которые мы получили. Матрица что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодназывается порождающей. Теперь вместо того, чтобы сами составлять таблицу кодирования, мы можем получать кодовые слова простым умножением на матрицу:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Найдём кодовые слова для этого кода. (Не забываем, что длина исходных сообщений должна быть равна 2 — это количество найденных решений.)

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Итак, у нас есть готовый код, обнаруживающий ошибки. Проверим его в деле. Пусть мы хотим отправить 01 и у нас произошла ошибка при передаче. Обнаружит ли её код?

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

А раз в результате не нулевой вектор, значит код заподозрил неладное. Провести его не удалось. Ура, код работает!

Для кода с утроением, кстати, порождающая матрица выглядит очень просто:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Подобные коды, которые можно порождать и проверять матрицей называются линейными (бывают и нелинейные), и они очень широко применяются на практике. Реализовать их довольно легко, так как тут требуется только умножение на константную матрицу.

Ошибка по синдрому

Ну хорошо, мы построили код обнаруживающий ошибки. Но мы же хотим их исправлять!

Для начала введём такое понятие, как вектор ошибки. Это вектор, на который отличается принятое сообщение от кодового слова. Пусть мы получили сообщение что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, а было отправлено кодовое слово что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Тогда вектор ошибки по определению

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Но в странном мире GF(2), где сложение и вычитание одинаковы, будут верны и соотношения:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

В силу особенностей сложения, как читатель сам может легко убедиться, в векторе ошибки на позициях, где произошла ошибка будет единица, а на остальных ноль.

Как мы уже говорили раньше, если мы получили сообщение что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодс ошибкой, то что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код. Но ведь векторов, не равных нулю много! Быть может то, какой именно ненулевой вектор мы получили, подскажет нам характер ошибки?

Назовём результат умножения на проверочную матрицу синдромом:

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

И заметим следующее

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Это означает, что для ошибки синдром будет таким же, как и для полученного сообщения.

Разложим все возможные сообщения, которые мы можем получить из канала связи, по кучкам в зависимости от синдрома. Тогда из последнего соотношения следует, что в каждой кучке будут вектора с одной и той же ошибкой. Причём вектор этой ошибки тоже будет в кучке. Вот только как его узнать?

А очень просто! Помните, мы говорили, что у нескольких ошибок вероятность ниже, чем у одной ошибки? Руководствуясь этим соображением, наиболее правдоподобным будет считать вектором ошибки тот вектор, у которого меньше всего единиц. Будем называть его лидер ом.

Давайте посмотрим, какие синдромы дают всевозможные 5-элементные векторы. Сразу сгруппируем их и подчеркнём лидер ов — векторы с наименьшим числом единиц.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код
что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия кодчто такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

В принципе, для корректирования ошибки достаточно было бы хранить таблицу соответствия синдрома лидер у.

Обратите внимание, что в некоторых строчках два лидер а. Это значит для для данного синдрома два паттерна ошибки равновероятны. Иными словами, код обнаружил две ошибки, но исправить их не может.

Лидеры для всех возможных одиночных ошибок находятся в отдельных строках, а значит код может исправить любую одиночную ошибку. Ну, что же… Попробуем в этом убедиться.

что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код

Вектор ошибки равен что такое коррекция опасного действия код. Смотреть фото что такое коррекция опасного действия код. Смотреть картинку что такое коррекция опасного действия код. Картинка про что такое коррекция опасного действия код. Фото что такое коррекция опасного действия код, а значит ошибка в третьем разряде. Как мы и загадали.

Что же дальше?

Чтобы попрактиковаться, попробуйте повторить рассуждения для разных проверочных матриц. Например, для кода с утроением.

Логическим продолжением изложенного был бы рассказ о циклических кодах — чрезвычайно интересном подклассе линейных кодов, обладающим замечательными свойствами. Но тогда, боюсь, статья уж очень бы разрослась.

Если вас заинтересовали подробности, то можете почитать замечательную книжку Аршинова и Садовского «Коды и математика». Там изложено гораздо больше, чем представлено в этой статье. Если интересует математика кодирования — то поищите «Теория и практика кодов, контролирующих ошибки» Блейхута. А вообще, материалов по этой теме довольно много.

Надеюсь, когда снова будет свободное время, напишу продолжение, в котором расскажу про циклические коды и покажу пример программы для кодирования и декодирования. Если, конечно, почтенной публике это интересно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *