Основные понятия и определения теории информации и кодирования. Задачи теории информации и кодирования, страница 47

Для исправления ошибки в V2(X) декодер проверяет компоненты S4 и

S19 синдрома.Если обе компоненты равны единице(см.рис.для синдромного полинома),то правый бит V2(X) является ошибочным и в потоке данных,а также в регистре синдрома выполняются соответствующие исправления.Пакет ошибок e3(X),начинающийся в более позднем кадре,не может вызвать сбоя,так как отклик e3(X) равен нулю.

Параллельно с этим для нахождения ошибки в V1(X) декодер четырьмя кадрами позднее проверяет компоненты S5 и S19 синдрома.Если они обе равны единице,а S4 равна нулю,то правый бит V1(X)-регистра ошибочен

(см.рис.для синдромного полинома).Такая проверка V1(X) не приводит к нахождению ошибок в течение первых четырёх тактов,но затем начинает исправлятьошибки в V1(X).Пакет e3(X),начинающийся в более позднем кадре,не может вызвать сбоя,так как отклик e3(X) равен нулю.В

силу выбора способа проверки ещё не исправленный бит e2(X) также не может вызвать сбоя,и поэтому S4 равна нулю.

После появления пакета ошибок длины 12 принятое слово не должно содержать больше ошибок,чтобы синдрому ничто не мешало во время исправления этого пакета.Для этого необходимо,чтобы до 29-го кадра не происходило ошибок.Следовательно,между пакетами ошибок должно быть свободно от ошибок не менее 24 кадров (72 хороших бита).При выполнении этого правила декодер будет успешно исправлять следующие друг за другом пакеты ошибок длины не больше 12 каждый.

С В Ё Р Т О Ч Н Ы Е   К О Д Ы   Д Л Я

П А Р А Л Л Е Л Ь Н О Г О   П О Т О К А   Д А Н Н Ы Х .

До сих пор мы рассматривали свёрточные коды для последовательного потока данных.Эти же коды могут быть применимы и для параллельного потока данных.Например,кодер для систематического свёрточного (12,

9)-кода Вайнера - Эша для параллельного потока данных может иметь вид:

Входы

┌─┐          ┌─┐

1 ───────┬─>│ │───────┬─>│ │

│  ├─┤       │  ├─┤

2 ─────┬─│─>│ │───────│─>│ │

│ │  ├─┤       │  ├─┤

3 ───┬─│─│─>│ │──────┬──>│ │

│ │ │  └─┘      ││  └─┘         Выходы

│ │ └──────────┬││───────────────────>1

│ └──────────┬─│││───────────────────>2

└──────────┬─│─│││───────────────────>3

│ │ │││

┌────────────────────┐

│   Сумма по mod 2   │

└─────────┬──────────┘

└────────────────>4

Этот код позволяет исправлять одиночную ошибку.

Рассмотрим другой более наглядный пример свёрточного кода для параллельного потока данных,который также позволяет исправлять одиночную ошибку.

Предположим,мы имеем k информационных линий,по которым передаётся параллельный поток данных.Для рассматриваемого кода необходима одна дополнительная линия,по которой будут передаваться проверочные символы.Принцип формирования проверочных символов рассмотрим на примере.

Пусть k = 3.

Нарисуем биты,поступающие с 3 информационных линий в виде квадратов.

1 ────>   ░ █ ░ ░ █ ░ ░ █

2 ────>   ░ ░ █ ░ █ ░ █ ░

3 ────>   ░ ░ ░ █ █ █ ░ ░

Проверочный символ формируется путём суммирования по модулю два битов,расположенных по трём линиям,одна из которых - биты над проверочным символом,остальные - две диагонали от проверочного символа.

Ситуация аналогична наблюдателю сада,который посажен квадратно гнездовым способом:наблюдатель может видеть деревья прямо перед собой и по диагонали от себя.

Принцип построения кодера достаточно прост.Также очень просто определяется синдром ошибки,по виду которого очень просто определить,в какой линии произошло искажение информации (в одном бите).Так,если имела место одиночная ошибка в 3-й линии,то в результате проверки проверочных разрядов получится синдром 0011100;если имела место ошибка во второй линии,то синдром будет иметь вид 0101010;и для первой линии - 1001001.

┌─┐   ┌─┐

┌───>│+│──>│+│──┐

│    └─┘   └─┘  │

│     │     │   │

1       ┌─┬─┬─┬─┬─┬─┬─┐  │             1

───────>│ │ │ │ │ │ │ │──│────────────>

└─┴─┴─┴─┴─┴─┴─┘  │

2       ┌─┬─┬─┬─┬─┬─┬─┐  │             2

───────>│ │ │ │ │ │ │ │──│────────────>

└─┴─┴─┴─┴─┴─┴─┘  │

│   │   │     │

│  ┌─┐ ┌─┐   ┌─┐