Главная страница

Циклические коды составляют большую группу наиболее широко используемых на


Скачать 201 Kb.
НазваниеЦиклические коды составляют большую группу наиболее широко используемых на
Анкор1.doc
Дата04.09.2018
Размер201 Kb.
Формат файлаdoc
Имя файла1.doc
ТипДокументы
#24050
страница2 из 4
1   2   3   4


3

+ X + 1 – двойственный



2 G X( ), , второй вариант кода Хемминга.

1.5.3. ПРИНЦИПЫ ФОРМИРОВАНИЯ И ОБРАБОТКИ РАЗРЕШЕННЫХ КОДОВЫХ

КОМБИНАЦИЙ ЦИКЛИЧЕСКИХ КОДОВ

На основании материалов предыдущего раздела можно дать следующее

определение циклических кодов (ЦК). Циклические коды составляют множество

многочленов Вi(Х) степени n-1 и менее (до m n k = − , где m – число проверочных

символов), кратных порождающему (образующему) полиному G(Х) степени m, который, в

свою очередь, должен быть делителем бинома 1

n

X + , т. е. остаток после деления бинома

на G(X) должен равняться нулю. Учитывая, что ЦК принадлежат к классу линейных,

групповых кодов, сформулируем ряд основных свойств, им присущих.

1) Сумма разрешенных кодовых комбинаций ЦК образует разрешенную кодовую

комбинацию

( ) ( ) ( ). B X B X B X i j k ⊕ = (1.26)

2) Поскольку к числу разрешенных кодовых комбинаций ЦК относится нулевая

комбинация 000 ... 00, то минимальное кодовое расстояние dmin для ЦК

определяется минимальным весом разрешенной кодовой комбинации:

min min

d W= . (1.27)

3) Циклический код не обнаруживает только такие искаженные помехами кодовые

комбинации, которые приводят к появлению на стороне приема других

разрешенных комбинаций этого кода из набора Nn.

4) Значения проверочных элементов m = n – k для ЦК могут определяться путем

суммирования «по модулю 2» ряда определенных информационных символов

кодовой комбинации Аi(Х). Например, для кода Хемминга (7,4) с порождающим

полиномом G(X) = X

3

+ Х + 1 алгоритм получения проверочных символов будет

следующим:

1 1 2 3

r i i i = ⊕ ⊕ ,

2 2 3 4

r i i i = ⊕ ⊕ ,

3 1 2 4

r i i i = ⊕ ⊕ .

(1.28)

Эта процедура свидетельствует о возможности «поэлементного» получения

проверочной группы для каждой кодовой комбинации Аi(Х). В соответствии с (1.28) могут

строиться кодирующие устройства для ЦК.

5) Умножение полинома на X приводит к сдвигу членов полинома на один разряд

влево, а при умножении на X

m

, соответственно, на r разрядов влево, с заменой m

младших разрядов полинома «нулями». Умножение полинома на X свидетельствует

о том, что при этой процедуре X является «оператором сдвига». Деление полинома

на X приводит к соответствующему сдвигу членов полинома вправо с уменьшением

показателей членов на 1. Процедура сдвига позволяет к исходной кодовой

комбинации Аi(Х) после умножения ее на X

m

, дописать справа m проверочных

символов. 30 .

3600

1.1 10

1.1 10

10

1.1 10

10

2

5

5

7

12

7

40

час

c

c

V

N

T

ЭВМ

n

ДК =



= ⋅ =



= = =

6) Поскольку разрешенные кодовые слова ЦК Bi(X) без остатка делятся на

порождающий полином G(X) с получением итога в виде информационной

комбинации Аi(Х) (1.17), то имеется возможность формировать Bi(X) на стороне

передачи (кодирующее устройство) простым методом умножения (1.18).

Два последних свойства ЦК позволяют осуществить построение кодеров ЦК двумя

методами: методом умножения и методом деления полиномов. Рассмотрим достоинства и

недостатки этих методов с учетом вариантов построения декодеров ЦК, соответствующих

этим методам.

Метод умножения позволяет при формировании разрешенных кодовых комбинаций

по алгоритму (1.18) использовать любой порождающий полином, лишь бы его

максимальная степень была равна числу необходимых проверочных символов m.

Однако этот метод обладает двумя существенными недостатками.

Во-первых, при формировании ЦК методом умножения в полученной комбинации

Bi(X) в явном виде не содержатся информационные символы. Код получается

неразделимым с «перетасованными» информативными и проверочными символами, что

затрудняет его декодирование, так как это приводит к необходимости применять метод

максимального правдоподобия в декодирующем устройстве (ДУ).

Метод максимального правдоподобия (ММП) предполагает при исправлении

ошибок принимаемую кодовую комбинацию отождествлять с той разрешенной, к которой

принятая находится ближе всего. При таком непосредственном способе декодирования в

памяти запоминающего устройства (ЗУ) декодера необходимо хранить все разрешенные

кодовые комбинации Nn, что требует на стороне приема больших объемов ЗУ и большого

времени обработки при декодировании. Эти обстоятельства являются вторым недостатком

метода умножения при кодировании ЦК.

Исследования показывают, что хороший циклический корректирующий код с

кратностью исправляемых ошибок gи ≥ 5 при относительной скорости кода Вк ≥ 0.5, т. е.

коэффициенте избыточности x ≤ 0.5, должен иметь число информационных символов k ≥

40. Это значение и приводит к техническим трудностям при процедуре декодирования по

ММП, сводящейся к сравнению принятой кодовой комбинации со всеми Nn разрешенными.

Для примера определим время декодирования TДК

принятой кодовой комбинации,

если число информационных символов в ней k = 40 и для сравнения используется ЭВМ со

скоростью 10

7

операций в секунду.

Будем полагать, что для сравнения принятой кодовой комбинации с одной из

разрешенных достаточно одной операции на ЭВМ. Тогда для проведения

40

2 2

n k

N = =

сравнений потребуется время декодирования Как видно из примера, задача декодирования простым перебором и сравнением

непосильна даже для современных ЭВМ.

В соответствии с этим, основным направлением в теории кодирования является

поиск таких кодов и алгоритмов их формирования и обработки, для которых не требуется

хранение в ЗУ разрешенных кодовых комбинаций. Эти задачи решаются, в частности, при

построении кодеров на основе деления полиномов, а при декодировании – на основе

синдромного метода декодирования (СМД).

Метод деления полиномов позволяет представить разрешенные к передаче

кодовые комбинации в виде разделенных информационных Ai(X) и проверочных Mi(X)

символов, т. е. получить блочный код.

Поскольку число проверочных символов равно m, то для компактной их записи в

последние младшие разряды кодового слова надо предварительно к Ai(X) справа приписать

m «нулей», что эквивалентно умножению Ai(X) на оператор сдвига X

m

(см. свойство 5 ЦК).

На практике предпочитают использование метода деления полиномов при

построении кодеков, поскольку при этом имеется возможность представить кодовую

комбинацию в виде разделенных информационных и проверочных символов:

( ) ( ) ( ),

m

B X A X X R X i i i = +

(1.29)

где ( ) R Xi

– остаток от деления ( ) / ( ).

m

A X X G X i

В алгоритме (1.29) можно выделить три этапа формирования разрешенных кодовых

комбинаций в кодирующем устройстве:

1) к комбинации первичного кода Ai(X) дописывается справа m нулей, что

эквивалентно умножению Ai(X) на X

m

;

2) произведение Ai(X) X

m

делится на соответствующий порождающий полином G(X) и

определяется остаток Mi(X), степень которого не превышает m – 1, этот остаток и

дает группу проверочных символов;

3) вычисленный остаток присоединяется справа к Ai(X) X

m

.

Синдромный метод декодирования (СМД) предполагает в ДУ принятую кодовую

комбинацию поделить на порождающий полином. Если принятая комбинация является

разрешенной, т. е. не искажена помехами в канале связи, то остаток от деления будет

нулевым. Ненулевой остаток свидетельствует о наличии в принятой кодовой комбинации

ошибок, остаток от деления и называется синдромом.

Термин «синдром» заимствован из медицинской практики (от греч. вместе бегущий)

и означает сочетание (комплекс) симптомов болезни, характерное для определенного заболевания. В теории кодирования синдром, который также называют опознавателем

ошибки, обозначает совокупность признаков, характерных для определенной ошибки. Для

исправления ошибки на стороне приема необходимо знать не только факт ее

существования, но и ее местонахождение, которое определяется по установленному виду

вектора ошибки z (X).

После передачи по каналу с помехами принимается кодовое слово

'

( ) ( ) ( ), B X B X z X i i = + (1.30)

где Bi(X) – передаваемая кодовая комбинация; z(X) – полином (вектор) ошибки, имеющий

степень от 1 до n – 1.

При декодировании принятое кодовое слово делится на G(X )

'

( )

( ) ( ),

( )

i

i i

B X

U X S X

G X

= + (1.31)

где остаток от деления Si(X) и является синдромом.

Если при делении получается нулевой остаток Si(X) = 0, то выносится решение об

отсутствии ошибки z(X) = 0. Если остаток (синдром) ненулевой Si(X) ≠0, то выносится

решение о наличии ошибки и определяется шумовой вектор (полином) z(X), а затем –

передаваемое кодовое слово, поскольку из (1.30) следует

'

( ) ( ) ( ). B X B X z X i i = +

Всякому ненулевому синдрому соответствует определенное расположение

(конфигурация) ошибок. Взаимосвязь между видом синдрома и местоположением

ошибочного символа находится довольно просто. Достаточно в любую разрешенную

кодовую комбинацию ввести ошибку и выполнить деление на G(X). Полученный остаток

(1.31) – синдром и будет указывать на ошибку в этом символе.

1.5.4. ПОСТРОЕНИЕ ПОРОЖДАЮЩИХ И ПРОВЕРОЧНЫХ МАТРИЦ ЦИКЛИЧЕСКИХ

КОДОВ

Наряду с полиномиальным способом задания кода, структуру построения кода

можно определить с помощью матричного представления. При этом в ряде случаев проще

реализуется построение кодирующих и декодирующих устройств ЦК.

Рассмотрим варианты формирования и обработки ЦК, заданных в виде

порождающих и проверочных матриц, на конкретном примере ЦК Хемминга (7,4),

воспользовавшись выражением (1.25), в котором определены двойственные (дуальные)

порождающие полиномы кода: 7 3 2 3

1 2 3 X X X X X X G X G X G X + = + + + + + = × × 1 ( 1)( 1)( 1) ( ) ( ) ( ) ,

что соответствует кодам (7, 6), (7, 4) и (7, 4).

Пример

Задан ЦК(7,4) дуальными порождающими полиномами

3

G X X (7,4) 1 = + + и

3 2

G X X (7,4) 1. = + + Составить порождающие матрицы для формирования

разрешенных кодовых комбинаций и проверочные матрицы для получения синдромов.

Первой строкой в матрице записывается порождающий полином (в двоичном

представлении) с домножением его на оператор сдвига X

m

для резервирования места под

запись m = 3 проверочных символов. Следующие k – 1 строк матриц получаются путем

последовательного циклического сдвига базового кодового слова матрицы G и



G на одну

позицию вправо, поскольку при этом по определению ЦК также получаются разрешенные к

передаче кодовые комбинации:

1 0 1 1 0 0 0 1

0 1 0 1 1 0 0 2

(7,4)

0 0 1 0 1 1 0 3

0 0 0 1 0 1 1 4

G =



1 1 0 1 0 0 0 1

0 1 1 0 1 0 0 2

(7,4)

0 0 1 1 0 1 0 3

0 0 0 1 1 0 1 4

G = (1.32)

Однако в таком виде эти порождающие матрицы размерностью k × n − (n столбцов,

k строк) могут образовать только неразделимый ЦК, т. е. код, у которого не определены

жестко места информационных и проверочных элементов. Для построения порождающей

матрицы, формирующей разделимый блочный код, необходимо матрицу преобразовать к

каноническому виду путем простых линейных операций над строками,

промаркированными № 1–4.

С учетом свойства ЦК (1.26), каноническую форму матрицы можно получить путем

сложения ряда разрешенных кодовых комбинаций. Каноническая матрица должна в левой

части порождающей ЦК матрицы содержать единичную диагональную квадратную

подматрицу E порядка k для получения в итоге блочного ЦК. С этой целью для получения

первой строки канонической матрицы Gk(7,4) необходимо сложить «по модулю 2» строки с

номерами 1, 3 и 4 матрицы G(7,4), а для матрицы



(7,4) Gk

– строки с номерами 1, 2 и 3

матрицы



G (7,4) . В этом случае в матрицах (1.32) в первых строках остаются «1» только на

первых позициях, а остальные «k–1» символов заменяются «0», что и соответствует первым

строкам единичных подматриц порядка «k». Нормирование последующих трех строк канонических матриц производится путем соответствующего суммирования строк матриц

(1.32).

В итоге имеем следующий вид дуальных канонических матриц:

1 0 0 0 1 0 1 1 1 3 4

0 1 0 0 1 1 1 2 2 4

(7,4)

0 0 1 0 1 1 0 3 3

0 0 0 1 0 1 1 4 4

Gk

= ⊕ ⊕

= ⊕

=

=

=



1 0 0 0 1 1 0 1 1 2 3

0 1 0 0 0 1 1 2 2 3 4

(7,4)

0 0 1 0 1 1 1 3 3 4

0 0 0 1 1 0 1 4 4

G

= ⊕ ⊕

= ⊕ ⊕

=

= ⊕

=

(1.33)

Процесс кодирования первичных кодов на стороне источника сообщений сводится к

умножению информационных посылок, представленных в виде векторов ( ) A Xi

uur

, на

соответствующую порождающую каноническую матрицу:

( ) ( ) . B X A X G i i k =

uur uur

(1.34)

Эта процедура позволяет получить блочные коды Хемминга «в целом», т. е. получить

проверочную группу символов m1, m2, m3 сразу после выполнения операции (1.34).

Наряду с этим имеется возможность формировать символы проверочной группы

поэлементно:

1 1 2 3

r i i i = ⊕ ⊕ ,

1 1 3 4

r i i i = ⊕ ⊕ ,

2 2 3 4

r i i i = ⊕ ⊕ ,

2 1 2 3

r i i i = ⊕ ⊕ ,

3 1 2 4

r i i i = ⊕ ⊕ ,

3 2 3 4

r i i i = ⊕ ⊕ .

(1.35)Обратим внимание на то, что алгоритм (1.35) просто получается из рассмотрения

порождающих коды Хемминга матриц (1.33), в которых проверочные подматрицы,

содержащие 3 столбца (r1, r2, r3), имеют символы «1» в тех строках, номера которых

совпадают с маркировкой информационных символов i в равенствах (1.35) [см. (1.28)].

При матричном варианте обработки принятых кодов на стороне получателя

сообщений для получения синдрома



S необходимо принятую, возможно искаженную в

канале, кодовую комбинацию ( )

'

Bi X умножить на проверочную матрицу Н(Х):

'

( ) ( ).

i

S B X H X =

ur uur

(1.36)

1.5.5. СТРУКТУРНЫЙ СОСТАВ ЛИНЕЙНЫХ ПЕРЕКЛЮЧАТЕЛЬНЫХ СХЕМ

Цикличность перестановок при формировании разрешенных кодовых комбинаций

ЦК лежит в основе техники построения кодирующих устройств (КУ) и декодирующих

устройств (ДУ) циклических кодов. Эта техника применяет сдвигающие регистры (СР) в виде

триггерных цепочек с теми или иными обратными связями. Такие СР называют также

многотактными Линейными Переключательными Схемами (ЛПС) и линейными кодовыми

фильтрами Хафмена, который первым начал изучение ЛПС с точки зрения линейных

фильтров. Кстати, Д. Хафмен является и автором принципа, состоящего в том, что «две

точки зрения лучше, чем одна», получившего широкое применение в настоящее ком-

промиссное время.

При построении ЛПС используется три вида элементарных устройств:

Линейными переключательными схемами с конечным числом состояний называются

любые схемы, содержащие конечное число сумматоров, устройств памяти и устройств

умножения на константу, соединенных любым допустимым способом.

В бинарном случае сумматор (равно как и вычитатель) представляет собой

логический элемент «исключающее ИЛИ», а устройство памяти является устройством



Cумматор имеет, как правило, два входа и один выход,

причем для двоичных кодов суммирование

осуществляется «по модулю 2»

Запоминающее Устройство имеет один вход и один выход

и представляет собой одну триггерную ячейку (один

разряд) СР

Устройство умножения на постоянную величину, имеет

один вход и один выход.
1   2   3   4


написать администратору сайта