- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ
- •2.2. Структуры оптимальных приемников различения двух сигналов (оптимальность по В.А. Котельникову)
- •2.3. Анализ помехоустойчивости оптимальных приемников различения двух сигналов
- •3. ОБЩИЕ ПРИНЦИПЫ ОБНАРУЖЕНИЯ И ИСПРАВЛЕНИЯ ОШИБОК ИЗБЫТОЧНЫМИ КОДАМИ
- •3.1. Мера избыточности кода
- •3.2. Оценка помехоустойчивости при передаче дискретных сообщений
- •4. ПРИНЦИПЫ ПОСТРОЕНИЯ И РЕАЛИЗАЦИЯ КОМБИНАТОРНЫХ КОДОВ
- •4.2. Избыточные комбинаторные коды
- •4.2.1. Код на некоторые сочетания (четные или нечетные)
- •4.3.2. Проектирование многоступенных комбинаторных узлов
- •4.4. Проектирование декомбинаторных устройств
- •4.4.1. Проектирование одноступенных матричных декомбинаторных узлов
- •5. ПРИМЕНЕНИЕ ГРУППОВЫХ КОДОВ В КАНАЛАХ И ТРАКТАХ СИСТЕМ ПЕРЕДАЧИ ДАННЫХ
- •6.1.6. Матричный способ представления циклического кода
- •6.1.7. Циклические систематические коды
- •6.2.1. Кодирование при помощи порождающего полинома £(дс)
- •6.2.1.1. Общие принципы кодирования
- •6.2.1.2. Кодирующие устройства БЧХ-кодов, построенные при помощи порождающего полинома g(x)
- •7.3.2. Кодирование циклических кодов исправляющих пакеты ошибок
- •7.З.2.1. Независимое декодирование перемежаемых (л, /я)-кодов
- •7.3.3.2. Декодирование циклических кодов Файра
- •8.1. Краткая характеристика методов повышения помехоустойчивости
- •8.4. Использование обратной связи в системах передачи на базе протокола HDLC
- •8.4.1. Основные возможности протокола HDLC
- •8.4.4. Кодонезависимость и синхронизация HDLC
- •8.4.5. Управляющее поле HDLC
- •9.2. Арифметические коды, использующие контроль по модулю простого числа
- •9.2.1. Контроль арифметических операций
- •9.2.2. Контроль логических операций
- •9.5.2. Арифметические систематические (n,m,dА)-коды, обнаруживающие и исправляющие ошибки
но выделить два кодовых слова кода (7, 3) с g(x) = 10 х Ф х 2 0 х А, посим вольное перемежение которых образует V.
|
ш |
> 1-е кодовое слово (7, 3, 4)-кода |
|
|
|
V= | о у о |
|
|
|
|
■►2-е кодовое слово (7, 3, 4)-кода. |
7.3.2. Кодирование циклических кодов исправляющих пакеты ошибок
Структура данного раздела аналогична структуре раздела «Кодиро вание». В частности, также рассматриваются два подхода к реализации де кодеров циклических кодов, исправляющих пакеты ошибок методом по символьного перемежения:
- независимое декодирование перемежаемых (я, л1)-кодов с порож дающим полиномом g(x) 9 каждый из которых исправляет пакет ошибок
к
длиной Ъи меньше, причем Ь<— (см. п. 7.2);
- декодирование (л, т)-кода, исправляющего пакет ошибок длиной
b'i и меньше, с использованием порождающего полинома g (x ‘).
Следует отметить, что в основе любых подходов к исправлению па кетов ошибок, в том числе и приведенных выше, с помощью циклических кодов (БЧХ, Файра, Бартона и др.), лежит процедура, описанная в разделе 7.2 и основанная на теореме 7.3. При этом в качестве декодера применяет ся видоизмененный декодер Меггита, обобщенная структура которого приведена на рис. 7.5.
Рис. 7.5. Обобщенная структура декодера циклического кода, исправляющего пакеты ошибок
На рис. 7.5 приведены следующие обозначения:
БР - буферный регистр, в который поступает кодовый вектор V\ с возможными ошибками;
ГС - генератор синдрома на основе РСЛЛОС, вычисляющий остаток отделения полинома К'(*)на порождающий полиномg(x);
К| и К2 - ключи.
Как отмечалось в параграфе 7.2, если пакет ошибок ограничен b старшими разрядами принятого кодового вектора V', то в Ь справа распо ложенных ячейках генератора синдрома находится пакет ошибок и, со гласно теореме 7.3 и изложенным соображениям, в остальных (к - Ь) ячей ках слева генератора синдрома содержатся нули. Поэтому в качестве се лектора, обнаруживающего эту ситуацию, применяется (к - 6)-входовой дизъюнктор. При этом сложность селектора практически не зависит от длины исправляемого пакета. При срабатывании селектора разрывается обратная связь ГС (ключ К|) и отпирается ключ К2, через который считы вается пакет ошибок и складывается по модулю 2 с принятым кодовым вектором V
По-прежнему, как в декодере Меггита, декодирование занимает 2«-тактов. В течение первых «-тактов вычисляется синдром и происходит запись в БР принятого вектора, а в последующие «-тактов происходит ис правление пакетов ошибок.
7.З.2.1. Независимое декодирование перемежаемых (л, /я)-кодов
Рассмотрим обобщенную структуру декодера (я*/, т /)-кодов со сте пенью перемежения / (рис. 7.6).
Рис. 7.6. Декодер циклического (л, т)-кода, исправляющего пакеты ошибок независимым декодированием перемежаемых кодов
В приведенной структуре декодера выделяются / независимых деко деров, структура которых подобна структуре на рис. 7.5. Коммутатор «К» распределяет построчно посимвольно перемежаемые (я, т, d)-коды, из ко торых образован (яч, я?*/)-код, методом, описанным в разделе 7.1, исправ-
ляющий пакеты ошибок длиной b i и меньше. Каждый из i декодеров ис правляет пакеты ошибок длиной Ъ и меньше.
Рассмотрим в качестве примера один из независимых декодеров кода
(7, 3, 4) с g(x) = 10 х 0 х 2 0 х 4, исправляющий пакет ошибок длиной b = 2. Пример 7.6. Декодируем (14, 6)-код, исправляющий пакеты ошибок длиной b-i = 4 и меньше с посимвольным перемежением степени 2 кода (7, 3, 4), исправляющего пакеты длиной Ь = 2. Данный код (14, 6) рассмат
ривался в примере 7.3.
Общая структура декодера циклического кода (14, 6) приведена на рис. 7.7.
Рис. 7.7. Декодер циклического (14,6)-кода, исправляющего пакеты ошибок длиной Ь =4 и меньше, методом независимого декодирования перемежаемых (7, 3 ,4)-циклических кодов
Раскроем подробно декодер (7, 3, 4)-кода (рис 7.8) и проанализируем его функционирование с помощью таблиц перехода на примере исправле ния пакета ошибок длиной Ь = 2.
Рис. 7.8. Декодер циклического (7 ,3 ,4)-кода, исправляющего в составе декодера (рис. 7.7) пакеты ошибок длиной Ь- 2 и меньше
Пусть вектор V{ на выходе коммутатора «К» (на входе ДК|) имеет
вид V[ = Vj Ф е = 00111010 0011000 = 0000101. Тогда ниже приводится таблица переходов (табл. 7.5) декодера при исправлении данного пакета.
№> |
Вх |
|
|
|
Таблица 7.5 |
|
А |
А |
А |
А |
|
||
|
|
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
2 |
0 |
0 |
0 |
0 |
0 |
|
3 |
0 |
0 |
0 |
0 |
0 |
|
4 |
1 |
1 |
1 |
1 |
0 |
|
5 |
1 |
1 |
0 |
0 |
1 |
|
6 |
0 |
1 |
0 |
1 |
0 |
|
7 |
0 |
0 |
1 |
0 |
1 |
|
8 |
0 |
1 |
1 |
0 |
0 |
|
9 |
0 |
0 |
1 |
1 |
0 |
|
10 |
0 |
0 |
0 |
1 |
1 |
|
11 |
0 |
0 |
0 |
0 |
1 |
1 |
12 |
0 |
0 |
0 |
0 |
0 |
1 |
13 |
0 |
0 |
0 |
0 |
0 |
|
14 |
0 |
0 |
0 |
0 |
0 |
|
Из таблицы переходов (табл. 7.5) видно, что на 10-м такте две левые ячейки ГС находятся в 0-м состоянии, а в двух правых ячейках ГС записан пакет ошибок. Начиная с 11-го такта, пакет ошибок выталкивается из ГС и складывается по модулю 2 с вектором V{, т.е. происходит исправление ошибок.
Таким образом, если вектор V кода (14, 6) поражен пакетом длиной b = 4, то этот пакет распределяется между двумя перемежаемыми кодами (7, 3, 4). При этом каждый из них исправляет свой пакет длиной Ь = 2, как это было показано выше.
7.3.2.2. Декодирование (/г/, т*/)-кода с использованием порождающего полинома g(xl)
Структура декодера, реализующего указанный способ исправления пакетов ошибок длиной b i и меньше в коде (л-/, m i), построенного опи санным выше способом посимвольного перемежения (л, т)-кодов с помо щью порождающего полинома g(x'), принципиально не отличается от структуры декодера, приведенного на рис. 7.5. Поясним изложенное на примере.
Пример 7.7. На рис. 7.9 приведена структура декодера кода (14, 6) с порождающим полиномом g(x2) = 1 ф JC2 ® х4 0дг8, аналогичная декоде ру, представленному на рис. 7.5.
Рис. 7.9. Декодер циклического (14,6)-кода, исправляющего пакеты ошибок
длиной b i = 4 и меньше с использованием полинома g(x2 ) = 1 0 х 2 Ф х 4 0 JC8
Проанализируем работу декодера с помощью таблицы переходов (табл. 7.6) на примере исправления пакета ошибок длиной Ы = 4.
________________________________________________________ Таблица 7.6
№ |
Вх. |
А |
D, |
А |
А |
А |
А |
А |
А |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
|
2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 Г о |
0 |
|
3 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
4 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
5 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
6 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
7 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
8 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
9 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
10 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
11 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
12 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
13 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
14 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
15 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
16 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
17 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
18 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
19 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Из таблицы переходов (табл. 7.6) видно, что пакет ошибок длиной 4 поразил 4 старших разряда принятого и записанного в БР кодового век
тора. После первых 14 тактов в генераторе синдромов (ГС) четыре млад ших разряда находятся в 0-м состоянии, а в четырех старших разрядах за писан пакет ошибок. Начиная с 15-го разряда (вторые и = 14(15-*- 28) так тов), происходит выталкивание пакета ошибок и сложение по модулю 2 с вектором на выходе БР.
Как отмечалось в первом разделе, существуют неподдающиеся ис правлению пакеты ошибок, в частности, расположенные в / старших и Ь - i младших разрядах кодового слова, так как, по сути, они представляют со
бой пакеты длиной существенно больше, чем
Внашем примере подобного типа пакеты, поражающие / старших
и(b - i) младших разрядов (b = 4,i= 1,2, 3), имеют такую структуру:
DoD\ Di ...Z)|3 —►i = 1,
DQD\.. .D\ID\S — = 2,
D\.. ,D\ IDI2D|3 —►/ = 3.
Длина этих пакетов равна 14 без учета длины защитного интервала. Либо эти конфигурации ошибок можно рассматривать как два пакета оши бок с длинами i и ф - /').
7.3.3. Кодирование и декодирование циклических кодов Файра
Вразделе 7.2 упоминалось, что исправлять пакеты ошибок в каналах
спамятью можно различными способами, а именно:
-методом посимвольного (либо поблочного) перемежения коротких циклических кодов, исправляющих независимые ошибки;
-с использованием специальных циклических кодов, исправляющих пакеты ошибок;
-методом посимвольного (либо поблочного) перемежения коротких циклических кодов, исправляющих пакеты ошибок малой длины.
В данном разделе рассматривается построение кодеров и декодеров
специальных циклических кодов Файра, исправляющих пакеты ошибок длиной Ъ и меньше.
Построение кодов Файра рассматривалось в подразд. 7.2.
7.3.3.1. Кодирование циклических кодов Файра
Структура кодеров ЦК Файра, как, впрочем, и других двоичных цик лических кодов, исправляющих пакеты ошибок, принципиально не отли чается от кодеров БЧХ-кодов, построенных с помощью порождающего по линома g(x) и рассмотренных в подразд. 6.3.