Помехоустойчивое кодирование Линейные коды
Некоторые предположения Блоковый код- код, в котором все слова имеют одинаковую длину. Кодовое слово – слово из некоторого кода С. Исходные предположения относительно канала 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.
Кодирование – введение избыточности –алгебраический подход Кодер
Систематическое кодирование Кодер
Кодирование – введение избыточности (систематическое кодирование )
Линейное систематические кодирование – линейные функции
Пример линейного систематического кодирования - добавление проверки на четность(1) Пример. Информацио нное слово Кодовое слово
Линейный код (некоторые параметры) - (n,k,d)-код n – длина кодовых слов (длина кода) k – число информационных разрядов d – минимальное кодовое расстояние - скорость передачи Комментарий: Хороший (n,k,d)-код имеет маленькое n и большие k и d.
Примеры C 1 = {00, 01, 10, 11} есть (2,2,1)-код. C 2 = {000, 011, 101, 110} есть (3,2,2)- код. C 3 = {00000, 01101, 10110, 11011} есть (5,2,3)-код.
ISBN-код – недвоичный код Каждая книга имеет International Standard Book Number, которое представляет собой 10- разрядное кодовое слово создаваемое издателем и имеющее следующую структуру: l p mw=x 1 … x 10 язык издатель номер взвешенная контрольная сумма так что Издатель добавляет X в 10-ю позицию, если x 10 = 10. The ISBN code is designed to detect: (a) any single error (b) any double error created by a transposition
ISBN-код – недвоичный код Обнаружение одиночной ошибки Обнаружение одиночной ошибки Пусть X = x 1 … x 10 - правильный код и пусть Y = x 1 … x J-1 y J x J+1 … x 10, причем y J = x J + a, a 0 В таком случае:
ISBN-код – недвоичный код Обнаружение ошибки перестановки Обнаружение ошибки перестановки Пусть x J и x k поменялись местами.
Пример линейного систематического кодирования - добавление проверки на четность(2) Пример. Информа ционное слово Кодовое слово
Порождающая матрица Пусть - кодовое слово длины n - информационное слово длины k G – nxk порождающая матрица кода
Систематический код Первые разрядов кодового слова совпадают с информационными битами
Порождающая матрица Пример. Длина слов n=7, число иформационных разрядов =4, число проверочных разрядов n-k=3
Проверки Пример. Получаем проверки
Проверочная матрица Пример. H – (n-k)xn проверочная матрица:
Связь порождающей и проверочной матрицы систематического кода Пример.
Связь порождающей и проверочной матрицы систематического кода
Сводка результатов по линейным кодам Линейный код задается порождающей ( ) или проверочной ( ) матрицами. Код (множество кодовых слов) – линейное подпространство, порожденное столбцами С другой стороны – линейный код – дуальное подпространство столбцов матрицы - дуальный код