x=a
Сведем полученные результаты в таблицу:
№ вектора |
В виде степени xi |
В виде двоич. вектора (старшие разряды слева) |
В виде многочлена |
1. |
x-¥=0 |
000 |
0 |
2. |
x0=1 |
001 |
1 |
3. |
x |
010 |
x |
4. |
x2 |
100 |
x2 |
5. |
x3 |
101 |
x2+1 |
6. |
x4 |
111 |
x2+x+1 |
7. |
x5 |
011 |
x+1 |
8. |
x6 |
110 |
x2+x |
Часто в таких таблицах есть и логарифмическое представление, которое позволяет производить операции в полях Галуа (умножение, нахождение обратного элемента, нахождение квадратного корня).
Из темы «Арифметика в полях Галуа» известно, что ненулевые элементы поля образуют циклическию группу с размерностью 2m=r=3-1=7, которая порождена примитивным элементом a.
В итоге получим проверочную матрицу, каждый столбец которой представляет синдром ошибки в соответствующем разряде .
Примечание. Сравнив две матрицы, видим, что мало столбцов совпадает, хотя в литературе часто проверочная матрица строится по проверочному полиному – это ошибочно, так как способ получения проверочной матрицы через проверочный полином не является универсальным. В большинстве случаев, проверочную матрицу нужно строить через примитивные элементы a. Способ построения через проверочный полином пригоден только для полностью цикличных кодов, которые редки.
Рассмотрим на примере исправление ошибок по синдрому:
Передавалась 12КК C(x)=1111111, под действием помех произошла ошибка в 7-ом разряде, то есть принята C*(x)=0111111 тогда:
После исправления ошибки можно дешифровать исправленную КК разделив ее на образующий полином:
Такой способ декодирования довольно сложно реализовать аппаратно, поэтому используют несколько другой алгоритм:
1) Нахождение остатка от деления C*(x)/g(x)=синдром
2) Определение веса W остатка – число единиц в остатке
3) Анализ остатка а) Если W£tи, то C*(x)Åостаток=C(x) исправленная (трансформированная) КК.
б) Если W>tи, то производится циклический сдвиг влево принятой КК на один разряд. И снова осуществляют деление на образующий полином, и снова анализируют вес остатка. Если W>tи, тогда осуществляют еще один циклический сдвиг влево на один разряд принятой КК. Сдвиг влево последовательно на один разряд принятой КК осуществляют до тех пор, пока вес остатка не окажется W£tи. После этого полученную на последнем сдвиге влево КК суммируют по mod 2 с остатком. Для получения исправленной КК результат суммирования с остатком сдвигают циклическим вправо на столько же разрядов, на сколько было сдвинуто влево.
Примечание. Если после произведенных n сдвигов влево остаток от деления W>tи, то в этом случае означает, что процесс декодирования заканчивается только обнаружением ошибки, которую код исправить не в состояни. Таким образом декодер может работать в двух режимах:
- режим обнаружения ошибок (полученно значение синдрома¹0 позволяет игнорировать (не использовать) КК, либо дать сигнал передатчику (нужен обратный канал связи) на повторную передачу, но это усложнит конструкцию и приемника, и передатчика)
- режим обнаружения ошибок с исправлением, при котором синдром используется для поиска места ошибки и ее дальнейшего исправления.
Рассмотрим пример декодирования с исправлением ошибок:
Передаем 12КК C(x)=1111111, под действием помех произошла ошибка в 1-ом разряде, то есть принята C*(x)=1111110 тогда:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.