|
|
1011
01100
1011
1110
1011
101
1+2 2+4 1+2+3+4
1+3 3+4
1+4 1+2+3
2+3
Обнаружение и определение ошибок
Производится по остаткам деления принятого кодового вектора. Если в результате образовался остаток R(x) = 0, то комбинация принята без ошибок. Если есть остаток, то производят исправления. Для этого
1) Определяют вес остатка
Если WR S , где S – количество исправленных ошибок, то производят коррекцию. Для этого F(x) + R(x) и эта сумма даёт исправленную комбинацию.
Если вес WR S , то производят циклический сдвиг F(x) влево, образуют новую комбинацию F1(x).
Полученную комбинацию делят на обратный многочлен
- остаток
Если , то производят коррекцию F1(x) + R1(x), затем полученную комбинацию сдвигают вправо циклически на один разряд.
Если , то ещё раз сдвигаем циклически влево и т.д.
Пример: Пусть посылается комбинация u(x) = 0100111 (из обратной матрицы)
Пусть принята комбинация F(x) = 1100111, содержащая ошибку в единичном разряде
U(x) = 0100111 K(x) = 1011
F(x) = 1100111 S = 1
1100111 1011
1011
1111 R = 101
1011 WR = 2 > S
1001
1011
101
1001111 1011
1011
1011 R1 = 1
1011 = 1 = S Þ можем производить коррекцию
01
F1(x) + R1(x) 1001111
1
1001110
Циклически сдвигаем комбинацию вправо на один разряд 0100111 – исправляется кодовая комбинация.
Сложение двух соседних комбинаций циклического кода эквивалентно операции умножения первого слагаемого на x + 1.
000101 две комбинации из производящей матрицы
001010 (x2 + 1) * (x +1) = x3 + x +x2 +1 = 001111
001111
Образующие многочлены представляют собойьнеприводимые многочлены.
Коды, обнаруживающие трёхкратные ошибки
Методика построения следующая:
1) Выбор числа корректирующих разрядов
nk – количество корректирующих разрядов
Значения логарифма округряется до целых чисел в большую сторону
Пример: nu = 2 = 4
2) Выбор образующего многочлена. Он производится исходя из следующих соображений: для обнаружения трёхкратной ошибки надо иметь d0 = r + 1 = 3 + 1 = 4 степень обратного многочлена должна быть больше или равна четырём, т.е.
Этот многочлен получают как произведение многочлена степени (nk - 1)т.е. 3, который позволяет обнаруживать все двойственные ошибки и многочлены первой степени (x + 1), который обнаруживают любое количество нечётных ошибок. Полученный многочлен унаследует корректирующие свойства, т.е. он будет обнаруживать одиночную и тройную ошибки, используя корректирующие свойства многочлена x + 1 и будет обнаруживать двойные ошибки, используя свойства Шеннона, например x3 + x2 +1.
Произведём умножение
M1 = x + 1
M3 = x3 + x2 + 1
M1 x M3 = (x + 1)( x3 + x2 + 1) = x4 + x2 + x +1 = k(x)
x3 + x3 = 0 k(x) = 10111
x3 + x3 + x3 = x3
3) Построение образующей матрицы
Производят нахождением остатка последней строки единичной повёрнутой матрицы на обратный многочлен 100…к(х) - методика в прошлой лекции. Второй способ умножением строки единичной матрицы на образующий многочлен. Остальные комбинации получают суммированием комбинаций строк.
4) Обнаружение ошибок производят по остаткам от деления принятого кодового вектора на образующий многочлен. Если остатки есть, то принята ошибочная комбинация.
Пример: Строим код на четыре комбинации
01 х к(х) = 01 x 10111 = 010111
10 х к(х) = 10 х 10111 = 101110
Обратная матрица
Обнаружение ошибки
1) Тройная ошибка
v1 = 010111
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.