![](/user_photo/_userpic.png)
книги из ГПНТБ / Теория и техника передачи данных и телеграфия учебник
..pdfпомех трансформируется в комбинацию (1 1 0 0 0 0 1), отли чающуюся от переданной в 4-м разряде, то синдром, вычислен ный в декодирующем устройстве приемника, будет иметь вид Sf=100 . Следовательно, ошибка произошла в 4-м разряде.
Кодирующие и декодирующие устройства для кодов Хэмминга строятся на основе систем проверочных соотношений
матрицы |
проверок. При |
этом в случае |
упорядоченной |
записи |
||||||
столбцов |
Н(Л , k) |
в |
качестве проверочных |
разрядов |
удобно |
вы |
||||
бирать |
разряды |
с |
номерами 2\ где і — 0 , 1 , . . . , |
г — 1, |
так |
как |
||||
в этом |
случае |
каждая строка Н( „,*) однозначно |
выражает |
из |
||||||
быточный |
элемент |
через |
информационные. |
|
|
|
|
|||
Рассмотрим построение кодирующих и декодирующих |
||||||||||
устройств |
кода |
Хэмминга на примере (7,4)-кода. |
В этом |
слу |
||||||
чае 1, 2, |
4-й элементы |
кодовой комбинации удобно |
выбрать |
избыточными. Тогда связь между избыточными и информаци онными элементами по матрице Н(7,4> устанавливается сле дующим образом:
а, = а 3 + а 3 -f- а 7 , а-, — а-д-\~ ай -f- а 7 , а 4 = а 5 -f- а 6 -+- а 7 .
Структурная схема кодирующего устройства изображена на рис. 6.6а. Информация из источника параллельным кодом запи сывается в 3, 5, 6 и 7-ю ячейки регистра и одновременно по дается на входы соответствующих сумматоров по модулю 2 для формирования избыточных элементов. Сформированные избы точные элементы записываются в 1, 2 и 4-ю ячейки регистра, после чего вся коловая комбинация выводится из регистра к вы ходу передатчика.
Устройство исправления ошибок изображено на рис. 6.66. Принятая кодовая комбинация записывается в приемный ре гистр, ячейки которого в соответствии с проверочными соотно шениями поданы на входы трех сумматоров (вычислитель син дрома). Вычисление синдрома происходит после того, как вся принятая комбинация записана в приемный регистр. При нали чии ошибки на выходе дешифратора появится сигнал, который запишет «1» в соответствующую ячейку регистра исправления. После вычисления синдрома происходит считывание принятой комбинации из приемного регистра через сумматор исправления. На другой вход сумматора исправления подается содержимое
регистра исправления, причем информация из |
одноименных |
ячеек регистров поступает на входы сумматора |
одновременно. |
На выходе сумматора исправления ошибочно принятый элемент будет инвертирован, т. е. исправлен.
Бели код используется только для обнаружения ошибок, то декодирующее устройство упрощается (рис. б.бв). В этом случае достаточно выходы сумматоров S u S2, S3 подать на схему ИЛИ. Если хотя бы одно проверочное соотношение не удовлетворяется, то на выходе схемы ИЛИ появится сигнал «Ошибка».
Рассмотренные примеры дают представление о принципах по строения кодирующих и декодирующих устройств для кодов
|
а) |
|
Источник |
|
|
|
|
|
|
||
|
|
информдц ии |
|
тт |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rn |
|
|
Выход |
|
|
|
Регистр |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||
|
Tu |
f |
7 |
7 |
7 |
7 |
|
|
|
|
|
|
|
Приемный |
регис/пр |
Т/. |
|
|
|
|
|||
Вход |
у |
/ |
; |
; |
; |
; |
* |
е |
Выход |
Л' наполите/гю |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
I |
|
|
|
анформааион- |
||
|
|
|
|
|
|
|
ТСумматор |
ных |
разрядов |
||
|
|
|
|
|
|
|
|
\испраіления |
|
||
вычисм/пель |
Ц |
|
5 |
і |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Синдрома |
|
|
|
|
|
|
Регистр |
|
Цешиїрраторь," Ж |
исправления |
|
ТЦ Приемный регистр
Выход
н наноли/пея/о анформацг/оннб/х
раз/>/)&0д°
ВычисрителА^
синдрома
.Хэм-минга. Однако более рациональным является построение ко
дирующих и декодирующих |
устройств |
для этого класса |
кодов |
на базе циклических кодов. |
|
|
|
Оценим эффективность кодов Хэмминга. Вероятность нали |
|||
чия ошибок в комбинации |
на выходе |
декодирующего |
устрой- |
ства |
при исправлении ошибок равна Я, |
|
1 - я |
||||||
Р |
а при |
||||||||
обнаружении |
Я 0 |
|
Р |
' 2 r - |
1 V- |
Выигрыш |
по достоверно |
||
|
2Г |
3 |
|
||||||
|
|
|
|
|
|
|
|
||
сти |
по сравнению |
с простыми |
кодами той же длины составляет |
||||||
|
Я ( > 1 , п) |
0 i _ „ |
, т]0 |
Я ( > 1 , п) |
|
0 r |
, т. е. исправле- |
||
І]И = — |
= 2 |
|
= — |
р——- |
|
= 2 Г - 3 |
|||
|
* о ш и |
|
|
|
|
* о и о |
|
|
|
ние однократных ошибок менее эффективно в реальном кана ле, чем проверка на четность или нечетность, в то время как использование кодов Хэмминга для обнаружения ошибок по зволяет обеспечить любую степень повышения достоверности соответствующим выбором числа избыточных элементов п — k.
|
|
6.5.2. Коды Хэмминга |
с d m m |
= 4 |
|
|
На |
основе |
(п, &)-кода Хэмминга |
с а*М И н = |
3 можно получить |
||
( я + 1 , |
&)-код |
Хэмминга с dMvm = 4. |
Для этого |
в кодовую |
комби |
|
нацию |
ВВОДИТСЯ ДОПОЛНИТеЛЬНЫЙ |
ИЗбыТОЧНЫЙ Элемент, |
Я І В Л Я Ю - |
щийся результатом проверки на четность всех элементов кодо
вой комбинации. Матрица проверок для (п+ |
1, k) -кода |
Хэмминга |
|||||||||||
с я'мип = 4 получается |
из матрицы |
проверок |
(п, &)-кода |
с d„mi |
— 'S |
||||||||
путем введения дополнительной |
строки из /г+1 единиц и прини |
||||||||||||
мает вид |
|
|
|
|
|
|
|
О" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Н(Л |
|
|
|
н(л, |
к) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
11 |
11 |
|
|
|
|
||
где |
Н(„,/4) — матрица |
проверок |
кода |
с |
<іМин = 3. |
Например, |
из-. |
||||||
(7,4)-кода можно получить (8,4)-код |
с а*М ин = 4. Матрица прове |
||||||||||||
рок |
(8,4)-кода |
имеет вид: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 1 |
1 |
1 |
1 |
0 |
0 |
0 |
о- |
|
|
|
|
Н(8,4) = |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
|
||
|
|
|
|
|
|
||||||||
|
|
|
- 1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 - |
|
|
|
|
|
§ |
6.6. |
Циклические коды |
|
|
|
||||||
|
6.6.1. |
Определение |
|
циклического |
|
(п, |
к)-кода |
|
|
Среди многообразия групповых кодов особое место занимаютциклические коды, которые отличаются простотой реализации,, возможностью построения кода любой длины с известными кор ректирующими свойствами, рациональным соотношением между7
избыточностью и корректирующей способностью (в этом отноше нии они близки к границе Хэмминга). С целью описания и зада
ния циклических (п, к)-кодов |
используют представление кодо |
|
вых комбинаций в виде многочленов, |
степень которых не превы |
|
шает п—\, а коэффициентами |
являются двоичные элементы «0» |
|
и «1» |
|
|
Многочлены, отображающие кодовые комбинации, можно складывать, умножать и делить по обычным правилам с приве дением поюбных членов по модулю 2, при этом степень много членов при умножении не должна превышать п— 1. Результат умножения приводят по модулю двучлена хп+\. Для того чтобы некоторое множество многочленов составило корректирующий код, необходимо разрешенным кодовым комбинациям придать определенные признаки, которыми они отличались бы от запре щенных комбинаций. В циклических кодах характерным призна ком разрешенных комбинаций является делимость соответствую щих им многочленов на некоторый многочлен, степень которого равна n — k. Этот многочлен называют порождающим или обра зующим многочленом циклического кода.
Циклическим (п, k) -кодом называется код, множество ко довых комбинаций которого представляется совокупностью
многочленов степени « — 1 |
и менее, делящихся |
на некоторый |
||
многочлен g(х) |
степени |
n—k, |
являющийся |
сомножителем |
двучлена х" + \. Свое название коды, отвечающие данному определению, получили в силу присущего им свойства циклич
ности: для любой кодовой комбинации |
|
V — (vn, |
v},..., |
|
vn^) |
||||||||||||||
циклический |
сдвиг на единицу |
РЛЄВО |
V" = |
v2,• |
|
vn} |
|||||||||||||
или |
вправо |
V" |
= |
(vn-\, |
v0,..., |
|
v„-2) |
также |
является |
кодовой: |
|||||||||
комбинацией. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
П р и м е р . |
Изиестно разложение х7 4 |
1 на |
неприводимые сомножители: |
|||||||||||||||
Xі |
4- |
1 = |
(1 + л-) (1 |
+ |
х +х3) |
(1 |
+ х2 |
+ х3). |
Найти |
все циклические |
(п, |
6)-коды- |
|||||||
с |
п = |
7, |
котооые можно построить на основе данного разложения. |
|
|
||||||||||||||
|
По определению циклического кода любой делитель Xі + 1 является по |
||||||||||||||||||
рождающим многочленом |
циклического |
кода |
длины 7. |
Возможные |
делители- |
||||||||||||||
XІ |
+ |
1 (порождающие многочлены) |
и соответствующие |
им |
коды |
сведены в- |
|||||||||||||
таблицу. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Делитель |
Xі |
+ |
1 — порождающий |
многочлен |
кода |
|
|
|
Код |
||||||||
|
(-*") |
= |
14--* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(7.6) |
|
|
|
= |
1 + X + |
X3 |
|
|
|
|
|
|
|
|
|
|
|
|
(7.4) |
||
gj |
(х) = |
1 -f X2 |
+ |
X3 |
|
|
|
|
|
|
|
|
|
|
|
|
(7,4) |
||
g4 (X) = |
(1 |
T x) (1 |
-f |
x + x3) = |
1 + |
л? + |
x3 + XІ |
|
|
|
|
|
(7,3) |
||||||
g'Ax) = |
(1 |
+ x) (1 |
4- |
X* + x3) = |
1 + |
x + |
Xі |
+ x* |
|
|
|
|
|
(7.3) |
|||||
gv,(x) |
= (! + x + x3)(\ +x* + x3) = l 4- x + X і |
+ x3 |
+ x< + x~°+x« |
|
(7.1) |
Из приведенного примера видно, что любой делитель хп + [ можно использовать в качестве порождающего многочлена цик лического кода длины п. Однако не любой делитель порождает циклический код с требуемыми корректирующими свойствами.
Циклические коды относятся к групповым, во-первых, потому, что операция сложения многочленов совпадает с операцией сло жения векторов; во-вторых, совокупность многочленов, деля щихся на порождающий многочлен g(x), должна быть замкнута в отношении операции сложения, так как если каждое из сла гаемых делится на g(x), то и их сумма делится на g(x) и сте пень суммы не превосходит степеней слагаемых; в-третьих, нуле вая комбинация принадлежит циклическому коду, так как нуль
делится |
без остатка |
на |
g(x). |
|
|
|
|
6.6.2. Порождающая |
и проверочная |
матрицы |
циклического |
кода |
|||
Порождающая матрица циклического кода может быть по |
|||||||
строена |
по порождающему многочлену g(x). |
Для |
построения |
||||
порождающей матрицы необходимо |
по g(x) сформировать k |
ли |
|||||
нейно-независимых кодовых комбинаций. Так как g(x) |
является |
||||||
кодовой |
комбинацией, |
то и циклические сдвиги g(x) |
также |
есть |
кодовые комбинации. Алгебраически сдвиг вправо соответствует
умножению |
на х. |
Циклическим |
сдвигом g(x) |
является |
xg(x) — |
||||||||
многочлен |
степени n — k + |
\. Подобным |
образом можно |
получить |
|||||||||
кодовые комбинации x2g(x), |
x3g(x), |
|
rh-У |
|
|
|
|
||||||
Рассмотренные кодовые комбинации |
линейно-независимы |
||||||||||||
так как степени их различны |
и, |
следовательно, |
могут |
быть |
|||||||||
использованы |
в качестве строк |
G(n , |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
Цп, |
k) |
X2 |
g(x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
g(x) |
|
|
|
|
|
|
С другой |
стороны, |
циклический |
(п, |
k)-код, |
как |
и |
любой |
||||||
групповой |
код, |
может |
быть задан |
через |
двойственный |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
хп 4- Г |
|
(л, п — Л)-код, |
порождаемый |
многочленом |
h (х) = |
—-.——. |
|||||||||
|
h (х) |
|
|
|
|
|
|
|
|
|
g |
\х) |
|
Многочлен |
принято |
называть |
проверочным |
многочленом. |
|||||||||
-Матрица проверок циклического (п, |
k)-кода |
в качестве строк со |
|||||||||||
держит проверочный |
многочлен |
п{х) |
и n — k—l |
его |
сдвигов: |
||||||||
|
|
|
|
|
|
h(x) |
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
h{x) |
|
|
|
|
|
|
|
|
|
Н( Я , * ) |
Xі |
|
h(x) |
|
|
|
|
|
|
xn-k-lh(x)
g(x) |
П р и м е р . |
Для циклического (7,4)-кода |
с |
порождающим |
многочленом |
||||||||
= 1 -f х + |
Xі |
построить |
порождающую |
матрицу. Находим: |
|
||||||||
|
|
|
|
|
1 x x"-i~ |
|
1 1 0 1 0 0 0~ |
||||||
|
|
|
х |
g(x) |
X +ХЇ |
+ Xі |
0 |
I 1 |
0 |
1 |
0 0 |
|
|
|
|
|
Jfig |
(X) |
xn- -f x* |
-f X'> |
0 |
0 1 |
1 |
0 |
1 0 |
|
|
|
|
|
_x3g (x)_ |
XiJ^Xl |
-f Xs |
0 |
0 0 |
1 |
1 |
0 і |
|
||
|
При задании циклических кодов следует учитывать специ |
||||||||||||
фику действий |
над многочленами |
по сравнению с векторами и, |
|||||||||||
в |
частности |
тот факт, |
что умножение |
многочленов |
не совпа |
дает со скалярным произведением векторов, отображающих данные многочлены. Однако в случае приведения произведе ния многочленов по модулю двучлена хп + 1 между этими понятиями существует весьма тесная связь. Пусть имеется
вектор |
(а 0 , |
а , , . . . , |
а„ _ і) |
и |
соответствующий |
ему |
многочлен |
|||||||||||||||
а |
(х) |
= а0 + |
ахх |
+ |
.. |
. + |
ап^ххп-{ |
|
, |
|
а также |
|
вектор |
(b0, |
|
Ь и . . . , |
||||||
bn-i) |
и |
соответствующий |
ему |
многочлен |
b (х) = Ь0 |
+ |
Ьлх |
|||||||||||||||
+ . . . |
+ bn-\xn~l. |
Будем |
считать |
многочлены |
а{х) |
и b(х) |
орто |
|||||||||||||||
гональными, если выполняется условие а(х)Ь(х) |
|
= 0. |
Коэф |
|||||||||||||||||||
фициент |
при |
х' |
в |
произведении |
|
с (х) |
— а (х) |
b (х) |
равен с} = |
|||||||||||||
= |
а0 |
bj + a ^ y - i + |
. . . + |
a.jb0 |
+ |
a1+xbn-X |
+ . . . +an-\b}+x. |
|
Слагае |
|||||||||||||
мые,содержащие |
0 / + i , . . . , а„-\, |
появляются |
|
вследствие |
сущест |
|||||||||||||||||
вования слагаемых в произведении, которые содержат хп+'. |
Так |
|||||||||||||||||||||
как |
произведение |
приводится |
по модулю х" -+- 1, то |
+ |
1 = 0 , |
|||||||||||||||||
т. е. хп |
— 1 и xn+J |
= xL |
Равенство |
для Cj можно |
представить |
|||||||||||||||||
в |
виде |
скалярного |
произведения |
|
Cj = |
( а 0 , |
а , , . . . , |
а„_і) |
||||||||||||||
|
|
|
Ь0, Ь „ _ і , . . . , |
bj+i). В |
этом |
произведении |
первый век |
|||||||||||||||
тор соответствует |
а |
(х), |
а |
второй |
вектор |
содержит |
коэффици |
|||||||||||||||
енты |
b (х), |
расположенные |
в |
обратном |
порядке |
и сдвинутые |
||||||||||||||||
циклически |
на j -+-1 |
элемент |
вправо. |
|
|
|
|
|
|
|
|
|
||||||||||
|
Таким образом, если |
произведение |
а{х)Ь{х) |
|
равно |
нулю, |
||||||||||||||||
то |
вектор, |
соответствующий |
|
многочлену |
|
а(х), |
ортогонален |
|||||||||||||||
вектору, |
соответствующему многочлену |
b (х), |
компоненты ко |
|||||||||||||||||||
торого расположены в обратном порядке, |
и, кроме |
того, |
каж |
|||||||||||||||||||
дому |
циклическому |
сдвигу |
|
этого |
вектора. |
|
Верно |
|
также |
|||||||||||||
и обратное утверждение. Если |
вектор |
(а 0 , а,,..., |
|
а„_і) орто |
||||||||||||||||||
гонален |
вектору |
(bn-i, & „ _ 2 , . . . , |
Ь0) и |
каждому |
циклическому |
|||||||||||||||||
сдвигу этого вектора, то а(х)Ь(х) |
|
= |
0. |
|
Учитывая |
данную |
||||||||||||||||
Специфику, |
необходимо |
при матричном описании |
циклического |
|||||||||||||||||||
кода элементы матрицы проверок или порождающей |
матрицы |
|||||||||||||||||||||
записывать в обратном порядке. В этом случае |
будет |
выпол |
||||||||||||||||||||
нено условие G ( n |
> k) Н(и, k) = |
0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
П р и м е р . |
Построить матрицу |
проверок |
для |
циклического |
(7,4) -кода |
||||||||||||||||
из предыдущего примера. Для построения |
матрицы |
проверок |
находим про- |
|||||||||||||||||||
|
|
|
|
|
|
|
|
х7 |
+ 1 |
|
|
|
|
|
|
|
|
|
|
|
|
верочный многочлен h (х) = у——-—-г — 1 + х + х* + Xі.
Отсюда
h |
(х) |
- |
! |
• х |
х* |
х* |
1 |
1 |
1 |
0 |
1 |
(I |
0; |
х h |
(х) |
|
х |
-~ Xі-г |
X* -Ь х:' |
— О I |
I |
1 0 |
|
1 |
0; |
||
х2/г |
(х) = |
х2 |
-Ь л;:' |
х< |
f х л |
= 0 |
0 |
1 |
1 |
1 |
0 |
1. |
Найденные векторы записываем в качестве строк матрицы проверок
4(7,4) в |
обратной последовательности: |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
0 |
0 |
1 0 |
1 |
1 |
Г |
|
|
|
|
|
|
|
|
Н(7,4) |
0 |
1 0 |
1 1 1 0 |
|
|
|
|
|||
|
|
|
|
|
1 0 |
1 1 1 0 |
|
0 |
|
|
|
|
||
В |
полученной матрице проверок в качестве столбцов записаны все семь |
|||||||||||||
ненулевых |
последовательностей длины |
3. Следовательно, данный код явля |
||||||||||||
ется кодом Хэмминга. |
|
|
|
|
|
|
|
|
|
|
|
|||
6.6.3. |
Каноническая |
форма |
порождающей |
|
и проверочной |
матриц |
||||||||
Условимся |
в кодовой |
комбинации |
циклического |
(/г, |
k)-кода |
|||||||||
первые n |
— k |
элементов, |
т. е. коэффициенты |
при Л"°, |
х\ |
х 2 , . . . , |
||||||||
xn-k-i |
^ использоБать в качестве |
проверочных |
элементов, а по |
|||||||||||
следние k |
элементов, т. е. коэффициенты при |
хп- |
|
|
|
|||||||||
|
в |
качестве |
информационных |
|
|
(рис. 6.7). |
Такое |
разме |
||||||
щение информационных и проверочных |
элементов |
обусловлено |
особенностями реализации кодирующих и декодирующих уст
ройств |
циклических |
кодов. |
|
|
|
|
|
|
|||
|
|
о |
_/ |
|
|
п-к |
|
|
п-г |
1Ы |
|
|
|
X |
X ' ' |
• X X X |
• • • X X |
|
|||||
|
|
избыточные |
|
|
(Інірормааионньїе |
|
|||||
|
|
|
м ементы |
|
зле |
менты |
|
|
|||
|
|
|
r*L (х) |
|
|
ас |
fx) |
• х а ' к |
|
||
|
|
|
|
|
|
Рис. 6.7. |
|
|
|
|
|
Методика формирования кодовой комбинации, соответству |
|||||||||||
ющей |
данной |
структуре, |
заключается |
в |
следующем. |
Пусть |
|||||
at(x) |
есть |
многочлен |
степени k — 1, соответствующий |
комби |
|||||||
нации простого ^-элементного кода, |
которую |
необходимо за^ |
|||||||||
кодировать |
циклическим |
(п, |
k)-кодом. |
|
В |
комбинации |
цикли |
||||
ческого ( « , |
&)-кода |
данную |
^-элементную |
комбинацию |
необ |
ходимо поместить на позиции информационных разрядов. Для
этого многочлен а,(х) следует |
умножить |
на хп~к. |
В резуль |
тате получим многочлен xn~kai (х), |
степень |
которого |
р а в н а я — 1 . |
Потребуем выполнения признака делимости кодовой комбина
ции на |
g(x). |
В общем случае |
при |
делении |
хп~"аі(х) |
на g |
(х) |
||
получается |
частное qt |
(х) |
степени |
k — 1 и остаток, |
степень |
ко |
|||
торого |
не превышает |
n — k— |
1. Результат |
деления |
представим |
||||
в виде |
|
|
|
|
|
|
|
. ., . |
|
|
|
хп-*а, |
(х) = |
g (х) qt |
{х) + г І |
(х). |
|
|
Рассмотрение многочлена rL (х) |
4- xn~kai |
|
(х) |
показывает, |
что |
||||||||||||||||||||
коэффициенты при х°, Xі, |
|
х2,. |
|
t-n-k |
— X являются |
коэффици |
|||||||||||||||||||
ентами остатка rt{x), |
|
а |
|
коэффициенты |
|
при |
|
степенях |
хп~к, |
||||||||||||||||
х"~к+*,..., |
|
|
хп~1 — элементами |
|
первичной |
кодовой |
|
комбина |
|||||||||||||||||
ции |
aL{x). |
С |
другой |
стороны, |
rt(x) |
|
І - xn^kal |
(х) |
= |
g |
(х) |
qt{x), |
|||||||||||||
т. е. многочлен rt (х) + хп~ка1{х) |
|
|
делится |
на g |
(х) |
без |
остатка. |
||||||||||||||||||
Итак, |
ri |
(х) |
-j- xn~kal |
(х) |
и |
есть |
искомая |
кодовая |
|
комбинация |
|||||||||||||||
циклического |
(п, |
|
к)-кода. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Теперь |
можно |
записать |
порождающую |
матрицу |
цикличес |
||||||||||||||||||||
кого |
(п, |
к) |
-кода |
в канонической |
форме: |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
G(n, k) = [ Rfcx(n-ft)lfc], |
|
|
|
|
|
|
|
|||||||||||
где |
\k |
— единичная |
матрица |
размеров |
ky^k; |
Rkx(n-k) — матрица |
|||||||||||||||||||
из k |
строк |
и п — k столбцов, |
/-я строка |
которой |
соответствует |
||||||||||||||||||||
остатку |
от |
деления |
х!+п~к~х |
|
|
на |
g |
(х). |
|
|
|
|
|
|
|
|
|
||||||||
Матрица |
проверок |
в |
канонической |
форме |
Н<п, *, |
строится |
|||||||||||||||||||
на основании матрицы |
G ( n , k ) ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
Н(л,fc)= [l(n-fe)R*X(n-*)]- |
|
|
|
|
|
|
|
|
|||||||||||
П р и м е р . |
Построить |
порождающую матрицу |
и |
матрицу |
проверок |
||||||||||||||||||||
в канонической форме для циклического (7,4)-кода |
с порождающим много |
||||||||||||||||||||||||
членом |
g |
(х) |
= |
I -j- х |
+ |
х3. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Находим остатки от деления х> |
иа g (х) |
и записываем |
в форме равен |
||||||||||||||||||||||
ства |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xn~kai |
|
(х) = |
g(x)qi(x) |
|
|
|
+ |
П |
(x). |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
x° |
= |
g(x)-0 |
|
|
|
|
|
|
|
|
|
|
|
|
1 0 |
0 |
|
|
|
|
||
|
|
|
x=g(x)0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 0 |
|
|
|
|
|||
|
|
|
x*=g(x)-0 |
|
|
|
|
|
|
|
|
|
|
xi |
|
0 |
0 1 |
|
|
|
|
||||
|
|
|
xi |
= |
g(x)-l |
|
|
|
|
+ |
1 + |
x |
|
|
|
1 1 0 |
|
|
H (7,4) |
|
|||||
|
|
|
x*=g(x)-x |
|
|
|
|
|
+ |
|
|
x- • X* |
|
0 |
1 1 |
|
M X 3 |
|
|||||||
|
|
|
X° = g (X) |
(1 + |
Jfl) |
|
|
+ |
1 +x |
- |
x* |
|
1 |
1 1 |
|
|
|
|
|||||||
|
|
|
x* = |
g(x) |
(1 +X |
+ |
X*) |
|
1 |
|
+ |
x4- |
|
1 |
0 1 |
|
|
|
|
||||||
Окончательно получаем |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
0 |
0" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O i l |
|
0 1 0 0 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
° ( 7 , 4 ) |
|
- |
1 1 1 |
|
0 0 1 0 |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
J |
0 |
1 |
о 0 0 1_ |
|
|
|
|
|
|
|
||||
Из рассмотренного примера видно, что проверочная мат |
|||||||||||||||||||||||||
рица |
Н(„, к) |
циклического |
|
(л, |
k)-кода |
|
содержит |
в |
качестве |
||||||||||||||||
столбцов остатки от деления л:0 , |
х, |
|
х |
2 , х п ~ |
х |
на |
порожда |
||||||||||||||||||
ющий |
|
многочлен. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
6.6.4. Корректирующие |
|
свойства |
циклических |
|
(п, |
|
к)-кодов |
|||||||||||||||||
|
Определение корректирующих свойств циклических (п, k) -ко |
||||||||||||||||||||||||
дов |
сводится к нахождению |
минимального |
кодового |
расстояния |
или к выявлению максимальных значений кратностей гарантий но исправляемых или обнаруживаемых ошибок. Следующие две теоремы позволяют установить корректирующую способность
циклических |
кодов. |
|
|
|
|
Теорема |
6.5. Для |
любых |
значений е |
и t существует цикличе |
|
ский код длины я = 2 е — 1 , исправляющий |
все ошибки кратности t |
||||
и менее и содержащий не более et проверочных элементов. |
|||||
Рассмотрим пример практического использования этой тео |
|||||
ремы. Найдем циклические |
коды |
для е = 5 (я = 31), исправляю |
|||
щие ошибки |
кратности t=\, |
2, 3. Определим количество избы |
|||
точных элементов по заданным значениям t: |
|||||
|
t = 1, |
я — k = 5-1 = 5; |
|||
|
t = |
2, |
n — |
k - 5 - 2 |
= 10; |
|
t = |
3, |
n — |
k = 5-3 |
= 15. |
Таким образом, искомые коды есть (31,26), (31,21) и (31,16). Теорема 6.5 определяет лишь существование кодов с известными
корректирующими |
свойствами. Построение |
же кодов, |
действи |
||||
тельно обладающих этими свойствами, обеспечивается |
правиль |
||||||
ным выбором порождающего многочлена. |
|
|
|
||||
|
Следующая теорема устанавливает связь между порождаю |
||||||
щим многочленом и минимальным кодовым |
расстоянием. |
||||||
|
Теорема |
6.6. Если среди корней порождающего |
многочлена |
||||
циклического (я, |
k)-кода |
имеются корни |
вида $т°, |
|
fym°+1, |
||
p W |
o + d ~ 2 , то минимальное |
кодовое расстояние этого |
кода равно |
||||
по |
меньшей |
мере |
d. В |
данной теореме используется |
доказан |
ная в теории кодирования [49] возможность представления
корней |
порождающего |
многочлена |
как |
степеней |
некоторого |
|||||||||||
числа |
р. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.6.5. Выбор |
порождающего |
|
|
|
многочлена |
|
|
|
|||||
|
|
|
|
|
|
для |
циклического |
|
кода |
|
|
|
|
|||
|
Порождающий |
многочлен |
для |
(я, |
я — 1 ) - к о д о в . |
Одним |
||||||||||
из |
возможных |
циклических кодов |
длины 7 является (7,6) -код |
|||||||||||||
с |
g (х) |
= |
1 + |
х. |
Покажем, |
что этот |
код |
образуется |
на |
основе |
||||||
проверки на |
четность всех |
информационных элементов |
кодо |
|||||||||||||
вой комбинации. Для этого найдем |
проверочный |
многочлен |
||||||||||||||
п{х) |
и |
построим |
проверочную |
матрицу. |
Определим |
п(х) |
= |
|||||||||
= |
(X7 |
+ |
1)/(1 +Х) |
= 1 +X |
+ X2 |
+ X* + |
Xi |
+ |
XF-' + X« |
И |
Н(7,в) |
= |
=[ 1 1 1 1 1 1 1 ] .
Таким образом, в рассматриваемом |
|
коде |
проверочным |
с о |
||||||||
отношением |
охвачены |
все |
элементы |
кодовой |
|
комбинации. |
||||||
В общем случае для (я, |
я — 1 ) - к о д а |
при |
любом |
значении я |
||||||||
проверочный |
многочлен |
находится |
как |
h (х) |
= (хп |
|
+ 1)/(1 + |
х). |
||||
Так как двучлены хп + |
1 и |
1 + х |
имеют общий |
корень |
х=1, |
|||||||
то х" + 1 делится без остатка на |
1 + |
х |
и |
частным |
от |
деления |
||||||
всегда является многочлен вида 1 + х |
+ |
хг |
+ . . . |
+ |
хп~2 |
+ |
хп~х~ |
Итак, многочлен |
вида 1 + х |
порождает |
(п, |
п-~ 1) - код с |
про |
веркой на четность по всем элементам. |
|
|
|
||
Порождающий |
многочлен |
для общего |
случая. Теорема |
6.6 |
позволяет осуществить выбор порождающего многочлена для
циклического кода и по его корням |
определить корректирующие |
||
свойства этого кода. |
|
|
|
П р и м е р . Порождающий многочлен |
g(x) = |
1 + х + х3 |
(7,4)-кода, рас |
смотренного выше, имеет своими корнями |
(З, Р2, р |
4 . Требуется |
определить кор |
ректирующие свойсіва этого кода. |
|
|
|
Находим максимальное число последовательных степеней корней порож
дающего многочлена. Это Р и Р2. Здесь то = 1, т0 + d— 2 = 2, откуда d = 4 — 1п0 = 3.
Использование теоремы 6.6 для выбора порождающих много членов циклических кодов, обладающих известными корректи рующими свойствами, предполагает знание корней многочленов. Поскольку порождающий многочлен циклического (п, k) -кода должен "быть сомножителем хп + \, то для построения всех воз можных кодов некоторой длины п, выбора порождающих много членов и установления их корректирующих свойств необходимо знание всех сомножителей хп + \ и их корней. Таблицы разложе ния хп+\ на неприводимые сомножители с указанием их корней в виде степеней некоторого корня р и циклические коды, пост роенные на их основе, приведены в работе [53].
|
П р и м е р . |
Дано разложение х 1 5 + ! |
на |
неприводимые |
сомножители к |
||||||
указаны корнл этих сомножителей как степени некоторого корня р. |
|
||||||||||
|
|
Сомножитель |
Степень |
сомножителя |
Корни |
||||||
|
= |
\ + х |
|
|
|
1 |
|
315 |
= 1 |
|
|
|
= |
1+ |
х + х< |
|
4 |
|
32, |
3*, |
3 » |
||
/ з М = |
1 + |
х + хї + х3 |
+ х* |
4 |
р . |
36, |
З9, З1 2 |
||||
ГЛх) = |
1 + х |
+ |
х2 |
|
2 |
|
310 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
h(x) |
= |
1 + хз |
-\- X* |
|
4 |
87, |
з1 1 , |
з1 3 , |
3" |
||
|
Требуется |
выбрать порождающий многочлен для кода Хэмминга |
(15,11) и |
||||||||
для |
(15,7)-кода. |
|
|
|
|
|
|
|
|
||
|
Для (15,П)-кода Хэмминга порождающий |
многочлен должен иметь сте- |
|||||||||
лень 4. Двучлен *| 5 |
+1 имеет своими сомножителями три многочлена степени. 4: |
||||||||||
li(x), |
h(x), fs(x'). |
Многочлен fa{x) имеет две последовательные степени корней |
|||||||||
Р' и Р2 и, следовательно, |
гарантирует dMiiH |
= 3. |
Многочлен }з(х) |
не имеет по |
следовательных степеней корней и, следовательно, гарантирует лишь rfMHH = 2. Многочлен fs(x) имеет две последовательные степени среди корней Р1 3 и Р1 4 и,,
следовательно, гарантирует rfMHH = 3. Итак, для циклического кода Хэмминга: |
|||
(15.11) в качестве порождающего многочлена следует выбрать U{x) |
или }s(x),. |
||
но нельзя выбирать |
!з(х). |
|
|
Для (15.7)-кода |
порождающий імногочлен должен иметь |
степень 8. Мно |
|
гочлен такой степени можно получить тремя способами: /г(х) |
}з(х), h(x) fs(x) |
||
или /з (х)/ь (х). Естественно, желательно выбрать такой многочлен |
который |
||
обеспечивает максимальное з н а ч е н и е А н а л и з корней указанных |
многочле |
нов показывает, что fi(x) |
їз(х) |
имеет четыре последовательные степени корней |
|||
Р'і $2 , р3 , Р4 и гарантирует rfMllH |
= |
5; fa(x) f5(x) имеет только две |
последова |
||
тельные степени Р', Р2 |
или |
Р7 |
, Р8 |
или З1 3 , Зі4, т. е. гарантирует |
dum = 3; |