Классификация способов построения циклических кодов
В настоящее время существует достаточно большое количество способов (алгоритмов, правил) построения ЦК. Поэтому отметим только те способы построения ЦК, которые имеют простые алгоритмы и находят широкое применение у инженеров и реализуются в реальных системах связи. ЦК могут задаваться с использованием:
- «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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!