- •Циклические коды.
- •1. Операции над двоичными многочленами.
- •Аппаратное умножение двоичных многочленов
- •Аппаратное деление многочленов.
- •2.Виды многочленов
- •Двойственные полиномы
- •Восьмеричное представление двоичных многочленов
- •Требования к образующему g(X).
- •Требования к образующему полиному.
- •Этап декодирования
- •Аппаратная реализация этапов кодирования и декодирования для циклических кодов.
- •Структурная схема кодирующего устройства.
- •Аппаратная реализация алгоритма декодирования.
- •Аппаратная реализация алгоритма декодирования.
Этап декодирования
Из определения циклического кода следует, что разрешенные и запрещенные кодовые комбинации различаются тем, что
R(x) = 0 (разрешенные) иR(x) 0 (запрещенные)
Это основное свойство используется для обнаружения и коррекции ошибок в принятых кодовых комбинациях.
В данном случае остаток R(x) (от деления E(x) наP(x)) играет роль проверочного синдрома).
Любая принятая по каналу связи кодовая комбинация, содержащая ошибку, может быть представлена в виде
Ế= E + ế
запрещенн. разреш. ошибка
При этом,
0
Ẽ/ P(x)= (E + ẽ)/ P(x) = E / P(x) + ẽ / P(x),
т.е.
R(x) Ẽ(x) = R(x)ẽ(x)
4. По видуR(x) необходимо определить ẽ. Построение проверочной матрицыН, устанавливающей соотношение между вектором ошибкиeи величиной остатка (в данном случае синдрома ошибки, аналогичного групповым кодам):
ошибки в информационных разрядах
ẽi
ошибки 1 0
в проверочных 1
разрядах 1
0 1
Таким образом, процесс коррекции состоит в сопоставлении строки проверочной матрицы НконкретномуR(x).
Анализ строк матрицы Нпоказывает, что строки, относящиеся к области ошибок в проверочных и информационных разрядах, различаются качественно:
А) Hi информ.(R(x)) dmin –1 ( для =1 2 ) – по условию построения матрицы
Б) Hi провер.(R(x))= 1
С учетом данных соотношений процедура кодирования существенно упрощается и представляется в виде:
Определяют вес (R(x)); если равен 1, то ошибки в проверочных разрядах иR(x)сразу указывает нам место ошибки.
Если (R(x)) > 1, т.е. ошибки в информационных разрядах, осуществляющих циклический сдвиг влево
← ←
Ẽ = E + ẽ, до тех пор, пока (R(x)) = t.
Коррекция ошибки и циклический сдвиг на dразрядов вправо.
Для ускорения операции коррекции целесообразно влево осуществлять сдвиг на r разрядов сразу – максимально возможный сдвиг, чтобы не «проскочить» проверочные разряды.
Последовательность построения циклических кодов, исправляющих одинаковые ошибки ( =1)
Определение количества информационных разрядов:
k = log 2 N , гдеN – полное количество передаваемых сообщений.
Определение количества проверочных разрядов и длина кодовой комбинации:
2r > k + r
n = k + r
Примечание. Из всех возможных r , удовлетворяющих неравенству, естественно, выбирают минимальную rmin .
Выбор образующего полинома, удовлетворяющего следующим условиям:
А) степень P(x) = r
Б) P(x) сомножительxn + 1
В) P(x) примитивный двоичный полином
Построение кодовой комбинации (кодирование заданной комбинации) одним из двух способов:
А) с помощью образующей матрицы
Б) деление заданной кодовой комбинации, сдвинутой влево наrразрядов на образующий полиномP(x) и добавление полученного остатка R(x) к заданной кодовой комбинации.
Пример построения матрицы для кода (15,11) с выбором в качестве образующего полинома:
А) нетривиального: x4+x3+x2+x+1;
Б) тривиального: x4+x3+1;
Передача полученной кодовой комбинации в канале связи
Перед описанием этапа декодирования введем следующие обозначения:
i i
Е; Е; Е; Ẽ
разрешенная запрещенная (содерж. ошибку)
Последовательность методики декодирования циклических кодов, исправляющих одиночные ошибки (t =1)
П.1. Получение проверочного синдрома путем деления полученной кодовой комбинации Ẽ(x)на образующий полиномG(x).
П.2. Сравнение веса остатка (R(x) с величиной кратности ошибки:
если (R(x), то - переход к П.4.
П.3. Циклический сдвиг Ẽ(x) влево на 1 (r) разряд и получения нового синдрома ошибки. Переход к П.2.
П.4. Исправление ошибки путем сложения проверочного синдрома с кодовой комбинацией:
i i i
Ẽ: Е = ẼRi(x)
i
Пояснение:Ẽ кодовая комбинация, полученная путемi-кратного циклического сдвига влево вектора[кодовой комбинации] Ẽ.
П.5. Получение искомых информационных разрядов путем i – кратного циклического сдвига вправо[обратного циклического сдвига]исправленной комбинации
i
Ẽ.
Пример циклического кода.
Построить циклический код, исправляющий одиночные ошибки при передаче 15 сообщений.
1. k = [log 2 N] = 4; 2r > k + r r = 3;
2. k = 4, n = 4+3 =7;
3. (x7+1) = (x + 1)(x3 + x + 1)(x3 + x2 + 1)
P(x) = x3 + x + 1
4. Построение образующей матрицы:
1 000 000 1011
1 011
R1(x) 0110
000 0
R2(x)11 00
10 11 0001011
R3(x)1 110 0010110
1 011 0100111
R4(x) 101 1000101
Необходимо закодировать 9 сообщение 1 001
А) 1 001 110 =Е
k r
Б) 1 001 000 1011
R(x) 110
Рассмотрим случай возникновения ошибки во втором информационном разряде:
ℓ(x) = 0100 000
Ẽ(x) = E(x) + e(x) = 1 001 110 + 0100 000 = 11*01 110
Этап декодирования
1. ОпределениеR(x) 11*01 110 1101
10 11 1111
1 10 1
1 01 1
11 01
10 11
1 100
1 111
111 R(x);
2. Сравнение[…] сℓ [R(x)] > 1
след. ошибка и информац. разрядах
3. Осуществляется циклический сдвиг влево Ẽ:
Ẽ1 = Ẽ = Е + e = E1 + e1 R(x) = 101
1*011 101 0011 101 1 000 000 [R(x)] > 1.
Сдвиг циклический влево Ẽ1:
Ẽ2 = Ẽ1 = Е1 + e1 = E2 + e2 R(x) = 001
0111 011* 0111 010 0 000 001 [R(x)] = 1.
Остаток указывает положение ошибки.
4. Исправление полученной комбинации.
а) 0 111 011* 0 111 010 = E2
ошибка
б) Для получения исходного E(x)необходимо циклический сдвиг вправо на 2 разряда:
2
Е = E2 = 1 001 110
в) Выбор информационных разрядов 1001.