Блочный код заменяет каждый блок из символов более длинным блоком из символов, которые после передачи подлежат декодированию. Из соображений простоты и надежности большинство систем связи конструируются для передачи двоичных последовательностей, такими являются и -коды.
Одним из ключевых понятий теории кодирования является понятие расстояния между двоичными словами. Расстояние между словами и равно числу позиций, в которых . Весом слова называется число единиц среди его координат. Тогда расстояние будет равно весу , т.е. .
Пример 146. Показать, что сдвиг не изменяет расстояние между словами и .
Решение. .
Пример 147. Найти вероятность того, что переданное слово будет принято как .
Решение. Воспользуемся функцией расстояния для представления вероятностей ошибок. Ошибочно будет принято символов, каждый с вероятностью , а вероятность того, что переданное слово будет принято как , равна .
Пример 148. Для того, чтобы код давал возможность исправлять все ошибки в не более чем позициях, необходимо и достаточно, чтобы наименьшее расстояние между двумя кодовыми словами было .
Решение. Если это условие на выполнено, то в качестве следует взять функцию (ближайшее слово из образа ), которая исправит ошибки в позициях.
Для блоков большой длины задание кодового слова для каждого блока требует большого объема памяти. Значительно экономней результат дает методика матричного кодирования. Пусть - матрица с элементами из нулей и единиц. Обозначая знаком сложение по модулю , определим схему кодирования уравнениями:
Она отвечает умножению строки на кодированную матрицу справа и определяет ()-код.
Код не должен приписывать одно и то же кодовое слово разным словам. Одним из способов добиться этого состоит в том, чтобы первые столбцов матрицы образовали единичную матрицу.
Пример 149. Построить (3,5)-код, используя следующую 355 матрицу:
Решение. Полный список кодирования таков:
= 000 00000 | = 110 11001 |
= 100 10010 | = 101 10111 |
= 010 01010 | = 011 01110 |
= 001 00101 | = 111 11100 |
Этот список показывает преимущество матричного кодирования: достаточно запомнить кодовых слов вместо слов.
Блочный код называется групповым, если его кодовые слова образуют группу относительно покоординатного сложения по модулю 2. Поскольку , то в групповом коде наименьшее расстояние между двумя кодовыми словами равно наименьшему весу ненулевого кодового слова.
Рассмотрим задачу оптимизации декодирования группового кода : с двоичной матрицей кодирования . Наша задача - минимизировать вероятность того, что , предполагая равными вероятности передачи сигнала по двоичному симметричному каналу.
Схема декодирования основана на таблице С всех слов, которые могут быть
приняты. Поскольку кодовые слова образуют подгруппу , то можно
расположить , записав в одну строку элементы смежного класса по модулю .
Первая строка отвечает нулевому классу:
где в качестве выбирается слово наименьшего веса, называемого лидером этого класса.
Декодирование слова состоит в выборе кодового слова в качестве переданного и последующем применении операции .
Пример 150. Составить таблицу декодирования для (3,5)-кода из предыдущего примера.
Решение. В первой строке поместим кодовые слова, а в первом столбце - лидеров класса, вес которых равен 0 и 1.
00000 | 10010 | 01010 | 00101 | 11001 | 10111 | 01110 | 11100 |
10000 | 00010 | 11010 | 10101 | 01001 | 00111 | 11110 | 01100 |
01000 | 11010 | 00010 | 11101 | 10001 | 11111 | 00110 | 10100 |
00100 | 10110 | 01110 | 00001 | 11101 | 10011 | 01010 | 11000 |
Чтобы декодировать принятое слово, следует отыскать его в таблице и выбрать в качестве переданного кодовое слово из того же столбца и из первой строки.
Вопросы для самоконтроля
1. Как определяется вес слова?
2. Какая связь между кодовым расстоянием и весом слова?
3. Существует ли связь между вероятностью принятия переданного слова и расстоянием между переданным и принятым словами?
4. Необходимые и достаточные условия обнаружения ошибок.
5. Назовите условия исправления ошибок.
6. В чем заключается методика матричного кодирования?
7. Какой код называется групповым?
8. Геометрические интерпретации кодирующих и декодирующих систем.
Задачи
I 291. Докажите, что если расстояние между кодовыми словами равно 5, то код способен обнаруживать до четырех ошибок и исправлять до двух ошибок.
292. Какова вероятность того, что не будет обнаружена ошибка при пере-даче слова в (6,7)-коде с проверкой на четность?
293. Вычислите вероятность пропуска ошибок в таком (4,8)-коде, что минимальное расстояние между кодовыми словами равно 4.
294. Рассмотрите (3,4)-код с проверкой на четность и (3,6)-код с двукратной передачей. При вычислите вероятность того, что ошибочно переданное слово не будет обнаружено.
295. Найдите кодирующую матрицу для (3,4)-кода с проверкой на четность.
296. Найдите кодирующую матрицу для (2,6)-кода с трехкратной передачей.
II 297. Код задан матрицей
Какова вероятность того, что слово будет принято как правильное, тогда как на самом деле остались необнаруженными ошибки?
298. Постройте стандартную матрицу, порождающую код, эквивалентный коду с матрицей
III 299. Покажите, что следующие операции над кодирующей матрицей приводят к эквивалентному коду:
а) перестановка строк,
б) перестановка столбцов,
в) замена одной строки суммой ее с другой строкой.
300. (4,8)-код состоит из слов вида где . Является ли этот код групповым? Чему равно минимальное расстояние этого кода?