Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Itog.docx
Скачиваний:
12
Добавлен:
03.09.2019
Размер:
745.71 Кб
Скачать

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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]