- •Санкт-Петербургский государственный технический университет
- •Способы задания кодов, классификация и характеристики кодов.
- •Задание сверточного кода решеткой.
- •Матричное описание сверточных кодов.
- •Код Вайнера-Эша
- •Коды Хэмминга (недвоичные)
- •Коды Хэмминга как цикличные коды
- •Проблематика исправления ошибок.
- •Алгоритм декодирования сверточных кодов.
- •Синдромное декодирование сверточных кодов.
- •Исправление пакетов.
- •Алгоритм декодирования Витерби.
- •Оценка характеристик декодирования по алгоритму Витерби.
Проблематика исправления ошибок.
Исправление ошибок сверточных кодов имеет специфику, связанную с памятью. Длина кодового слова бесконечна, решения принимаются на ограниченном отрезке. Есть разница в принятии решения по первому кадру и последующих.
Задачу можно свести к задаче декодирования первого кадра. Если первый кадр декодирован, то известна информация, и можно учесть её влияние на последующие кадры. Аналогично, если декодирован j кадр, проблема декидирования (j+1) кадра аналогична декодированию первого. Эта процедура декодирования называется процедурой с обратной связью.
Но рано или поздно кадр будет декодирован неверно. В одних декодерах это может привести к ошибочному декодированию последующих кадров, хотя ошибок в них нет. Говорят, происходит распространение ошибок. Оно может быть катастрофическим или ограниченным. Связано это как с самим кодом, так и с алгоритмом декодирования. Ограничение распространения ошибок имеется почти всегда, даже у некатастрофического кода.
Код называется некатастрофическим, если:
Можно полагать равным 1.
Для кода Кохно, где K0 > 1
где определитель, соответствующий подматрицам изG(x).
Систематические коды всегда некатастрофические. Желая как можно больше исправить, надо брать больше окно декодирования, но начиная с какого-то окна (b) будет насыщение. Окно (b) должно равным или большим n, часто значительно. Чтобы судить об исправляющих возможностях кода, надо ввести ряд характеристик.
l-м минимальным расстоянием dl называют наименьшее расстояние X всех пар кодовых слов, различающихся первым кадром, на отрезке в l кадров.
при l = m+1 эту характеристику называют просто минимальным расстоянием кода d*.
Последовательность d1, d2, …, dl, …, dm+1, dm+2, … - дистанционный профиль сверточного кода.
Если в первых кадрах произошло не более t ошибок и 2t +1dl*, то ошибки в первом кадре могут быть исправлены. Особый интерес представляет l=n.
2t + 1 d*.
Свободным расстоянием сверточного кода называют наименьший вес кодового слова, начинающегося с нулевого состояния и вновь в него входящего после ненулевого первого кадра. d значение l=n, при котором это происходит называют свободной длиной.
n n
Для расчета вероятности ошибочного декодирования надо знать - производящая функция весов кодовых слов.
nj – число кодовых слов веса j.
- производящая функция информационных весов кодовых слов.
N – число единиц на ребрах.
wj – полный информационный вес всех путей веса j.
Алгоритм декодирования сверточных кодов.
Известны три основных метода декодирования: синдромный (пороговый), связан с именем Месси; по максимуму правдоподобия – Витерби; и последовательный (Возенкрафт).
Метод порогового декодирования использует синдромы или их линейные комбинации, которые подаются на вход пороговых элементов. Символ с выхода, порогового элемента используется для исправления ошибки. Чисто «пороговый» метод предполагает, что используемый код обладает свойством «разделимости» проверок.
Синдромное декодирование сверточных кодов.
«Синдром» сверточного кода подобен синдрому блокового кода:
, но длина синдромной последовательности полубесконечна.
Обычно окно декодирования берут равным (m+1). Идея старая S взаимосвязаны. Исправив ошибку в «первом» кадре, надо учесть её влияние на последующие кадры. Возможны два варианта:
после исправления ошибки регист синдрома обнуляется,
из регистра синдрома вычитается корректирующий синдром.
Рассмотрим конкретный пример.
Замечание. Если код систематический, то предельно ясно, как компоненты синдрома вычисляются. Берутся информационные биты, кодируются и сравнивается проверочный символ с проверочным из канала. Если код несистематический, то либо как указано в *), либо как-то иначе.
Общий вариант:
Код Вайнера-Эша (12, 9)
Усеченная матрица
После исправления ошибки синдромный регистр установить в 0.
Из регистра синдрома вычитается корректирующий синдром.
Синдром |
Конфигурация ошибок | ||
3-й кадр |
2-й кадр |
1-й кадр | |
111 |
0000 |
0000 |
0001 |
011 |
|
|
0010 |
101 |
|
|
0100 |
001 |
|
|
1000 |
110 |
|
0001 |
|
110 |
|
0010 |
|
010 |
|
0100 |
|
010 |
|
1000 |
|
100 |
0001 |
|
|
100 |
0010 |
|
|
100 |
0100 |
|
|
100 |
1000 |
|
|
Пример 2. (6, 3) код
Конфигурация ошибок |
Синдром |
…000001 |
…00111 |
…000010 |
…00101 |
…000011 |
…00010 |
…000101 |
…01001 |
…001001 |
…01101 |
…010001 |
…11011 |
…100001 |
…10011 |
…000110 |
…01011 |
…001010 |
…01111 |
…010010 |
…11001 |
…100010 |
…10001 |
Оценка границы: b=m(2m+1) при R=1/2 некатастрофический с обратной связью.
(6, 3) код исправляет 2 ошибки в шести битах. Обратная связь ликвидирует последствия, связанные с исправленными ошибками. Так как код несистематический, то информационные символы восстанавливаются по исправленному слову на основе алгоритма Евклида:
где d(x) – информационная последовательность,
c(х) – кодовая последовательность,
a(x) – существуют и их заранее надо найти.
В рассматриваемом примере a1(x)=x, a2(x)=x+1.
- существуют a1, a2, a3.
если сj находится по правилу
то