Помехоустойчивое кодирование. Реализация кодирования

Download Report

Transcript Помехоустойчивое кодирование. Реализация кодирования

Помехоустойчивое
кодирование
Реализация кодирования
Реализация кодирования
циклических кодов
Кодирование циклического кода сводится к умножению
информационного многочлена a ( x ) на порождающий
многочлен g ( x ) :
g ( x)  a( x) 
( g 0  g 1 x  ...  g n  k 1 x
 ( a 0  a1 x  ...  a k 1 x
n  k 1
k 1
)
)
Реализация кодирования
циклических кодов
Кодирование циклического кода сводится к умножению
информационного многочлена a ( x ) на порождающий
многочлен g ( x ) :
 g 0  a 0  ( a 0 g 1  g 0  a 1 ) x  ...
 ( a 0 g k 1  ...  g 0  a k 1 ) x
k 1

 ( a 0 g k  ...  g 1  a k 1 ) x  ...
k
 g n  k  a k 1 x
n 1
Реализация кодирования
циклических кодов(1)
g 0  a 0  ( a 0 g 1  g 0  a 1 ) x  ...
 ( a 0 g k 1  ...  g 0  a k 1 ) x
k 1

 ( a 0 g k  ...  g 1  a k 1 ) x  ...
k
 g r  a k 1 x
n 1
r nk
gr
вход
+
+
+
+
gr-1
gr-2
g1
g0
выход
Реализация кодирования
циклических кодов(2)
g 0  a 0  ( a 0 g 1  g 0  a 1 ) x  ...
 ( a 0 g k 1  ...  g 0  a k 1 ) x
k 1

 ( a 0 g k  ...  g 1  a k 1 ) x  ...
k
 g r  a k 1 x
n 1
r nk
g0
вход
+
+
+
+
g1
g2
gr-1
gr
выход
Пример : циклический (7,4)-код Хэмминга
• Порождающий многочлен
g ( x)  1  x  x
2
а( x)  x  x
• информационный многочлен
2
• тогда кодовый многочлен
с( x)  а( x)  g ( x)  x  x  x  x
2
3
4
6
3
3
Пример : циклический (7,4)-код
Хэмминга
0011101
•
0011
вход
состояние
регистра
выход
1
000
1
1
100
0
0
110
1
0
011
1
0
001
1
0
000
0
0
000
0
Реализация этапа декодирования:
деление на порождающий многочлен
При декодировании циклического кода сначала
вычисляется синдром. Эта операция сводится к
делению полученного из канала ошибочного
многочлена с ( x ) на порождающий многочлен g ( x )
g0
g1
g2
gr-1
+
+
+
+
... с n  3 , с n  2 , с n 1
gr
Пример : циклический (7,4)-код
Хэмминга
Пусть полученное слово 1110101
Регистр реализует процесс деления
1110101
1011
1011000 1100  частное
__________ __________
101101
101100
__________ __________
1  остаток
Пример : циклический (7,4)-код
Хэмминга
•
1010111
вход
выход
Нулевое
начальное
состояние
состояние
регистра
1
100
0
•
На выходе – частное
1
110
0
•
Конечное состояние –
остаток
1
111
0
0
101
1
1
000
1
0
000
0
1
100
0
•
Алгоритм Меггитта
•
Получаем остаток от деления е(х), соответствующего ошибке в
старшем разряде [1000000000], на порождающий полином g(x):
r0 ( x )  e ( x )  q ( x )  g ( x )
•
Делим полученный полином c(х) на g(x) и получаем текущий
остаток r(x).
Сравниваем r0 ( x ) c r ( x )
•
–
–
•
Если они равны, то ошибка произошла в старшем разряде.
Если нет, то увеличиваем степень принятого полинома на x и снова
проводим деления: x·c(x) на g(x), остаток опять обозначим r(x)
Опять сравниваем полученный остаток с r0 ( x )
–
–
Если они равны, то ошибки во втором по старшинству разряде.
Если нет, то берем х · х ·c(х) · и повторяем эти операции до тех пор,
пока r(x) не будет равен r ( x )
0