
pri_cod2
.pdf
В общем случае при использовании матрицы Адамара порядка n дисперсия ошибок взвешивания уменьшается в n раз.
4.4Метод Пейли построения матриц Адамара
Мак-Вильямс, стр 53, КТИИ, стр 112. Пусть p простое число. Элемент a 2 Zp называется квадратичным вычетом, если уравнение x2 = a имеет решение в Zp и называется квадратичным невычетом в противном случае. Число 0 не является ни квадратичным вычетом, ни квадратичным невычетом.
Для получения всех квадратичных вычетов достаточно отметить в Zp элементы 12, 22, : : :, ³p¡2 1´2. Например, по модулю 13 квадратичными вычетами являются элементы 12 = 1, 22 = 4, 32 = 9, 42 = 16 ´ 3 (mod 13), 52 = 25 ´ 12 (mod 13) и 62 = 36 ´ 10 (mod 13). Остальные элементы
квадратичные невычеты.
Свойства квадратичных вычетов.
1.Произведение двух квадратичных вычетов является квадратичным вычетом.
Произведение двух квадратичного вычета и квадратичного невычета является квадратичным невычетом.
Произведение двух квадратичных невычетов является квадратичным вычетом.
2.Если p = 4k + 1, то число (¡1) является квадратичным вычетом. Если же p = 4k + 3, то число (¡1) квадратичным невычет.
Пусть p простое нечетное число. Функцией Лежандра называется функция »(x), определенная на множестве всех целых чисел следующим образом:
a)»(x) = 0, если x кратно p;
b)»(x) = 1, если x квадратичный вычет по модулю p;
c)»(x) = ¡1, если x квадратичный невычет по модулю p.
В теории чисел »(x) называют символом Лежандра и обозначают стр. 54
µ ¶ xp .
71

5Мажоритарные коды
Определение. Мажоритарной функцией (от l ¸ 2 аргументов) называется функция Maj(x1; x2; : : : ; xl), значение которой равно a в том случае, когда более половины аргументов приняли значение a. В противном случае значение этой фукнции не определено.
Например, Maj(1; 2; 3; 2; 3; 5; 2; 2; 6; 2; 2) = 2, а величина Maj(1; 2; 3; 1; 2; 3; 3; 2; 1) не определена.
Мажоритарная функция может использоваться при поиске и исправлении ошибок.
Пример. [КТТИ, стр. 179-180] Пусть C линейный (7; 3)-код с проверочной матрицей
|
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
|
H = |
B |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
C |
; |
|
B |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
C |
|
|
B |
|
|
|
|
|
|
|
C |
|
|
B |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
C |
|
|
B |
C |
|
|||||||
|
B |
|
|
|
|
|
|
|
C |
|
|
@ |
|
|
|
|
|
|
|
A |
|
Пусть по каналу связи отправлен кодовый вектор u, а на выходе получен вектор v = u + e, где e = (e0; e1; : : : ; e6) вектор ошибок. Тогда синдром s = (s0; s1; s2; s3) = Hvt вектора v совпадает с вектором Het. Поэтому компоненты
синдрома si, i = 0; 1; 2; 3 могут быть найдены по вектору v. При этом
|
8 s0 |
= e0 |
|
|
> s1 |
= e1 |
|
|
> |
|
|
|
> |
|
|
|
> |
|
|
|
> |
|
= e2 |
|
> s2 |
||
|
< |
|
|
|
> s3 |
= e3 |
|
|
> |
|
|
|
> |
|
|
|
> |
|
|
|
> |
|
|
|
> |
|
|
Рассмотрим суммы |
: |
|
|
|
8 |
¾0 |
= e0 |
|
> |
¾1 |
= e0 |
|
> |
|
|
|
> |
|
|
|
< |
|
|
|
> |
¾2 |
= e0 |
|
> |
|
|
|
> |
|
|
|
: |
|
|
+e1 + e3
+e2 + e4
+e3 + e5
+e4 + e6
+e1 + e3
+e4 + e5
+e2 + e6
(1)
(2)
Эти суммы можно найти, зная вектор v, поскольку справедливы равенства
72

8 > ¾
> 0
>
<
> ¾1
>
> ¾ : 2
=s0
=s0 + s1 + s2
=s0 + s1 + s3
Предложение 20 Если произошло не более одной ошибки, то компоненту e0 вектора ошибок можно найти по формуле
e0 = Maj(¾0; ¾1; ¾2) |
(3) |
Последнюю формулу можно записать в таком виде:
e0 = Maj(s0; s0 + s1 + s2; s0 + s1 + s3) |
(4) |
Найти остальные компоненты можно следующим образом. Рассматриваемый код является циклическим (проверьте это!).
Поэтому к его проверочной матрице можно приписать снизу матрицу
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
|
B |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
C |
; |
B |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
C |
|
B |
|
|
|
|
|
|
|
C |
|
@ |
|
|
|
|
|
|
|
A |
|
строки которой получаются циклическим сдвигом вправо строк матрицы H. Поэтому можно говорить о компонентах s4, s5 и s6 вектора v. Из формулы
(4) теперь получаем
ei = Maj(si; si + si+1 + si+2; si + si+1 + si+3); |
(5) |
где индексы вычисляются по модулю 7.