- •Министерство образования и науки, молодёжи и спорта украины
- •Тема 1. Предмет теории информации и количественная мера информации
- •1.2 Этапы обращения информации
- •1.3 Система передачи информации
- •1.4 Задачи и постулаты прикладной теории информации
- •1.5. Количественная оценка информации дискретного источника. Энтропия.
- •1.6 Фундаментальные свойства энтропии
- •Тема 2. Основные виды энтропии дискретных источников. Условная и взаимная энтропии.
- •2.1 Условная энтропия.
- •2.2 Основные свойства условной энтропии.
- •2.3 Взаимная энтропия. Свойства энтропии объединения.
- •Тема 3. Эффективное кодирование источника дискретных сообщений в канале без помех.
- •3.1 Избыточность информации, причины ее появления.
- •3.2 Способы сокращения избыточности.
- •3.3 Теорема Шеннона для канала без помех.
- •4.1 Общие понятия и элементы теории кодирования
- •4.2 Цели кодирования
- •4.3 Оптимальные неравномерные коды
- •4.4 Коды Шеннона-Фэно
- •4.5 Коды Хаффмена
- •4.6 Особенности эффективных кодов.
- •Тема 4. Кодирование источника дискретных сообщений в канале с помехами. Общие принципы помехоустойчивого кодирования.
- •5.1 Кодирование информации для канала с помехами. Теорема Шеннона для канала с помехами.
- •5.2 Общие принципы использования избыточности
- •5.3 Связь корректирующей способности кода с кодовым расстоянием
- •6.1 Корректирующие свойства кодов с избыточностью.
- •6.2 Классификация корректирующих кодов
- •Тема 5. Регулярные методы построения двоичных помехоустойчивых кодов
- •7.1 Линейные коды. Общие медоды построения.
- •7.2 Определение числа добавочных разрядов r.
- •7.3 Построение образующей(порождающей) матрицы |om|.
- •7.4 Порядок кодирования
- •7.5 Порядок декодирования
- •7.6 Систематические коды. Код Хэмминга.
- •7.7 Обнаружение и исправление ошибок в коде Хэмминга
- •8.1 Двоичные циклические коды
- •8.2 Некоторые свойства циклических кодов
- •8.3 Матричное описание циклических кодов
- •8.4 Выбор образующего полинома
- •8.5 Декодирование циклических кодов
- •Тема 6. Построение кодов заданой помехоустойчивости. Применение недвоичных помехоустойчивых кодов.
- •9.1 Матричное описание циклических кодов.
- •9.2 Коды Боуза — Чоудхури — Хоквингема (бчх)
- •9.3 Систематический вид циклического кода.
- •9.4 Коды Рида–Соломона и их применение.
- •9.5 Циклический избыточный код crc
- •Тема 7. Информационные характеристики источников непрерывных сообщений. Источники с максимальной энтропией. Максимальная пропускающая способность канала связи с помехами.
- •10.1 Информационные характеристики источников непрерывных сообщений
- •10.2 Энтропия равномерного закона распределения
- •10.3 Энтропия гауссового закона распределения.
- •11.1 Пропускная способность канала связи с помехами для непрерывных сообщений
- •Тема 8. Методы кодирования информации со сжатием.
- •12.1 Подстановочные или словарно-ориентированные алгоритмы сжатия информации. Методы Лемпела-Зива.
- •13.1 Описание алгоритма сжатия lzw
- •Декодирование по lzw
- •Достоинства и недостатки lzw
- •13.2 Применение lz-алгоритмов упаковки данных
- •14.1 Кодирование длин повторений
- •14.2 Дифференциальное кодирование
- •Тема 9. Методы кодирования со сжатием и с потерями информации..
- •15.1 Методы сжатия с потерей информации
- •15.2 Точность. Помехи и искажения. Приближенное восстановление
- •15.5 Кодирование преобразований. Стандарт сжатия jpeg
- •Или же, в матричной форме,
- •Тема 10. Методы кодирования физических сигналов в компьютерных сетях.
- •16.1 Кодирование на физическом уровне.
- •16.2 Самонихронизирующиеся коды - коды rz и Манчестер-II
- •16.3 Несамосинхронизирующиеся коды. - код nrz
- •16.4 Высокоскоростные коды - код mlt-3 и pam 5
- •Еще более высокоскоростной код - код pam 5
- •16.5 Требуемая полоса частот для передачи данных и ширина спектра сигнала
- •Ширина спектра сигнала
7.7 Обнаружение и исправление ошибок в коде Хэмминга
Пример . Предположим, в канале связи под действием помех произошло искажение и вместо 0100101 было принято 01001(1)1.
Решение: Для обнаружения ошибки производят уже знакомые нам проверки на четность.
Первая проверка: сумма П1+П3+П5+П7 = 0+0+1+1 четна. В младший разряд номера ошибочной позиции запишем 0.
Вторая проверка: сумма П2+П3+П6+П7 = 1+0+1+1 нечетна. Во второй разряд номера ошибочной позиции запишем 1
Третья проверка: сумма П4+П5+П6+П7 = 0+1+1+1 нечетна. В третий разряд номера ошибочной позиции запишем 1. Номер ошибочной позиции 110= 6. Следовательно, символ шестой позиции следует изменить на обратный, и получим правильную кодовую комбинацию.
Код, исправляющий одиночную и обнаруживающий двойную ошибки
Если по изложенным выше правилам строить корректирующий код с обнаружением и исправлением одиночной ошибки для равномерного двоичного кода, то первые 16 кодовых комбинаций будут иметь вид, показанный в таблице. Такой код может быть использован для построения кода с исправлением одиночной ошибки и обнаружением двойной.
Для этого, кроме указанных выше проверок по контрольным позициям, следует провести еще одну проверку на четность для всей строки в целом. Чтобы осуществить такую проверку, следует к каждой строке кода добавить контрольные символы, записанные в дополнительной колонке (таблица, колонка 8). Тогда в случае одной ошибки проверки по позициям укажут номер ошибочной позиции, а проверка на четность - на наличие ошибки. Если проверки позиций укажут на наличие ошибки, а проверка на четность не фиксирует ее, значит в кодовой комбинации две ошибки.
Лекция 8
8.1 Двоичные циклические коды
Вышеприведенная процедура построения линейного кода матричным методом имеет ряд недостатков. Она неоднозначна (МДР можно задать различным образом) и неудобна в реализации в виде технических устройств. Этих недостатков лишены линейные корректирующие коды, принадлежащие к классу циклических.
Циклическими называют линейные (n,k)-коды, обладающие следующим свойством: для любого кодового слова:
существует другое кодовое слово:
полученное циклическим сдвигом элементов исходного кодового слова ||КС|| вправо или влево, которое также принадлежит этому коду.
Для описания циклических кодов используют полиномы с фиктивной переменной X.
Например, пусть кодовое слово ||КС|| = ||011010||.
Его можно описать полиномом
Таким образом, разряды кодового слова в описывающем его полиноме используются в качестве коэффициентов при степенях фиктивной переменной X.
Наибольшая степень фиктивной переменной X в слагаемом с ненулевым коэффициентом называется степенью полинома. В вышеприведенном примере получился полином 4-й степени.
Теперь действия над кодовыми словами сводятся к действиям над полиномами. Вместо алгебры матриц здесь используется алгебра полиномов.
Рассмотрим алгебраические действия над полиномами, используемые в теории циклических кодов. Суммирование полиномов разберем на примере С(Х)=А(Х)+В(Х).
Пусть
||A|| = ||011010||, ||В|| = ||110111|.
Тогда
---------------------------------------------------------------
Таким образом, при суммировании коэффициентов при X в одинаковой степени результат берется по модулю 2. При таком правиле вычитание эквивалентно суммированию.
Умножение выполняется как обычно, но с использованием суммирования по модулю 2.
Рассмотрим умножение на примере умножения полинома (X3+X1+X0)
на полином X1+X0
X3 + 0*X2+X1+X0
*
X1+X0
---------------------------------------------------
X3+ 0*X2+X1+Х0
X4+0*Х3+ X2+Х1
____________________________________
Х4+ X3+ X2+0*X1+X0
Операция - обратная умножению -деление. Деление полиномов выполняется как обычно, за исключением того, что вычитание выполняется по модулю 2. Вспомним, что вычитание по модулю 2 эквивалентно сложению по модулю 2
Пример деления полинома X6+X4+X3 на полином X3+X2+1
X6+0*X5+X4 + X3+0*X2+0*X1+0 | X3+X2+1
X6+X5+0*X4+X3 результат== |X3+X2
-----------------------------------
X5 +X4 + 0*X3+0*X2
X5 +X4 + 0*X3+ X2
----------------------------------------
остаток== X2 = 100
Циклический сдвиг влево на одну позицию коэффициентов полинома степени n-1 получается путем его умножения на X с последующим вычитанием из результата полинома Xn+1, если его порядок > п.
Проверим это на примере.
Пусть требуется выполнить циклический сдвиг влево на одну позицию
коэффициентов полинома
C(X)=X5+Х3+X2+1 → (101101)
В результате должен получиться полином
C1(X)=X4+Х3+X1+1 → (011011)
Это легко доказывается:
C1(X)=C(X)*X-(X6+1)=(X6+Х4+X3+X)+( X6+1)=X4+Х3+X1+1
В основе циклического кода лежит образующий полином r-го порядка (напомним, что r- число дополнительных разрядов). Будем обозначать его gr(X).
Образование кодовых слов (кодирование) КС выполняется путем умножения информационного полинома с коэффициентами, являющимися информационной последовательностью И(Х) порядка i<k на образующий полином gr(X)
КСr+k(Х)=gr(X)+ИСk(Х).
Принятое кодовое слово может отличаться от переданного искаженными разрядами в результате воздействия помех.
ПКС(Х)=КС(Х)+ВО(Х).
где ВО(Х) - полином вектора ошибки, а суммирование, как обычно, ведется по модулю 2.
Декодирование, как и раньше начинается с нахождения опознавателя, в данном случае в виде полинома ОП(Х). Этот полином вычисляется как остаток от деления полинома принятого кодового слова ПКС(Х) на образующий полином g(Х):
Первое слагаемое остатка не имеет, т.к. кодовое слово было образовано путем умножения полинома информационной последовательности на образующий полином. Следовательно, и в данном случае опознаватель полностью зависит от вектора ошибки.
Образующий полином выбирается таким, чтобы при данном r как можно большее число отношений ВО(Х)/g(Х) давало различные остатки.
Такому требованию отвечают так называемые неприводимые полиномы, которые не делятся без остатка ни на один полином степени r и ниже, а делятся только сами на себя и на 1.
Приведенная здесь процедура образования кодового слова неудобна тем, что такой код получается несистематическим, т.е. таким, в кодовых словах которого нельзя выделить информационные и дополнительные разряды.
Этот недостаток был устранен следующим образом.
Способ кодирования, приводящий к получению систематического линейного циклического кода, состоит в приписывании к информационной последовательности И дополнительных разрядов ДР.
Эти дополнительные разряды предлагается находить по следующей формуле:
Порядок полинома ДР(Х) гарантировано меньше r (поскольку это остаток).
Приписывание дополнительных разрядов к информационной последовательности, используя алгебру полиномов, можно описать формулой:
Одним из свойств циклических линейных кодов является то, что результат деления любого разрешенного кодового слова КС на образующий полином также, является разрешенным кодовым словом.
Покажем, что получаемые по вышеприведенному алгоритму кодовые слова являются кодовыми словами циклического линейного кода. Для этого нужно убедиться в том, что произвольное разрешенное кодовое слово делится на образующий полином g(X) без остатка:
Рассмотрим первое слагаемое:
где d(Х) - целая часть результата деления.
Подставим полученную сумму на место первого слагаемого:
Суммирование последних двух слагаемых дает нулевой результат (напомним, что суммирование выполняется по модулю 2).
Значит
- целая часть деления. Остатка нет. Это означает, что описанный выше способ кодирования соответствует циклическому коду.