LEKTsIYa_11
.pdfЛЕКЦИЯ № 15.
6.4. Сверточные коды.
Сверточный код получается в результате прохождения информационной последовательности через линейный сдвиговый регистр с конечным числом
состояний. Регистр сдвига состоит из |
k битовых ячеек и линейного |
преобразователя, состоящего из n |
функциональных генераторов, и |
выполняющего алгебраические функции. |
|
1 2 … k
K
инф.
бит
1 |
2 |
… |
k |
… |
1 |
2 |
… |
k |
1 |
|
2 |
|
3 |
|
n |
|
|
|
|
|||||
|
|
|
|||||
|
|
|
|
|
Кодированная последовательность |
||
|
|
|
|
|
|
|
|
Рисунок 6.2. |
Структурная схема сверточного кода. |
||||
Параметр - кодовое ограничение сверточного кода. |
|||||
Рассмотрим |
пример1. Дан двоичный сверточный код с 3 , |
||||
k 1, n 3, R |
|
k |
|
1 |
- кодовая скорость. |
|
|
||||
c |
|
n 3 |
|||
|
|
Структура кодера имеет вид:
1 |
Вых. |
|
|
Вх. |
|
2 |
|
|
3 |
Сначала все ячейки регистра сдвига находятся в нулевом состоянии: 000.
Пусть первый входной бит «1», тогда на выходе 111. Пусть второй входной бит «0». Тогда он записывается в первую ячейку, а «1» продвигается во вторую ячейку. В результате ячейки сдвига находятся в состоянии 010. Тогда на выходе имеем 001. Пусть третий входной бит «1». Тогда состояние ячеек сдвига будет следующее: 101, а на выходе формируется последовательность
100 и т.д.
Генератор можно отобразить векторами g1 (100) , g2 (101) , g1 (111) .
Генераторы (порождающие полиномы) задаются в восьмеричной форме:
g(4,5,7) , т.е. 4 100; 5 101; 7 111.
Вобщем случае, когда k 1эти n генераторов отображаются k - мерными векторами.
Существует 3 альтернативных метода, которые используются для описания сверточного кода: древовидная диаграмма, решетчатая диаграмма и диаграмма состояний.
Пример 2. Древовидная диаграмма для примера 1.
|
|
|
|
000 |
|
000 |
||||
|
|
|
|
|
||||||
|
000 |
|
|
|
111 |
|||||
|
111 |
|
||||||||
|
000 |
|
|
|
|
|
001 |
|||
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
110 |
||
|
|
001 |
|
|
|
|
|
|||
|
|
|
|
|
|
|||||
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
011 |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|||||
0 |
|
|
|
110 |
|
|
100 |
|||
|
|
|
|
|||||||
111 |
|
|
|
|
|
010 |
||||
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
101 |
||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
011 |
000 |
|
001 |
111 |
|
|
|
1 |
100 |
001 |
|
|
|
|
010 |
110 |
|
011 |
|
|
111 |
|
|
100 |
|
|
|
|
|
101 |
010 |
|
110 |
|
|
|
101 |
Видно, что структура повторяет себя после третьего такта.
В таблице приведено пояснение по шагам как формируется выходная последовательность.
Бывшее |
|
Вход |
|
Новое |
|
Выход |
Номер шага |
||||||||||
состояние |
|
|
|
|
состояние |
|
|
|
|
||||||||
регистра |
|
|
|
|
регистра |
|
|
|
|
||||||||
|
000 (a) |
|
|
|
0 |
|
|
000 |
(a) |
|
|
|
000 |
|
1 |
||
|
000 |
(a) |
|
|
|
1 |
|
|
100 |
(c) |
|
|
|
111 |
|
|
|
|
000 |
(a) |
|
|
|
0 |
|
|
000 |
(a) |
|
|
|
000 |
|
2 |
|
|
000 |
(a) |
|
|
|
1 |
|
|
100 |
(c) |
|
|
|
111 |
|
|
|
|
100 |
(c) |
|
|
|
0 |
|
|
010 |
(b) |
|
|
001 |
|
|
||
|
100 |
(c) |
|
|
|
1 |
|
|
110 |
(d) |
|
|
110 |
|
|
||
|
000 |
(a) |
|
|
|
0 |
|
|
000 |
(a) |
|
|
000 |
|
3 |
||
|
000(a) |
|
|
|
|
1 |
|
|
100 |
(c) |
|
|
|
111 |
|
|
|
|
100 |
(c) |
|
|
|
0 |
|
|
010 |
(b) |
|
|
001 |
|
|
||
|
100 |
(c) |
|
|
|
1 |
|
|
110 |
(d) |
|
|
110 |
|
|
||
|
010 |
(b) |
|
|
0 |
|
|
001 |
(a) |
|
|
011 |
|
|
|||
|
010 |
(b) |
|
|
1 |
|
|
101 |
(c) |
|
|
100 |
|
|
|||
|
110 |
(d) |
|
|
0 |
|
|
011 |
(b) |
|
|
010 |
|
|
|||
|
110 |
(d) |
|
|
1 |
|
|
111 |
(d) |
|
|
101 |
|
|
|||
|
000 |
(a) |
|
|
0 |
|
|
000 |
(a) |
|
|
000 |
|
4 |
|||
|
000(a) |
|
|
1 |
|
|
100 |
(c) |
|
|
111 |
|
|
||||
|
100 |
(c) |
|
|
0 |
|
|
010 |
(b) |
|
|
001 |
|
|
|||
|
100 |
(c) |
|
|
|
1 |
|
|
110 |
(d) |
|
|
110 |
|
|
||
|
010 |
(b) |
|
|
0 |
|
|
001 |
(a) |
|
|
011 |
|
|
|||
|
010 |
(b) |
|
|
1 |
|
|
101 |
(c) |
|
|
100 |
|
|
|||
|
110 |
(d) |
|
|
0 |
|
|
011 |
(b) |
|
|
010 |
|
|
|||
|
110 |
(d) |
|
|
1 |
|
|
111 |
(d) |
|
|
101 |
|
|
|||
|
001 |
(a) |
|
|
0 |
|
|
000 |
(a) |
|
|
000 |
|
|
|||
|
001 |
(a) |
|
|
|
1 |
|
|
100 |
(c) |
|
|
|
111 |
|
|
|
|
101 |
(c) |
|
|
0 |
|
|
010 |
(b) |
|
|
001 |
|
|
|||
|
101 |
(c) |
|
|
1 |
|
|
110 |
(d) |
|
|
110 |
|
|
|||
|
011 |
(b) |
|
|
0 |
|
|
001 |
(a) |
|
|
011 |
|
|
|||
|
011 |
(b) |
|
|
1 |
|
|
101 |
(c) |
|
|
100 |
|
|
|||
|
111 |
(d) |
|
|
0 |
|
|
011 |
(b) |
|
|
010 |
|
|
|||
|
111 |
(d) |
|
|
1 |
|
|
111 |
(d) |
|
|
101 |
|
|
Здесь обозначено a - 00, b – 01, c – 10, d – 11.
С учетом состояний можно изобразить решетчатую диаграмму:
|
000 |
000 |
000 |
|
|
000 |
000 |
|
a |
|
|
|
|
|
|
|
|
111 |
111 |
|
111 |
|
111 |
011 |
111 |
011 |
|
|
|
011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
|
100 |
|
|
100 |
100 |
|
|
|
001 |
|
|
|
|
|
|
|
|
|
001 |
|
001 |
001 |
|
|
c |
|
|
|
|
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
010 |
110 |
010 |
010 |
110 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
|
|
|
101 |
|
|
101 |
101 |
|
Диаграмма состояний для данного примера выглядит следующим образом:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Состояние |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
011 |
|
|
|
|
|
|
|
|
|
|
|
001 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
b (01) |
|
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Состояние |
|
|
111 |
|
|
|
|
|
|
|
|
|
|
|
Состояние |
|||||
|
|
|
a (00) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c (10) |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
010 |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
000 |
|
|
|
|
|
|
|
|
|
|
|
|
Состояние |
|
|
|
|
110 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d (11) |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101
Обозначения: «сплошная линия» - входной бит «0», «пунктирная линия» - входной бит «1».
Передаточная функция сверточного кода.
Передаточная функция определяет дистанционные свойства и характеристики качества (вероятность ошибки) сверточного кода. Вернемся к примеру 1 и 2. Пометим на диаграмме состояний ветви как D0 , D1, D2 , D3 , где показатель у D - расстояние Хемминга между выходной битовой последовательностью соответствующей ветви и последовательностью из одних нулей. Собственную петлю у узла a можно исключить, т.к. она ничего не вносит в дистанционные свойства кодовой последовательности относительно последовательности из одних нулей. Узел a делится на 2 узла: один входной (a) другой выходной (e).
d
|
|
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
||
|
a |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Диаграмма состоит из пяти узлов: a, b, c, d, e. Тогда уравнения состояния имеют вид:
|
|
|
|
|
|
|
|
X |
c |
D3 X |
a |
DX |
; X |
b |
DX |
c |
DX |
d |
; |
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(6.18) |
||||||||
|
|
|
|
|
|
|
|
X |
|
D2 X |
|
D2 X |
|
|
; X |
|
D2 X |
. |
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
d |
c |
d |
e |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|||||
Передаточная функция определяется как |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T (D) |
Xe |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(6.19) |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Из 2 - го и 3 - его уравнения (6.18) получим: |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
X |
b |
DX |
c |
|
|
|
|
|
|
X |
D2 |
|
|
X |
b |
DX |
c |
|
|
X |
D2 |
X |
|
|
X |
(1 D2 ) |
|
||||||||||||||||
X |
|
|
|
, X |
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
|
|
b |
|
; |
|||||||||||||||
d |
|
|
D |
|
d |
1 |
D2 |
|
|
|
|
|
|
|
|
D |
|
|
1 D2 |
c |
|
D |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
из 1 –го уравнения (6.18) получим: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
X (1 D2 ) |
DXb |
Xb (1 2D2 ) |
учитывая (6.19), имеем |
|||||||||||||||||||||||||||||||||
X Xc DXb |
|
b |
|
D |
|
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D3 |
|
|
|
|
|
|
|
|
|
D3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
D4 |
|
|
|
|
|
|
|
|
|
|
|
|
выражение для передаточной функции:
|
|
|
|
|
D2 X |
b |
|
D6 |
|
|||||
T (D) |
|
|
|
|
|
|
|
. |
|
|||||
X |
b |
(1 2D2 ) |
(1 2D2 ) |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D4 |
|
|
|
|
|
|
|
|
Далее, раскладывая функцию T (D) в ряд Тейлора в точке D 0 , получим |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T (D) D6 2D8 |
4D10 8D12 |
|
ad Dd , |
(6.20) |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
d 6 |
|
|
|
|
|
|
|
d 6 |
|
|
|
|
|
|
|
||
где a |
2 |
2 |
,если d четно, |
|
||||||||||
d |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
0,если d нечетно. |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передаточная функция (6.20) этого кода показывает, что существует единственный путь с расстоянием Хемминга d 6 от пути из одних нулей, который сливается с путем из одних нулей при данном узле. Это путь acbe. Второе слагаемое говорит о том, что есть 2 пути от a до e с d 8 : acdbe и acbcbe и т.д. Таким образом, передаточная функция T (D) дает дистанционные свойства сверточного кода. Минимальное расстояние кода называется
минимальным свободным расстоянием dсв . Для разобранного примера
dсв 6.
Для получения более детальной информации введем множитель N для всех переходов ветвей, вызванных входным битом «1» и множитель J для каждой ветви диаграммы так, что он будет служить счетной величиной, указывающей число ветвей для любого пути от узла a к узлу e. Тогда
d
|
|
|
|
|
|
|
|
|
b |
|
|
|
e |
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
||
|
a |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Уравнения диаграммы состояний в этом случае имеют вид:
X c JND3 X a JNDX b ; X b JDX c JDX d ;
X d JND2 X c JND2 X d ; X e JD2 X b .
Тогда передаточная функция записывается в следующей форме:
T (D, N, J ) J 3 ND6 J 3ND6 J 4 N 2D8 J 5 N 2D8 J 5 N 3D10 2J 6 N 3D10
1 JND2 (1 J )
J 7 N 3D10
Первое слагаемое говорит о том, что путь с расстоянием d 6 имеет длину 3 и , что один из 3 –х бит – «1». Второе и третье слагаемые указывают на то, что из двух слагаемых с d 8 одно длиной 4, а второе длиной 5. Два из 4 –х и два из 5 –ти бит в пути длиной 4 и 5 являются «1».
Множитель J особенно важен, если передается последовательность конечной длины, например, m бит. Тогда сверточный код повторяется после m узлов или m ветвей и передаточная функция получается при усечении по слагаемому J m
Оптимальное декодирование сверточных кодов. Алгоритм Витерби.
Оптимальное декодирование сверточных кодов включает в себя поиск по решетке наиболее правдоподобной последовательности. Рассмотрим опять пример 1. Если за метрику взять расстояние Хемминга (поиск жестких решений) между принятой кодовой последовательностью Y и путем, то выбирается тот путь, у которого dmin . Это правило максимизирует вероятность правильного решения или минимизирует вероятность ошибки в информационной последовательности.
Пусть Y 101000100 . Рассмотрим все пути у сливающегося узла a, b, c, d после трех переходов. Тогда по решетке (уровень 3):
Y: 1 0 1 0 0 0 1 0 0
a: 0 0 0 0 0 0 0 0 0 d 3
1 1 1 0 0 1 0 1 1 d 5 b: 0 0 0 1 1 1 0 0 1 d 7
1 1 1 1 1 0 0 1 0 |
d 5 |
c: 0 0 0 0 0 0 1 1 1 |
d 4 |
1 1 1 0 0 1 1 0 0 |
d 2 |
d: 0 0 0 1 1 1 1 1 0 d 6
1 1 1 1 1 0 1 0 1 d 4
Далее для каждого узла оставляем путь с d dmin : a: 0 0 0 0 0 0 0 0 0 d 3
b: 1 1 1 1 1 0 0 1 0 d 5
c: 1 1 1 0 0 1 1 0 0 d 2 d: 1 1 1 1 1 0 1 0 1 d 4 .
Эти пути называются выжившими. Далее эта процедура повторяется на каждом шаге решетки по мере того, как принимаются новые символы. В течение некоторого времени выжившие пути отличаются друг от друга. Но на некоторой глубине происходит слияние путей.