Классификация способов построения циклических кодов



В настоящее время существует достаточно большое количество способов (алгоритмов, правил) построения ЦК. Поэтому отметим только те способы построения ЦК, которые имеют простые алгоритмы и находят широкое применение у инженеров и реализуются в реальных системах связи. ЦК могут задаваться с использованием:

- «k» разрешенных КП;

- одной разрешенной КП;

- порождающий Gr,n(x) и проверочный He,n(x) матриц;

-порождающего P(x) и проверочного h(x) полиномов;

- произведения примитивных полиномов mi(x), i =1,3…

Кратко рассмотрим сущность данных способов задания (построения) ЦК, так как некоторые способы построения ЦК будут рассмотрены подробно.

1. Использование «k» разрешенных КП: данный способ построения ЦК находит ограниченное применение (системы и сети телесигнализации, а также в автоматических системах управления(САУ)) в виде низкой корректировочной способности данных кодов и достаточно высокой сложности реализации декодеров. При данном способе построения ЦК чаще всего используется (задаются) ЦК с небольшой длиной КП; n ≈ 7÷16 двоичных символов.

Сущность способа построения ЦК состоит в выборе либо одной разрешенной КП и выполнения ≤(k-1)-го циклического сдвига кодовых символов разрешенной КП, либо в псевдослучайном выборе «k» разрешенной КП с максимальным весом КП.

2. Использование одной разрешенной КП: данный способ построения ЦК состоит в модификации первого способа и сущность его состоит в следующем. Записывается разрешения КП и затем осуществляется необходимое количество циклических сдвигов кодовых символов КП; количество ЦК не должно превышать (k-1) сдвиг. Если требуется получить все 2k, разрешенных КП, то производится посимвольное (суммирование по модулю два)  кодовых символов 1⊕2 строки, 1⊕3 строки, и т.д. до получения требуемого количества разрешенных КП.

Достоинством способа является – простота алгоритма. Недостатком способа – высокая трудоемкость построения кода и реализация кодека.

3. Использование порождающей матрицы Gr,n(x): данный способ построения ЦК, находит очень широкое применение.

При использовании G(x) могут быть построены (сформулированы) как систематические так и несистематические ЦК. Тип формируемого ЦК зависит от типа используемой G(x); а именно, если используется неканоническая G(x), то формируется несистематический ЦК, а если используется канонический или приведенно-ступеньчитая G(x), то формируется систематический ЦК. Порядок (правило) формирования КП данных кодов с использованием G(x) можно записать так:

 

Fi(x) = Q(x) · G′k,n(x)=Q(x) · [I(x) ⋮ П(x)] – систематический ЦК;

 

Fi(x) = Q(x) · G k,n(x) – несистематический ЦК,                          (1.4)

 

где Q(x) – передаваемый информационный блок, записываемый в виде вектора-строки и содержащий «k» двоичных символов.

4. Проверочная матрица He,n(x), как отмечалось выше, используется как для формирования КП (для построения ЦК с заданными параметрами, т.е. (n;k;do)). Нулевые символы строк H(x) определяют позиции информационных символов, участвующих в формировании проверочных символов КП. При использовании H(x) чаще всего формируется систематический ЦК.

При использовании транспортированной HT(x) чаще всего определяется или выбирается соответствующий алгоритм декодирования и чаще всего синдромный алгоритм декодирования. Правило формирования синдрома в общем виде можно записать так:

 

F (x) · HT(x)=S(x) = 0

 

F (x) · HT(x)=S(x) ≠ 0 ,

т.е. при отсутствии ошибок синдром S(x) =0, а при наличии ошибок S(x) ≠ 0.

5. При использовании порожденного (образующего) полинома P(x) могут быть сформированы КП либо систематического, либо несистематического ЦК. Правила формирования КП данных ЦК записывается следующим образом [1-3]:

 

Fi(x) = Q(x) · P(x) – несистематический ЦК;

 

Fi(x)=  + Q(x) · xl=R(x) +Q(x) · xl- систематические ЦК;(1.6)

где R(x) – проверочные символы,

Q(x) · xl – информационные символы, сдвинутые по тактам в КП «k» на позиции.

6. При использовании проверочного полинома h(x), как и при использовании порожденного полинома P(x), могут быть сформированы как систематические, так и несистематические ЦК. ЦК, сформированные с помощью проверочных полиномов h(x), носят название дуальных кодов. Правила формирования КП с использованием h(x) в принципе записываются также, как и при использовании P(x).

7. Использование произведения примитивных полиномов mi(x), i=1, 3,5,…P(x);h(x). Данный способ построения ЦК широкое применение получил в построении БЧХ-кодов. Порождающий полином БЧХ-кодов при использовании корней порождающего полинома записывается следующим образом:

 

                        P(x) = HOK[m1(x) · m3(x)…m2t-1(x)],             (1.7)

 

где mi(x) – примитивные полиномы, порядкового номера, который соответствует корням порождающего полинома.

 

1.5 Общие принципы построения Gk , n ( x ) и Hl , n ( x ) циклических кодов и их взаимосвязь

Так как порождающая Gk,n(x) и проверочная Hl,n(x) матрицы представляют собой сокращенную запись одного и того же ЦК, то между ними существует или имеется следующая взаимосвязь [1-4]:

1) задание одной из матриц позволяет определить основные параметры ЦК, а именно (n, k, d0).

2) задание одной из матриц обеспечивает возможность построения другой;

3) произведение G(x) · HT(x) и GT(x) · H(x)=0.

Далее кратко рассмотрим принципы построения G(x) и H(x) ЦК.

А) Способы построения Gk,n(x):

- формирование Gk,n(x) по правилу – вес проверочной части каждой строки матрицы должен быть ≥d0 – 1 и порождающая матрица должна состоять из двух подматриц: единичной и проверочной.

 

 

                                 Gk,n(x) = ;                          (1.8)

 

- приписывание к строкам единичной подматрицы остатков отделения xn/P(x), т.е.

 

 

                     Gk,n(x)= .              (1.9)

 

Порождающая матрица получается канонического типа и практически данный способ построения G(x) является модификацией способа, рассмотренного выше:

- при использовании порождающего полинома P(x), применяется следующее правило:

а) переводим порождающий полином P(x) из формы записи полинома в двоичную форму записи,

б) записываем порождающий полином в двоичной форме в качестве первой строки G(x) и дополняем ее справа (слева) нулевыми символами до получения «n» столбцов G(x);

в) выполняем (k-1) циклический сдвиг кодовых символов первой строки влево или вправо.

Записываем P(x) в качестве первой строки порожденной матрицы, дополняем нулями до n=10 и выполняем (k-1) = (5-1) = 4 циклических сдвига кодовых символов первой строки. В результате получаем следующую порождающую матрицу:

Порождающую матрицу можно построить по следующей методике:

1) переводим (можно не переводить) порождающий полином P(x) из формы многочлена в двоичную форму записи, т.е. P(x) = x5+x4+x2+1→110101;

2) умножаем P(x)= 110101 на одночлен вида xk-1, т.е. на 1000; в результате получаем строку G(x); а далее используем циклический сдвиг (k-1) раз полученной строки G(x).

Процесс кодирования информации или процесс формирования КП записывается так:

 

Fi(x) = Q(x) · Gk,n(x) ,

 

где Q(x) – передаваемый информационный блок, содержащий k-1 двоичных символов.

Б) Способы построения проверочной матрицы He,n(x) ЦК:

- с использованием заданной порождающей матрицы ЦК для построения проверочной матрицы He,n(x) по заданной порождающей матрице Gk,n(x) записать в виде первого столбца He,n(x), проверочную часть второй строки Gk,n(x) записать в виде второго столбца He,n(x) и так далее до последней строки Gk,n(x), а далее в проверочной матрице He,n(x) дописать единичную матрицу;

- с использованием заданных параметров ЦК, а именно, n и h(x). Для этого необходимо проверочный полином h(x) перевести в двоичную форму записи, а записать его в виде первой строки He,n(x) и дописать «k» нулевым символом. Далее выполнить l-1 циклических сдвигов данной строки; в результате будет построена проверочная матрица неканонического вида. Для приведения ее к каноническому виду необходимо выполнить ряд операций над строками и столбцами.

- ЦК, корректирующие модульные ошибки, имеют более сложные правила построения проверочных матриц, так как содержат ряд единичных подматриц I(x) рангом (tn · tn) и ряд (или более) проверочных подматриц, hi рангом или размерностью (l-tn) · tn и столбцы hj,l каждый из которых представляют собой двоичный код номера i; т.е.

 

                                     i = hj,I · 2j-1,                            (1.10)

 

где Ɛ = 1- tn.

В общем виде проверочную матрицу данного кода можно записать или представить так:

 

                                  H(x) =  .                        (1.11)

 

Из ЦК в настоящее время широкое применение в телекоммуникационных системах получили коды Рида-Маллера, достоинствами которых являются: возможность использования различных алгоритмов декодирования (алгебраических и вероятностных) и т.д.

 

 

 

 

 

 

2 ОБЩИЕ СВЕДЕНИЯ О ЦИКЛИЧЕСКИХ КОДАХ РИДА-МАЛЛЕРА

 

В соответствии с [1-4] коды Рида-Маллера (КРМ) относятся к групповым несистематическим (неразделимым) кодам с простым способом задания. Декодирование КРМ чаще всего реализуется мажоритарным и синдромным способоми. Однако возможно декодирование кодов по максимуму правдоподобия. В общем КРМ эквивалентны циклическим кодам с добавлением общей проверки на четность. Достоинствами данных кодов являются простота их задания и минимальная сложность реализации алгоритмов кодирования и декодирования. Недостатком КРМ является слабая (низкая) корректирующая способность; данные коды чаще всего применяются для коррекции ошибок кратностью не более трех двоичных символов.

Сущность КРМ и, следовательно, их определение состоит в следующем [1-4]: пусть Fo(x) есть кодовая последовательность (кодовый вектор), состоящая из одних логических единиц (1), а кодовые последовательности F1(x), F2(x),…,Fm(x) образуют строки матрицы, столбцами которой являются все двоичные наборы длиной m двоичных символов; m может иметь разное значение (величину),т.е. величина m≥2. В этом случае для любых целых чисел m и E (E<m) можно построить помехоустойчивый код длины n=2m двоичных символов, который называется кодом Рида-Маллера E-го порядка. В реальных системах связи КРМ с порядком E>3 практически не используются.

КРМ E-го порядка содержит в качестве базиса (основы) кодовые последовательности F0(x), F1(x),…,Fm(x) и все поэлементные (полуразрядные) произведения E или меньшего числа этих последовательностей. В данном определении поэлементные произведения кодовых последовательностей (условно: a=(a1a2…an) и b=(b1b2…bn)) задается формулой a·b=(a1·b1,a2·b2,…,an·bn).

КРМ E-го порядка дуален (двойственен) помехоустойчивому коду (m--E-1) порядка.

КРМ E-го порядка длины n=2m двоичных символов задается (строится) порождающей матрицей вида [1-4]:

 

                                       G(x) = ,                                (2.1)

 

где G0(x) – кодовый вектор (кодовая последовательность) длиной n=2m двоичных символов, состоящих из одних ″1″;

G1(x) – матрица размерности (m·2m), содержащая в качестве столбцов все двоичные m-последовательности;

GE (x) – матрица, строки которой получаются из строк матрицы G1(x) как все возможные произведения E строк из матрицы G1(x); для определенности обычно принимают, что первый столбец в G1(x) состоит из одних ″0″, а последний из одних ″1″.

Коды Рида-Маллера имеют простые выражения для определения основных параметров данных кодов, а именно n=2m двоичных символов – длина кодовой последовательности: k =  двоичных символов – длина или количество информационных символов;

d0=2m-E – минимальное кодовое расстояние;

d =  – кодовое расстояние.

Кроме того, возможно определение параметров КРМ по следующей методике: длина кодовой последовательности определяется рангом порождающей, т.е. n=2m.

Параметры k и l=n-k КРМ E-го порядка можно определить используя следующие выражения:

 

          k = 1+  +  + … + , двоичных символов   (2.2)

 

l = n – r = 1+  +  + … + , двоичных символов (2.3)

 

Далее установим связь КРМ с другими линейными блоковыми кодами. КРМ нулевого порядка (E-0) является (n, k)=(n, 1) – кодом и соответствует коду с повторением и использует мажоритарный алгоритм декодирования. Минимальное кодовое расстояние такого кода равно d0=2m, а так как в этом случае m=2, то d0=22=4.

КРМ первого порядка (E=1) тесно связаны с кодами максимальной длины, которые, в свою очередь, дуальны кодам Хэмминга. Если начать построение помехоустойчивого кода с построения кода максимальной длины и расширять его путем добавления общей проверки на четность, то получим ортогональный код. Данный код имеет длину n=2m двоичных символов и вес каждой ненулевой кодовой последовательности равен wi= d = 2m-1. Следовательно, любые две кодовые последовательности совпадают в 2m-1 позициях и различаются в остальных 2m+1 позициях. Используя этот код с противоположными сигналами, получим множество из 2m ортогональных сигналов для 2m кодовых последовательностей; отсюда и название ортогональных сигналов.

КРМ первого порядка получаются непосредственно из ортогонального кода добавлением кодовой последовательности состоящей из ″1″. Если же рассматривать передаваемые сигналы, то эта процедура эквивалентна добавлению дополнительных сигналов к первоначальному множеству ортогональных сигналов. По этой причине полученный код называют биортогональным кодом [3,4].

Рассмотрим принцип построения КРМ с использованием методики построения КРМ, приведенной в [1] и следующих исходных данных кода: m=4 и E=3. Следовательно, необходимо определить все параметры КРМ третьего порядка. Далее определяем параметры кода n, k и d0:

n=2m=24=16, двоичных символов – длина кодовых последовательностей;

k = 1+  +  +  = 1 + C1m + C2m + C3m = 1 + 4 + 6 + 4 = 15, двоичных символов – длина информационного блока;

d0=2m-E=24-3=2.

Данный КРМ задается порождающей матрицей вида

 

                                       G(x) = .                                (2.4)

 

Строим порождающие матрицы G0(x), G1(x), G2(x) и G3(x) данного кода.

Порождающая матрица G0(x) содержит одну строку (обозначим строку буквой a0) логических единиц с количеством равной n=2m=24=16 двоичных символов и имеет следующий вид:

 

                       G0(x) = [1111111111111111] = [a0].               (2.5)

 

Порождающая матрица G1(x) содержит m=4 строки; первая строка матрицы  =  = 8 логических нулей (0) и логических единиц (1). Последующие строки данной матрицы строятся аналогичным способом, т.е. делением последовательностей 1 и 0 строк на два. Порождающая матрица G1(x) имеет следующее построение:

 

                    G1(x) =  = .             (2.6)

 

Из данной матрицы видно, что столбцы матрицы представляют собой последовательность чисел, записанных в двоичной системе счисления; младшие разряды (символы) внизу. Следовательно, столбцы G1(x) можно рассматривать как последовательности состояний двоичного суммирующего счетчика, что условно можно представить так:

 

 

                                         G(x) = ,                                  (2.7)

 

где 1 – последовательность из одних 1,

Sδ1 – последовательность состояний последнего (старшего) разряда счетчика,

Sδm – последовательность состояний первого (младшего) разряда счетчика.

Примечание: перестановка столбцов и строк порождающей матрицы приводит к эквивалентным кодам. Строки в порождающих матрицах линейно независимы. Поскольку матрица G1(x) имеет четыре строки, то матрица G2(x) будет иметь  =  = 6 строк, которые получаются путем покомпонентного (поэлементного) перемножения строк матрицы G1(x) [1-4]:

 


Дата добавления: 2018-10-27; просмотров: 445; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!