Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЗИ-2003.полный19.11 крипто.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
49.78 Mб
Скачать

7.3. Преобразование Windows-кодирования в коды Хэмминга.

Цель преобразования - отобразить символы Windows-кодирования в коды Хэмминга, обнаруживающих и исправляющих одиночные искажения (t=1, S=1).

1.Определение минимального кодового расстояния

d=t+S+1=1+1+1=3

2.Определение общего числа элементов кодовых комбинаций Хэмминга - n.

Np .

Множество разрешенных кодовых комбинаций в системе Windows-кодирования составляет Np=219, следовательно, 219 , откуда n=12.

3. Определение числа информационных элементов k.

2k 219 k=8.

4. Определение числа проверочных элементов r.

r = n-k =12-8 = 4.

5. Построение производящей матрицы кода G12,8 (12 столбцов, 8 строк). Для чего из состава 2r = 24 =16 проверочных комбинаций для построения производящей матрицы выбирается k=8 комбинаций с весом

pdmin-1=3-1=2.

Например: 0011, 0101, 0110, 0111, 1001, 1010, 1011, 1100 (как и для случая построения систематических кодов). Производящая матрица G12,8 имеет вид, такой же как и для случая систематического кода.

C12,8 =

10000000 0011

01000000 0101

00100000 0110

00010000 0111

00001000 1001

00000100 1010

00000010 1011

00000001 1100

6. Построение проверочной матрицы на основании производящей матрицы G12,8. Напоминаем, что для построения проверочной матрицы H12,4 в первую строку вписывается первый столбец проверочных элементов производящей матрицы G12,8, во вторую строку второй столбец и т.д. Справа ко всем строкам приписываются кортежи единичной матрицы.

H12,4= =

a1a2a3a4a5a6a7a8 b1b2b3b4

0 0 0 0 1 1 1 1 1 0 0 0

0 1 1 1 0 0 0 1 0 1 0 0

1 0 1 1 0 1 1 0 0 0 1 0

1 1 0 1 1 0 1 0 0 0 0 1

7.Преобразуем проверочную матрицу перераспределением ее элементов таким образом, чтобы кодовая комбинация кортежа столбца указывала в двоичной форме на номер столбца проверочной матрицы

H12,4 =

e1e2 e3 e4

u1u2u3u4u5u6u7u8u9u10u11u12

0 0 0 0 0 0 0 1 1 1 1 1

0 0 0 1 1 1 1 0 0 0 0 1

0 1 1 0 0 1 1 0 0 1 1 0

1 0 1 0 1 0 1 0 1 0 1 0

Проверочная матрица систематизирована в порядке возрастания номера столбца.

8. По построенной проверочной матрице составляется r=4 проверочных уравнений. Проверочные уравнения составляются по представлению элемента единичной матрицы (е1, е2, е3, е4) в виде сумм по модулю 2 элементов строк матрицы со значением 1

e1=u3 u5 u7 u9 u11

e2=u3 u6 u7 u10 u11

e3=u5 u6 u7 u12

e4=u9 u10 u11 u12

Уравнения е1, е2, е3,е4 являются кодообразующими уравнениями преобразования Windows-кодирования в коды Хэмминга.

Например для преобразования семантического алфавита символа Т из Windows-кодирования в код Хэмминга необходимо определить проверочные элементы е1, е2, е3, е4 и составить кодовую комбинацию Хэмминга.

Так символ Т в Windows-кодировании определен как Т11010010, в этом случае u3=1, u5=1, u6=0, u7=1, u9=0, u10=0, u11=1, u12=0, u1=e1, u2=e2, u4=e3,u8=e4.

e1=1 1 1 0 1=0

e2=1 0 1 0 1=1

e3=1 0 1 0=0

e4=0 0 1 0=1

Преобразованная кодовая комбинация символа Т из Windows-кодирования в код Хэмминга имеет вид

Tu1u2u3u4u5u6u7u8u9u10u11u12011010110010.

Таким образом преобразование семантического символа имеет вид:

Т11010010011010110010.

Декодирование кодовых комбинаций и исправление искажений происходит по следующим уравнениям (для случая Windows-кодирование - код Хэмминга):

e =u1 u3 u5 u7 u9 u11

e =u2 u3 u6 u7 u10 u11

e =u4 u5 u6 u7 u12

e =u8 u9 u10 u11 u12

Например при передаче символа Т в третьем разряде произошло искажение и кодовая комбинация принята в виде Т=011010110110

e1 e2 e3 e4

T=u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12

0 1 1 0 1 0 1 1 0 1 1 0

e =0 1 1 1 0 1=0

e =1 1 0 1 1 1=1

e =0 1 0 1 0=0

e =1 0 1 1 0=1

В этом случае синдром равен 1010  10, т.е. в десятичной системе счисления синдром равен 10, что указывает на искажение десятого элемента принятой кодовой комбинации. Заменяя значение десятого элемента принятой кодовой комбинации 1 на 0 , получают исправленную кодовую комбинацию Т=011010110010, т.е. восстанавливают без искажений на приемной стороне переданную кодовую комбинацию.

7.4. Преобразование Windows-кодирования в циклические коды. Например, построим кодовую комбинацию циклического кода F(x) с числом информационных элементов k=8 (число элементов Windows-кода для кодирования одного элемента семантического алфавита, исправляющего одиночные искажения (S=1).

1.Определение общего числа элементов кодовых комбинаций циклических кодов Np 219 , откуда n=12.

2. Определение числа проверочных элементов r=n-k=12-8=4.

Следовательно, степень образующего многочлена (P(x)) равна 4.

3.В качестве образующего многочлена выбирают один из неприводимых многочленов, например P(x)=x4+x+1.

Для примера из системы Windows-кодирования в качестве преобразуемой кодовой комбинации Q(x) взята кодовая комбинация, отображающая символ Т русского алфавита (Q(x)=11010010x7+x6+x4+x.

5. Определяем произведение Q(x)xr.

Q(x)xr=(x7+x6+x4+x)x4=x11+x10+x8+x5

6. Определение частного G(x) и остатка R(x)

G(x)+R(x)= = =x7+x6+x2+x (x3+x)

Следовательно, G(x)=x7+x6+x2+x, R(x)=x3+x.

7. Определение кодового многочлена F(x).

F(x)=Q(x)xr+R(x)=(x11+x10+x8+x5)+(x3+x)=x11+x10+x8+x5+x3+x=

=110100101010.

Где: 11010010 - информационные элементы преобразованного Windows-кода символа Т в циклический код.

1010 - проверочные элементы циклического кода символа Т.

Остальные кодовые комбинации циклического кода отображают кодовые комбинации Windows-кодирования по тому же алгоритму преобразования, что и для символа Т (пункты 4, 5, 6, 7).

Произведем проверку полученной кодовой комбинации на возможность исправления ошибок.. Допустим, произошло искажение при передаче по линии связи кода Т 110100101010 в четвертом разряде и принят код Т 110100100010.

  1. Разделим принятую искаженную кодовую комбинацию на образующий многочлен P(x)=x4+x+110011

110100100010 10011

10011

10010

10011

11000

10011

10111

10011

1000  остаток.

Сравнивается вес остатка (р=1) с числом исправляемых искажений (S=1), p=S, условие pS выполняется.

4. Производится суммирование по модулю 2 делимого 110100100010 с остатком 1000, получают комбинацию

110100100010

1000

110100101010

Получили исправленную кодовую комбинацию.

Общий вид такого исправления может быть отображен в следующей форме

Передаваемый Передаваемый Принятый Восстановленный

символ код код код

Т 110100101010 110100100010 110100101010.