- •Основные параметры помехоустойчивых кодов.
- •Коды с общей проверкой на чётность и коды с повторениями: их корректирующие способности, описание с помощью матриц, алгоритмы кодирования и декодирования.
- •Итеративные прямоугольные и треугольные коды: их корректирующие способности, описание с помощью матриц, алгоритмы кодирования и декодирования.
- •Группы и их основные свойства. Смежные классы.
- •Поле Галуа. Свойства конечных полей.
- •Расширенное поле Галуа. Вычисления в конечных полях.
- •Неравномерные эффективные коды. Проблема декодирования. Вектор Крафта.
- •Основные информационные характеристики источника сообщений. Коды Шеннона—Фано.
- •Сжатие информации кодами Хаффмана.
- •Алгоритм арифметического кодирования информации, пример.
- •Алгоритм арифметического декодирования информации, пример.
- •Словарные методы кодирования. Метод Зива—Лемпела.
- •17) Общие сведения о линейных кодах.
- •18) Описание линейных блоковых кодов при помощи матриц: формирование проверочной матрицы и порождающей матрицы.
- •19) Декодирование линейных кодов: декодирование методом максимального правдоподобия.
- •20) Декодирование кодов Хэмминга. Понятие синдрома
- •21) Декодирование линейных кодов: мажоритарное декодирование.
- •22) Коды Хэмминга, модификации кодов, формирование.
- •23) Декодирование кодов Хэмминга, области применения данных кодов.
- •24) Описание циклических кодов с помощью матриц.
- •25) Декодирование циклических кодов.
- •26) Описание циклических кодов с помощью полиномов.
- •27) Кодирование информации циклическими кодами.
- •28) Параметры и построение кодов Рида–Маллера.
19) Декодирование линейных кодов: декодирование методом максимального правдоподобия.
Пусть есть код А, содержащий M=2k слов, причем каждое слово имеет разрядность n:
A=(a1, a2,…,aM), ai=(0,1,…,n-1).
На длине кода возможны следующие ошибки:
- одиночные, t=1;
- двукратные, t=2;
……………………………
- n-кратные, t=n.
Суммарное число всевозможных ошибок равно E=2n-1.
Задача декодирования состоит в том, чтобы по принятому вектору bj однозначно определить переданное сообщение ai, т.е. в качестве ai следует принять такой вектор, для которого условная вероятность p(ai / bj) максимальна. Декодирование, когда максимизируется p(ai / bj), получило название декодирования по максимуму апостериорной вероятности. В теории информации доказывается, что p(ai / bj)=С p(bj /ai), где С-константа. Следовательно, для максимизации p(ai / bj) необходимо максимизировать условную вероятность p(bj /ai). Для каждого отдельного канала эта вероятность имеет свое конкретное значение.
Для максимизации p(bj /ai) необходимо выбирать кратность ошибки как можно меньше. Отсюда следует правило декодирования: в качестве переданного слова следует выбирать такое слово, которое отличается от принятого слова в наименьшем числе позиций. Это можно определить так же, как декодирование по минимуму расстояния: принятое слово отождествляется с тем кодовым словом, от которого оно удалено на минимальное расстояние. Такое декодирование обеспечивает минимальную вероятность ошибки.
Часто декодирование по минимуму расстояния определяется как декодирование в целом, так как при декодировании принимается решение обо всем слове, а не об отдельном символе, когда принятое слово коррелируется со всеми кодовыми словами, и в качестве переданного принимается то, корреляция с которым будет максимальна. Такое декодирование называется декодированием по максимуму правдоподобия и реализуется многоканальным корреляционным приемником, опорными словами которого являются все кодовые слова. Оценим сложность декодера. Пусть код имеет длину n и содержит 2k кодовых слов. Для вычисления расстояния нужно умножить каждое из этих слов на принятое, вычислить скалярное произведение. Одно умножение требует выполнения n арифметических операций сложения двух чисел. Общее количество арифметических операций пропорционально величине n*2k. Это число растет очень быстро с ростом k, поэтому декодирование по минимуму расстояния целесообразно использовать лишь в кодах с малым числом информационных символов.
С формальной точки зрения операция корреляции сводится к умножению принятого вектора на кодовую матрицу. Для кодов с основанием q=2 для подобного умножения требуется n(n-1) операций сложения (вычитания). При больших n это приводит к большим вычислительным затратам.
Для некоторых кодов найдены операции векторно-матричного умножения, требующие nlog2n операций.
20) Декодирование кодов Хэмминга. Понятие синдрома
Чтобы проверить, является ли принятый вектор кодовым словом, декодер
вычисляет (n-k)-последовательность, определяемую следующим образом :
S = ( S0 , S1 , … , Sn-k-1 ) = r×HT.
При этом r является кодовым словом тогда, и только тогда, когда S = (00..0), и
не является кодовым словом данного кода, если S ≠ 0. Следовательно, S используется для
обнаружения ошибок, ненулевое значение S служит признаком наличия ошибок в
принятой последовательности. Поэтому вектор S называется синдромом принятого
вектора r. Из правил перемножения матриц следует, что синдром есть вектор, число
элементов которого равно числу строк проверочной матрицы.
Рассмотрим случай, когда вектор r не является кодовым. Тогда этот вектор
обязательно содержит ошибочные символы. Вектор ошибок e =(e1, e2, .... ,en) содержит
ненулевые символы в тех позициях, в которых вектор u содержит искаженные символы.
Важным обстоятельством является то, что синдромы принятого вектора r и вектора
ошибки нe совпадают.
1. Два вектора имеют одинаковый синдром тогда и только, когда они принадлежат
одному смежному классу по кодовому подпространству. Таким образом, синдром
вектора однозначно определяет тот смежный класс, которому этот вектор принадлежит.
2. Вектор ошибки e для вектора r нужно искать в том же смежном классе, которому
принадлежит и сам вектор r.
При реализации алгоритма декодирования по синдрому составляют таблицу, в
которой указывают синдромы и лидеры соответствующих им смежных классов.
Алгоритм декодирования заключается тогда в следующем:
1. Вычисляем синдром s(r) принятого вектора r.
2.По синдрому s(r) определяем из таблицы лидер e соответствующего смежного
класса.
3. Определяет посланный вектор u как разность
u=r-e.