Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги / Теория электрической связи. Помехоустойчивая передача данных в информационно-управляющих и телекоммуникационных системах модели, алгоритмы, структуры.pdf
Скачиваний:
10
Добавлен:
13.11.2023
Размер:
24.95 Mб
Скачать

но выделить два кодовых слова кода (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.

Соседние файлы в папке книги