
- •Линейные коды
- •Декодирование линейных кодов
- •Код Хэмминга
- •Образующий (порождающий, производящий) полином циклического кода
- •Примитивные полиномы
- •Коды crc
- •Использование crc-кода в технологии атм
- •Коды Боуза-Чоудхури-Хоквингема (коды бчх)
- •Коды рида-соломона
- •Итеративные коды
- •Понятие о сверточных кодах
- •Алгоритм декодирования Витерби.
- •Декодирование
- •Правило декодирования
- •Пример выполнения задачи 4
Правило декодирования
При условии равных метрик из двух путей выбирается путь с наименьшей накопленной метрикой на предыдущем уровне.
Если происходит слияние путей на некотором участке диаграммы, приемник делает однозначный вывод о переданной информационной последовательности на этом участке.
В рассмотренном примере после обработки 5-го уровня решетчатой диаграммы, произошло слияние путей на уровнях 0-3. Приемник делает вывод, что кодер передавал последовательность
00 11 01,
а это соответствует информационной последовательности 0 1 0.
Обычно в приемнике устанавливается фиксированная глубина декодирования. Например, 10-й уровень. Если слияние путей не происходит, тогда после обработки 10-гоуровня, приемник выбирает путь с минимальной метрикой и формирует один информационный символ для выдачи получателю, соответствующий первому уровню этого пути. После обработки 11-го уровня делается вывод о следующем информационном символе, который соответствует второму уровню пути с минимальной метрикой и т.д.
Пример выполнения задачи 4
Система передачи данных использует циклический код с параметрами (7,4) и образующим полиномом g(x)=x3+x+1. На вход кодера канала поступает информационная последовательность u=1001.
Запишите образующую матрицу G заданного кода в каноническом виде. Определите кодовое расстояние кода d0 (dmin).
Определите кодовую комбинацию v на выходе кодера.
Внесите многократную ошибку (t=4) в любые разряды комбинации v. Вы получили искаженную комбинацию y на входе декодера канала в приемной части.
Определите синдром s комбинации y.
Ответьте на вопросы:
Декодер обнаружил ошибки? (Да, нет, почему??)
Декодер способен исправить обнаруженные ошибки?
РЕШЕНИЕ
Запишем образующую матрицу заданного кода G, используя заданный образующий полином g(x).
│0001011│
│0010110│
G=│0101100│
│1011000│
Преобразуем полученную матрицу к каноническому виду. Для этого первая строка матрицы G переходит на место четвертой, вторая строка – на место третьей, вторая строка Gкан получается как сумма по модулю 2 первой и третьей строк G, первая строка Gкан получается как сумма по модулю 2 четвертой, второй и первой строк G.
│1000101│
│0100101│
Gкан=│0010110│
│0001011│
Минимальный вес кодового слова в образующей матрице Gкан t=3. Следовательно, кодовое расстояние заданного кода d0=3.
Задана информационная последовательность U=1001. Кодовая комбинация v на выходе кодера может быть найдена как произведение V=U×Gкан или можно вычислить проверочные разряды кодовой комбинации через образующий полином g(x). Воспользуемся вторым способом.
R(x)=[U(x)×x3]mod g(x)=[(x3+1)×x3]mod(x3+x+1)=x2+x110
V=1001 110
Полученная комбинация делится на заданный образующий полином без остатка, и, следовательно, является разрешенной комбинацией заданного кода.
По заданию при передаче по дискретному каналу возникла комбинация ошибок весом t=4. Пусть вектор ошибки имеет вид (выбираем произвольно) e=0111100. Тогда на входе декодера приемника появляется комбинация Y=Ve=1110010, как результат поразрядного сложения комбинаций по модулю 2.
Декодер циклического кода вычисляет синдром принятой последовательности S(x)=Y(x)mod g(x). Разделим принятую последовательность Y на образующий полином и найдем остаток от деления. S=110≠0.
Синдром не равен нулю, следовательно, декодер установил наличие ошибок в принятой комбинации. Если предположить, что ошибки в дискретном канале возникают независимо друг от друга, то одиночные ошибки возникают с наибольшей вероятностью. Заданный код способен гарантированно исправить любую одиночную ошибку, так как имеет кодовое расстояние d0=3. В данном случае декодер, работающий в режиме исправления одиночных ошибок, выполнит ошибочное декодирование, исправив в принятой последовательности третий бит слева (S=110 соответствует комбинации ошибок e=0010000). Выбранная комбинация ошибок не будет исправлена.