Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория_информации.doc
Скачиваний:
2
Добавлен:
09.01.2020
Размер:
839.68 Кб
Скачать

2.3. Кодирование сети

Рассмотрим процедуру передачи некодированных и закодированных дискретных данных по каналам связи. Отметим, что в соответствии с теоремой Котельникова частота модуляции сигнала должна не менее чем вдвое превышать частоту самого сигнала.

Характеристиками канала являются, как отмечалось, пропускная способность (емкость канала). Эффективность канала определяется скоростью передачи, достоверностью, надежностью работы и задержками сообщения.

Сообщение на выходе канала может быть искажено действием помех. Математически канал задается множеством допустимых сообщений на входе и выходе и набором условных вероятностей P(y/x) получения сигнала на y выходе при входном сигнале x. Эти вероятности описывают статистические свойства помех (шумов).

Если P(y/x) = 1 при y = x и P(y/x) = 0 при yx, то это канал без шумов. Далее речь пойдет о каналах с дискретной информацией.

Для канала без шума пропускная способность канала

C = lim(log2N(T)/T),

T

где N(T) – число возможных сигналов за время T.

Сообщения на входе в канале следует кодировать, а на выходе – декодировать при этом так, чтобы не снизить скорость передачи. Иными словами, входному алфавиту следует поставить в соответствие новый алфавит.

Теперь необходимо определить максимальную скорость передачи при наличии помех, зная емкость канала и энтропию передатчика.

Теорема Шеннона (основная теорема о кодировании при наличии помех). Пусть источник характеризуется дсв X. Для каждого сообщения задана вероятность искажения при передаче. Тогда существует такая скорость передачи u, зависящая от X, что для любого  > 0 имеет место u < u и сколь угодно близкая к u и такая, что возможно передавать сообщения со скоростью u и вероятностью ошибки меньше , u = C/HX. Этот способ позволяет получить помехоустойчивый код.

Теорема Фано (обратная теорема). Для u > u можно найти такое положительное число  > 0, что при передаче информации со скоростью u вероятность ошибки  передачи каждого символа сообщения при любом методе кодирования и декодирования будет не менее , которое растет с ростом u.

Необходимы способы борьбы с помехами (помехозащитное кодирование). Для этого целесообразно построить математическую модель системы связи.

Удобнее всего модель иллюстрировать при передаче сообщения двоичными символами. Тогда канал можно представить в виде, показанном на рис. 2.4, где p – вероятность безошибочной передачи бита; q - вероятность передачи бита с ошибкой.

Двоичным (m, n)-кодом называется пара, состоящая из схемы кодирования E: Z2mZ2n и схемы декодирования D: Z2nZ2m, где Z2 – множество двоичных последовательностей соответствующей длины. Обычно m < n, m = n рассматривается в криптографии. Функции D и E выбираются из условия тождественности функции H = DTE, где T – функция ошибки канала, а функции D и E считаются безошибочными (тождественными).

Для кодов вводят такие параметры.

Расстоянием Хэмминга d(a, b) между словами a и b длины n называется количество позиций кода, в которых эти слова различаются.

Вес w(a) двоичного кода a = {ai, i = 1, n} – количество единиц в нем. Очевидно

n

w(a) = ai.

i = 1

Для a = 1001, b = 0011 величины d(a, b) = 2, w(a) = w(b) = 2.

Используется операция  поразрядного сложения без переноса (сложение по mod2, исключительное ИЛИ). Тогда d(a, b) = w(ab).

Вероятность того, что слово a длины n будет принято за слово b той же длины, равна pnd(a, b)qd(a, b). К примеру, вероятность принятия слова 1011 за слово 0011 составляет p3.

Напомним, что коды делят на две группы: с обнаружением и исправлением ошибок.

Чтобы код позволял обнаружить все ошибки кратности не более k, необходимо наименьшее кодовое расстояние между словами, равное k +1.

Вероятность необнаружения ошибки равна

n

Сin pn-iqi.

i = 1

Чтобы код позволял исправить все ошибки кратности не более k, необходимо наименьшее кодовое расстояние между словами, равное 2k +1.

Вероятность ошибочного приема равна

n

Сin pn-iqi,

i = k+1

а вероятность правильного приема

k

Сinpn-iqi.

i = 0

Показано, что (nr, n)-код с минимальным расстоянием 2k +1 требует r дополнительных разрядов, определяемых нижней границей Хэмминга в соответствии с неравенством

r log2kn + Ck-1n + …+ C1n + 1).

Если имеет место нижняя граница (неравенство Варшамова-Гильберта)

r > log22k-1n-1 + С2k-2n-1 + …+ C1n-1 + 1),

то существует (nr, n)-код, исправляющий ошибки кратности k и менее.

Неравенства задают необходимое и достаточное условия для построения помехоустойчивых кодов.

Простейший умозрительный код с обнаружением ошибки – добавление к байту еще одного бита, чтобы дополнить количество единиц до четного или нечетного значения.

Простейший умозрительный код, исправляющий ошибку – тройное повторение каждого бита. Если ошибка будет в одном бите, она будет исправлена. При ошибках в двух или трех битах данные будут искажены.

Если ошибки независимы, то вероятность приема n бит с k ошибками

Pn(k) = Cknpn-kqk.

Пример 2.1. Пусть величина m = 2 и кодирование (функция E) осуществляется так: 00  000; 01  011; 10  101; 11  110.

Вероятность принятия сообщения хотя бы с одной ошибкой равна q3 + 3pq2 + 3p2q. Вероятность правильного приема одного бита составляет p3 + 3p2q, а вероятность ошибочного приема составляет q3 + 3pq2.

При использовании кода (m, 3m) сообщение может быть разбито на блоки длиной m с троекратным их повторением. Такие коды неэффективны.

Для защиты серьезных и важных сообщений необходим детальный анализ с помощью математической теория передачи данных по каналам.

Получить минимальную вероятность ошибки можно специальными кодами.

Выделяют группы блочных и древовидных (последовательных) кодов.

Можно говорить о следующих основных видах кодов.

1. Систематические коды.

2. Матричное кодирование.

3. Полиномиальные коды.

4. Циклические избыточные коды.

Систематические коды предполагают добавление к исходным кодам дополнительных контрольных символов с определенной схемой кодирования.

Матричное кодирование. Для блоков большой длины предыдущие методы требуют большое количество памяти. Имеется матрица E = (eij) размерности mn. Если заданы строки кодового вектора a размерности m, то строки кодового вектора b = aE. Достаточно запомнить m кодовых слов вместо 2m слов. Чтобы не было повторяющихся комбинаций разным значениям исходного кода, m столбцов матрицы E должны составлять единичную матрицу. Определена нижняя граница Плоткина r  2d – 2 – log2d, n  2d – 2=1.

Разновидностями матричных кодов являются [1] групповые, совершенные квазисовершенные коды.

Другой разновидностью матричных кодов являются полиномиальные коды, относящиеся к блочным кодам. В полиномиальных кодах сообщению противопоставляется полином. Для кода (a0, a1, …, am-1) многочлен a(x) = a0 + a1x …, am-1xm-1. Кодирование проводится умножением на фиксированный многочлен. Вычисления ведутся в классе вычетов по модулю 2: от результата любой арифметической операции берется остаток от его деления на 2. Разновидностью полиномиальных кодов являются циклические коды.

Циклические избыточные коды. Наибольшее распространение получили коды в 16 и 32 бита. Коды широко используются в модемах, телекоммуникационных программах, программах архивации.