Разработка кода (8, 2)
Ответ
на вопрос, как
выбираются кодовые слова из пространства
8-кортежей,
неоднозначен, хотя определенные
ограничения выбора все же существуют.
Ниже перечислены некоторые моменты,
которые могут указать наилучшее решение.
1.
Количество кодовых слов
.
2. Среди кодовых слов должен быть нулевой вектор.
3. Следует учесть свойство замкнутости — сумма двух любых кодовых слов в пространстве должна давать кодовое слово из этого же пространства.
4. Каждое кодовое слово содержит 8 двоичных разрядов.
Поскольку , весовой коэффициент каждого кодового слова (за исключением нулевого) также должен быть не менее 5 (в силу свойства замкнутости). Весовой коэффициент вектора определяется как число ненулевых компонентов этого вектора.
5. Предположим, что код является систематическим; значит, 2 крайних правых бита каждого кодового слова являются соответствующими битами сообщения.
Далее предлагается вариант набора кодовых слов, удовлетворяющих всем перечисленным выше требованиям.
Сообщения Кодовые слова
00 |
00000000 |
01 |
11110001 |
10 |
00111110 |
11 |
11001111 |
Создание набора кодовых слов может выполняться совершенно произвольно; нужно только неуклонно следовать свойствам весовых коэффициентов и придерживаться систематической формы кода. Выбор первых нескольких кодовых слов обычно очень прост. Далее процесс, как правило, усложняется и возможность выбора все больше ограничивается за счет свойства замкнутости.
Циклические коды
Важным
подклассом линейных блочных кодов
являются двоичные циклические коды.
Код легко реализуется на регистре сдвига
с обратной связью; на подобных регистрах
сдвига с обратной связью вычисляется
синдром; алгебраическая структура
циклического кода естественным образом
позволяет эффективно реализовать методы
декодирования. Итак, линейный код (n,
k)
называется
циклическим,
если он обладает следующим свойством.
Если n-кортеж
является кодовым словом в подпространстве
S, тогда
, полученный из U
с помощью циклического сдвига, также
является кодовым словом в S. Или, вообще,
,
полученный i
циклическими сдвигами, является кодовым
словом в S.
Компоненты
кодового слова
можно рассматривать как коэффициенты
полинома
Полиномиальную
функцию
можно рассматривать как "заполнитель"
разрядов кодового слова
,
т.е. вектор n-кортежа
описывается полиномом степени
или меньше. Наличие или отсутствие
каких-либо членов в полиноме означает
наличие 1 или 0 в соответствующем месте
n-кортежа.
Если
-й
компонент отличен от нуля, порядок
полинома равен
.
Удобство такого полиномиального
представления кодового слова станет
более понятным по мере дальнейшего
обсуждения алгебраических свойств
циклических кодов.
Алгебраическая структура циклических кодов
В
кодовых словах, выраженных в полиномиальной
форме, циклическая природа кода
проявляется следующим образом. Если
является кодовым словом, представленным
полиномом порядка
,
то
—
остаток
от деления
на
— также является кодовым словом. Иными
словами,
или, умножая обе части уравнения на ,
что в модульной арифметике можно описать следующим образом.
Здесь "х по модулю у" означает остаток от деления х на у. Ниже справедливость выражения демонстрируется для случая i = 1
К последнему выражению прибавим и вычтем или, поскольку мы пользуемся арифметическими операциями по модулю 2, можем прибавить дважды.
Поскольку
порядок
равен
,
этот полином не делится на
,
можно записать следующее.
Обобщая, приходим к уравнению.
Пример 6.7. Циклический сдвиг вектора кода
Пусть U = 1 1 0 1 для n = 4. Выразите кодовое слово в полиномиальной форме и выполните третий циклический сдвиг кодового слова.
Решение
полином
записан в порядке возрастания степени
,
где
Разделим
на
и найдем остаток, используя полиномиальное
деление.
X6 + X4 + X3 |
X4 + 1 |
|
|||
X2 + 1 остаток U(3)(X) |
|
||||
X6 + X2 |
+ 1 |
|
|||
X4 + X3 + X2 X4 |
|
||||
X3 + X2 + 1 |
|
||||
Записываем остаток в порядке возрастания степеней: 1 + X2 + X3, кодовое слово U=1011 представляет собой три циклических сдвига U= 1 1 0 1. Напомним, что для двоичных кодов операция сложения выполняется по модулю 2, так что + 1 = -1, и, следовательно, в расчетах знаки "минус" не отражены.
