Помехоустойчивое кодирование. Линейные коды

реклама
Помехоустойчивое
кодирование
Линейные коды
Некоторые предположения
•Блоковый код- код, в котором все слова имеют
одинаковую длину.
•Кодовое слово – слово из некоторого кода С.
Исходные предположения относительно канала
1. Сохранение длины. Слово на выходе канала имеет
такую же длину, как кодовое слово на входе канала.
2. Независимость ошибок. Вероятность ошибки любого
символа сообщения одна и та же.
Исходная стратегия
декодирования
• При декодировании мы используем
принцип максимального
правдоподобия, или стратегию
ближайшего соседа, согласно которым
получатель должен декодировать
полученное слово w' как кодовое слово
w, ближайшее к w'.
Расстояние Хэмминга
•Интуитивное понятие “близости'' двух
слов формализуется с помощью
расстояния Хэмминга d(x, y) слов x, y.
•Для двух слов x, y
d(x, y) = число символов, в которых они
различаются.
•Примеры: h(10101, 01100) = 3,
h(fourth, eighth) = 4
Свойства расстояния Хэмминга (1)
• (1) d(x, y) = 0 x = y
• (2) d(x, y) = d(y, x)
• (3) d(x, z)  d(x, y) + d(y, z) (неравенство
треугольника)
• Важнейшей характеристикой кодаC является
его минимальное расстояние
• d(C) = min {d(x, y) | x,y  C, x  y},
• d (C) дает наименьшее число ошибок,
необходимое для перевода одного кодового
слова в другое.
Свойства расстояния Хэмминга (2)
• Теорема (Основная теорема исправления ошибок)
• (1) Код C может обнаруживать до s ошибок, если d(C)
 s + 1.
• (2) Код C может исправлять до t ошибок, если d(C) 
2t + 1.
Доказательство (1) Очевидно.
• (2) Предположим d(C)  2t + 1.
Пусть передается кодовое слово x и получено слово
y так что d(x, y)  t.
Если x'  x является кодовым словом, тогда d(x' ‚ y) 
t + 1 поскольку в противном случае d(x', y) < t + 1 и
следовательно d(x, x')  d(x, y) + d(y, x') < 2t + 1 что
противоречит предположению d(C)  2t + 1.
Кодирование – введение
избыточности –алгебраический
подход
Информационное слово
a0 , a1 ,..., ak 1
Кодер
Кодовое слово
с0 , c1 ,..., cn 1
Систематическое кодирование
Информационное слово
a0 , a1 ,..., ak 1
Кодер
Кодовое слово
a0 , a1 ,..., ak 1 , ck ,..., cn
Кодирование – введение избыточности
(систематическое кодирование)
с0  a0 ,


с1  a1 , 
  информацио нные биты
...

сk 1  ak 1 ,
ck  f k (c0 ,..., ck 1 ), 

...
  проверочные биты
cn 1  f n 1 (c0 ,..., ck 1 )
Линейное систематические кодирование
– линейные функции
с0  a0 ,

с1  a1 , 
  информацио нные биты
...

сk 1  ak 1 ,
ck  f k (c0 ,..., ck 1 ), 

...
  проверочные биты,
cn 1  f n 1 (c0 ,..., ck 1 )
f k ,..., f n 1  линейные булевы функции
Пример линейного систематического
кодирования - добавление проверки на
четность(1)
Пример.
Информацио Кодовое
нное слово
слово
000
0000
001
0011
010
0101
011
0110
100
1001
101
1010
110
1100
111
1111
c0  a0 ,
с1  a1 ,
с2  a 2 ,
с3  c0  c1  c2 .
Линейный код (некоторые
параметры) - (n,k,d)-код
• n – длина кодовых слов (длина кода)
• k – число информационных разрядов
• d – минимальное кодовое расстояние
•
k
R
n
- скорость передачи
• Комментарий: Хороший (n,k,d)-код имеет
маленькое n и большие k и d.
Примеры
•
•
C1 = {00, 01, 10, 11} есть (2,2,1)-код.
C2 = {000, 011, 101, 110} есть (3,2,2)код.
•
C3 = {00000, 01101, 10110, 11011}
есть (5,2,3)-код.
ISBN-код – недвоичный код
•Каждая книга имеет International Standard Book
Number, которое представляет собой 10разрядное кодовое слово создаваемое
издателем и имеющее следующую структуру:
•
•
•
•так что
l
p
m
w
= x1 … x10
язык издатель номер взвешенная
контрольная сумма
0
07
709503
0
10
 ix
i 1
i
 0 mod 11
Издатель добавляет X в 10-ю позицию, если x10
= 10.
ISBN-код – недвоичный код
• Обнаружение одиночной ошибки
• Пусть X = x1 … x10 - правильный код и пусть
• Y = x1 … xJ-1 yJ xJ+1 … x10 , причем yJ = xJ + a,
a0
• В таком случае:
10
10
 iy   ix
i 1
i
i 1
i
 ja  0 mod 11
ISBN-код – недвоичный код
• Обнаружение ошибки перестановки
• Пусть xJ и xk поменялись местами.
10
10
 iy   ix  k  j x   j  k x
 k  j x  x   0 mod 11
i 1
i
i 1
i
j
j
k
при k  j и x j  xk .
k
Пример линейного систематического
кодирования - добавление проверки на
четность(2)
Пример.
с0  a0 ,
Информа
ционное
слово
Кодовое
слово
000
0000
001
0011
010
0101
011
0110
100
1001
101
1010
110
1100
111
1111
с1  a1 ,
с2  a 2 ,
с3  c0  c1  c2 .
c0  1
 c  0
 1  
 c2   0
  
c3  1
0 0
a0 

1 0  
  a1 
0 1
 a2 
1 1
Порождающая матрица
Пусть


- кодовое слово длины n
- информационное слово длины k
  G 
G – nxk порождающая матрица кода
Систематический код
• Первые разрядов кодового слова
совпадают с информационными
битами
 Ik 
G   
 G1 
Порождающая матрица
• Пример.
  G 
1
с0  
с   0
 1  0
с2  
  0
с3    1
с4  
  1
с5  
с   0
 6 

0
1
0
0
0
1
1
0
0
1
0
1
1
1
0

0
0   a0 
  
1   a1 


1   a2 
 
0   a3 

1


• Длина слов n=7, число иформационных разрядов =4,
число проверочных разрядов n-k=3
Проверки
• Пример. Получаем проверки
с4  с0  с2  с3 ,
с5  с0  с1  с2 ,
с6  с1  с2  с3 ,
1
с0  
с   0
 1  0
с2  
  0
с3    1
с4  
  1
с5  
с   0
 6 

0
1
0
0
0
1
1
0
0
1
0
1
1
1
0

0
0   a0 
  
1   a1 


1   a2 
 

0  a3 

1


Проверочная матрица
с0  с2  с3  с4  0
• Пример.
с0 
с 
 1
 1 0 1 1 1 0 0  с2 

 
 1 1 1 0 0 1 0  с3   0
 0 1 1 1 0 0 1  с 

 4
 
с5 
с 
 6
с0  с1  с2  с5  0,
с1  с2  с3  с6  0,
• H – (n-k)xn проверочная матрица:
H  0
Связь порождающей и проверочной
матрицы систематического кода
• Пример.
•
1

0
0

G  0
1

1

0
0 0 0

1 0 0
0 1 0
  I4 
0 0 1    ,
P

0 1 1
1 1 0

1 1 1
1 0 1 1 1 0 0


H   1 1 1 0 0 1 0   (P I3 )
0 1 1 1 0 0 1


G H 0
T
Связь порождающей и проверочной
матрицы систематического кода
•
 Ik 
,
G  

nk
P
 ( n k )k 
H  ( P( n  k )k I n  k )
( n  k )n
G H 0
T
Сводка результатов по линейным
кодам
• Линейный код задается порождающей ( G )
или проверочной ( H ) матрицами.
• Код (множество кодовых слов) – линейное
подпространство, порожденное столбцами G
• С другой стороны – линейный код – дуальное
подпространство столбцов матрицы H T
дуальный код
Скачать