Лекции в текстовом формате / 5_7 ОбнарСвойстаЦиклКодов
.doc
Коды обнаруживающие пакеты ошибок.
Наряду с независимыми ошибками в каналах часто действуют т.н пакеты ошибок.
Рассмотрим устройство кода обнаруживающих пакеты ошибок ( серии ошибок) длиной l.
2.Примеры векторов пакетов ошибок :
l(x)[l=4]
= 001011000 ; 00011110000
1011-ошибки 1111-ошибки
Пакеты ошибок длиной l наз любая комбинация ошибок число разрядов в которых между первой и последней ошибкой включая эти ошибки.
Теорема 1: Любой код образованный с помощью простого полинома G(x) степени r = n-k, обнаруживает пакеты ошибок длиной l = n-k или меньше.
Докозательство:
Полином пакета ошибок можно представить
в виде e(x)=
x
*e1(x)
,где e1(x)
не делится без остатка
на образующий полином G(x).
Т.к G(x) не содержит множителя x , то e(x) делится на G(x) только тогда ,когда e1(x) делится без остатка на G(x).
Но
если l
,
то степень G(x)=
r выше ,чем степень e1(x)
=l-1 ,а
поэтому e1(x)
не делится на G(x)
без остатка ,ч.т.д.
Тeорема 1. Циклический код построенный с помощью любого неприводимого полинома, степень которого больше или равна 1 ,обнаруживает все одиночные ошибки
Докозательство
А) Одиночные ошибки в I- разряде соответствуют:
e1(x) =x
б)
;
Чтобы
обнаружить ошибку остаток от деления
на G(x) должен
быть не равен 0 т.е. остаток от деления
Очевидно
что не существует G(x)
степени
1
такой что R(x)=0
чтд.
Простейший G(x)=X+1
Использование в качестве образующего G(x)=X+1 позволяет обнаруживать все одиночные ошибки.
(Лемма ) Всякий полином ,делящийся на 1+X, имеет четное число членов.
Докозательство
: F(x) =
(x+1)Q(x)
Содержит четное количество членов
Подстовляя вместо Х еденицу ,получим F(1)=1+1+…+…=(1+1)+Q(1)=0
=0
т.е. F(1)=0 то это возможно если F(x) имеет четное число членов в которых сумма по модулю 2 дала 0.
Лемма 2
Всякий полином ,имеющий сомножитель который содержит четное число членов ,также имеет четное число членов.
Теорема 2:
Циклический код построенный с помощью G(x)=x+1 обнаруживает все нечетные ошибки.
Докозательство: (обратное)
Предположим что существует комбинация ошибок ,содержащая нечетное количество ошибок,такая ,что не обнаруживается кодом. Т.е. существует e1(x) =(х+1)Q(x) но из леммы 1 следует что в этом случае e1(x) содержит четное число членов т.е. не существует e1(x) содержащего нечетное количество ошибок дающее остаток 0 при делении на х+1 Ч.т.д.
Используя в качестве образующего G(x) = x+1 позволяет обнаруживать нечетное количество ошибок и эквивалентно кодам проверки на четность.
Пример.
З
акодировать
1000111 R(x)=0
10001110 правильный
11111110 ошибочная комбинация
д
екодирование
:11111110(x+1)=11 R(x)=1,т.е.
в кодовой комбинации имеются ошибки
Теорема 2.2.
Циклический код ,построенный с помощью полинома ,содержащий четное количество членов,обнаруживает все нечетные ошибки.
Докозательство анологично предыдущему .
Пример
Построить
код обнаруживающий пакеты ошибок длиною
l
4
при передаче 100 различных сообщений
1
K=[log
]
=7
r = l = 4 находим G(x)=
n
= 7 +4 =11
K= 101010 10011 1010101.1101=E(x)
10011
0011010.0000=e(x)
011001 1001111.1101=
10011
e(x)=
10100
10011
11100
10011
11110
R(x)=1101
-остаток
1001111.1101 10011
10011
11110
10011
11011
10011
1000 =R(x)
признак наличия ошибки
Рассмотрим случай когда длительность пакета ошибок l>степени образующего многочлена G(x)
[l>r = n-k]
Теорема
Для циклического кода образованного с помощью полинома G(x) степени r = n – k, относительное количество необнаруживаемых пакетов ошибок длиной l> r =n –k равно:
,если
l>r +1
,если
l= r+1
докозательство
1)
Вектор ошибки представляется в виде
е(x)=
e1(x)
где e1(x)
полином степени l-1
Поскольку
e1(x)
имееют члены
существуют между ними l-2
членов
(0<j<l-1)
Коэффициэнты
при которых 0 и 1 т.е. e1(x)
=
Т.о.имеется
различных полиномов e1(x)
Ошибка не будет обнаружена только в том случае если G(x) является множителем e1(x)
e1(x) =G(x)*Q(x)
Т.к. степень G(x) равна r то степень Q(x) равна (l-1 –r)
Случай когда l = r+1 случай когда l>r+1
a)степень Q(x)
0 то Q(x)=1
а) Полином Q(x)
содержит
и
и имеет между
б) имеется только один полином Q(x)=1необна ними (l-2-r) произвольных коэффициэнта
руживающий
ошибки e1(x)
=G(x)
б) имеется
различных
Q(x) которые
соответствуют
в)
=
необнаруживаемым ошибкам
=
Рассмотрим возможности определения ошибок как независимых так и пакетов ошибок
Теорема.
Циклический код образованный с помощью простого полинома G(x) степени r = n –k ,обнаруживает все комбинации ошибок за исключением относительного количества
Докозательство: а) Для любого
разрешенного кода длины n
существует
возможных
векторов ошибок
E(x) возможных
комбинаций. Б) При ‘К’ информационных
разрядов существует
векторов ошибок которые воспринимаются
как разрешенные кодовые комбинации.т.е.
векторов E(x)
делится без остатка на G(x).
В) Остальные векторы
представляют запрещенные кодовые
комбинации (остаток от деления
0)
Поэтому отношение числа необнаруживаемых
ошибок к общему числу ошибок определяется
как
N=1000 В канале могут действовать любые сочетания ошибок.Построить код который будет обнаруживать 99%всех ошибок.
количество необнаруживающихся ошибок
д.б.<1/100 поэтому
<1/100
отсюда r = 7
>100
2) k =]log21000[=10;
3) n = 10+7=17 G(x)=
При этом из всевозможных сочетаний ошибок 99% будут обнаружены и 1% будет принят ошибочно за разрешенные кодовые комбинации.
Сводная итоговая таблица обнаружения ошибок с помощью циклических кодов.
Имеем циклический код содержащий к информационных и r проверочных разрядов, образованный с помощью примитивного многочлена G(x) степени r.
Циклический код данного вида позволяет
А) обнаруживать все одиночные ошибки
А1)
все двойные ошибки если P(x)-примитивный
и
>n
A2) все нечетные ошибки если G(x) имеет четное число членов;
A3)все пакеты ошибок длиной :l r;
А4) всевозможные сочетания ошибок кроме
