Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание ТПИ 14.doc
Скачиваний:
9
Добавлен:
31.03.2015
Размер:
74.24 Кб
Скачать

Задание 4 Эффективное кодирование

  1. Рассматриваются 4 сообщения (х1, х2, х3, х4). Суммарная вероятность их появления равна 1. Вероятность сообщения х1 Р(х1) = 0.1* п1 + 0.05*п2. Где п1 и п2 –цифры двухзначного номера студента по журналу группы. Вероятностями остальных сообщений задаться самостоятельно. Вычислить энтропию сообщений Н = ∑(Р(хк) *logРхк)). хк – это (х1, х2, х3, х4).

  2. Закодировать сообщения кодом Шенонна-Фано (Ш.-Ф.). Вычислить среднюю длину кода п = ∑ а(хк)*Р(хк). а(хк) – количество знаков в коде Ш.-Ф. сообщения хк.

  3. Сгруппировать сообщения по 2 (4*4 =16). Вычислить вероятности этих новых сообщений , как произведение вероятностей соответствующих исходных сообщений.

  4. Закодировать эти 16 сообщений кодом Ш.-Ф. и вычислить энтропию полученных сообщений и среднюю длину кода.

  5. Закодировать эти 16 сообщений кодом Хаффмена. Найти среднюю длину кода?

Контрольные вопросы к заданию 4

  1. Как и почему должны соотноситься средняя длина кода и энтропия?

  2. Поясните, является ли неизбыточный код эффективным?

  3. Поясните, какой существенный недостаток имеют эффективные коды?

  4. Как осуществляется декодирование эффективных кодов?

  5. Какой код «лучше» Ш.-Ф. или Хаффмена?

  6. Эффективный код увеличивает или уменьшает скорость передачи информации?

  7. В чём суть префикосности эффективных кодов?

  8. С какой целью производят укрупнение сообщений ( как в п. 3)задания?

  9. Всегда ли целесообразно применять эффективное кодирование информации?

  10. Поясните. Повышает ли помехоустойчивость сообщений эффективное кодирование?

Задание 5 (Домашнее задание) Некоторые сведения из теории полей Галуа.

Коды Рида – Соломона строятся, используя арифметические операции в конечных полях, называемых полями Галуа ( GF(p))порядкаp. Числоpдолжно быть простым. Помимо таких полей используются полеGF(pm), называемое расширением поляGF(p). Расширение поля используется для многочленного представления элементов поляGF(pm). Многочленное представление это все многочлены степени меньшейm. Чтобы в результате арифметических действий над многочленами не получился многочлен степени выше, чемm-1 , результат приводят по модулю неприводимого многочлена степениm. То есть, за результат выполнения арифметических операций принимают остаток от деления результата на неприводимый многочлен. Многочлен называется неприводимым, если он не раскладывается на множители (на многочлены) степени меньшей, чемmс коэффициентами из поляGF(p).

Среди элементов поля GF(pm) можно выбрать такой элемент α, что ,возводя его последовательно в степень, получают все элементы поля (кроме нулевого). Таких элементов может быть несколько. Они определяются методом перебора. Элемент α называют примитивным.

Неприводимый многочлен не имеет корней в поле GF(p), но имеет корни в расширении поля. Если неприводимый многочлен имеет своим корнем примитивный элемент, то такой многочлен называется примитивным (или порождающим). Если многочленp(x) имеет корень β, то его корнями будут также β в степенях рі (і = 1,2 и т. д. доm- 1). Если р=2, то β, β2 4 … . Таблицы всех неприводимых многочленов различных степеней приводятся в учебниках по кодированию. Примитивные многочлены среди них выделены.

Рассмотрим поле GF(24). Используя примитивный многочлен четвёртой степени g(x) =X4 +X+ 1 составим таблицу соответствия элементов поляGF(24) в виде степеней примитивного элемента, двоичным и десятичным эквивалентом элемента. Примитивный элемент α =(Х). (Из записи многочлена g(x) следует, что Х =2.) Поскольку многочлен примитивный, то g(α) =0; α * g(α) =0; α2 * g(α) = 0 и т.д. Откуда следует, что α4= α + 1; α5 = α2 + α; α6 = α3 + α2 и т.д. Учитывая это, начиная с α4, получим следующую таблицу.

Т а б л и ц а 1. Представление элементов поля в виде степени примитивного элемента и в двоичном коде.

α0 = 1 0001 1

α1= α 0010 2

α2 = α2 0100 4

α3 = α3 1000 8

α4 = α + 1 0011 3

α5 = α2 + α 0110 6

α6= α3 + α2 1100 12

α7= α3+ α +1 1011 11

α8= α2 + 1 0101 5

α9= α3 + α 1010 10

α10= α2 + α +1 0111 7

α11= α3 + α2 + α 1110 14

α12= α3 + α2 + α + 1 1111 15

α13= α3 + α2 +1 1101 13

α14= α3 +1 1001 9

α15= 1 0001 1

Здесь учтено, что, например, α7= α4+ α2 = α + 1 + α2= α2 + α + 1.

В поле задаются две арифметические операции: сложение и умножение, выполняемые с приведением результата по модулю. Кроме того в поле для каждого его элемента имеется обратный элемент по сложению (-а) элемента поля (а) такой, что а +(-а)=0, и обратный элемент а-1 по умножению такой, что а*а-1 = 1. Существование этих элементов позволяет выполнять операции вычитания и деления. Например, а –в =а +(-в); а/в =а*(в-1 ). В полеGF(2) имеются только два элемента «0» и «1». И обратными элементами является сам элемент, а операция вычитания заменяется операцией сложения по модулю 2.

Операция сложения выполняется как операция сложения по модулю 2 с двоичным представлением элемента. Например, 12 + 5 = 1100 + 0101 = 1001 = 9; 10 + 11 = 1010 + 1011= 0001 = 1. Операция умножения производиться с применением логарифмирования и антилогарифмирования. Операция логарифмирования заключается в том, что элементы поля GF(24) заменяются степенным представлением примитивного элемента. В результате умножения показатели соответствующих степеней примитивного элемента складываются, приводятся по модулю 15. Затем в соответствии с полученной степенью примитивно элемента из таблицы находят соответствующее значение десятичного представления элемента поля. Например, 4*8 = α2 + α3 = α5 =6; 5*10 = α8 * α9 = α17 = α2 = 4.