Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_ГОС_2007.doc
Скачиваний:
72
Добавлен:
10.02.2016
Размер:
3.91 Mб
Скачать

Теорема 1

Для равновероятного алфавита A(a1,a2...am) средняя длина однозначно декодируемых кодов слов во вторичном двоичном алфавите из m2 символов равна - энтропии первичного алфавита Н(А), либо отличается от неё не более чем на единицу H(A)<=lср<H(A)+1

Теорема 2

Для любого неравновероятного алфавита A(a1,a2,…,am) существует код, для которого lср удовлетворяет неравенству: H(A)<=lср<H(A)+1

Выводы.

  1. Энтропия первичного алфавита Н(А) характеризует возможный предел сокращения длины кодового слова во вторичном алфавите.

  2. Lср>=H(A) - данное соотношение соблюдается всегда.

  3. Качество кода с точки зрения оптимальности можно определить сравнивая энтропию первичного алфавита Н(А) и lср. При оптимальном кодировании эта разница не превышает единицу.

4.4. Оптимальное кодирование.

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

Свойства оптимальных неравномерных кодов (ОНК).

1°. Минимальная средняя длина lср обеспечивается в том случае, когда избыточность каждого кодового слова сведено к минимуму (к нулю).

2°. Кодовые слова оптимального кода должны строится из равновероятных и взаимонезависимых символов.

Из этих свойств вытекают основные принципы построения оптимальных неравномерных кодов (ОНК).

  1. Выбор каждого кодового слова нужно производить так, чтобы содержащееся в нём количество информации было максимальным.

  2. Буквам первичного алфавита, имеющим большую вероятность, присваиваются более короткие кодовые слова во вторичном алфавите.

104. Коды Шеннона-Фано и Хаффмена

Метод Шеннона - Фано (для двоичного кода).

  1. Первичный алфавит располагается в порядке убывания вероятностей.

  2. Первичный алфавит разбивают на две группы с приблизительно равными суммарными вероятностями.

  3. Первой группе присваивают «0», второй - «1».

  4. Каждую группу делят на две подгруппы с приблизительно равными суммарными вероятностями.

  5. Первым подгруппам каждой из групп присваивается «0», а вторым - «1». Это будут вторые цифры кода.

  6. Пункты 4 и 5 повторяются до тех пор , пока в подгруппах не останется по одной букве.

Например: Дан восьмибуквенный первичный алфавит, известны безусловные вероятности для символов первичного алфавита.

Процесс построения двоичных кодовых комбинаций методом Шеннона-Фано представим в виде таблицы.

буквы

Вероят­ность

Разбиение на группы

Кодовая комбина ция

Дли на

1

2

0,3

0,2

00

01

2

2

3

4

0,15

0,1

100

101

3

3

5

0,1

110

3

6

0,05

1110

4

7

8

0,05

0,05

11110

11111

5

5

Cредняя длина кодовой комбинации при равномерном кодировании.

Lср=Pili=2,75 [бит] (i=1,мощность алфавита [8)

Энтропия первичного алфавита H(A1)= -  PilogPi=2,707 [бит]

Метод Хаффмена (для двоичного кода).

Этот метод является процедурой построения префиксного кодового дерева.

  1. Первичный алфавит располагается в порядке убывания вероятностей.

  2. Последние два символа объединяются в новый символ с вероятностью, равной сумме вероятностей образовавших его символов.

  3. Новый алфавит упорядочивается по убыванию вероятностей.

  4. Процедура объединения продолжается до тех пор, пока вероятность Р нового символа не будет равна 1. Эти шаги приводят к построению дерева.

  5. Ветвям полученного дерева присваиваются символы вторичного алфавита, причём всегда в одинаковой последовательности.

  6. Кодовые комбинации - это последовательности символов вторичного алфавита, встречающиеся по пути от корня к вершинам дерева.

Для восьмибуквенного первичного алфавита построим оптимальный двоичный код методом Хаффмена.

№ букв

Вер-тъ

Кодовая комбина­ция

А1

А2

A3

А4

А5

А6

1

0,3

00

0,3 00

0,3 00

0,3 00

0,3 00

0,4 1

0,6 0

2

0,2

10

0,2 10

0,1 10

0,2 10

0,3 01

0,3 00

0,4 1

3

0,15

010

0,15 010

0,15 010

0,2 11

0.2 10

0,3 01

4

0,1

110

0,1 110

0,15 011

0,15 010

0,2 11

5

0,1

111

0,1 111

0.1 110

0,15 011

6

0.05

0111

0.1 0110

0,1 111

7

0,05

01100

0,05 0111

8

0,05

01101

Оба алгоритма допускают неоднозначное кодирование. Неоднозначность понимается в том смысле, что для одного и того же первичного алфавита могут быть получены разные оптимальные коды.

  1. При прочих равных условиях ОНК позволяют вести передачу информации с максимальной скоростью.

При прочих равных условиях ОНК обладает наименьшей защищенностью от помех.

105. Коды обнаруживающие ошибки и корректирующие коды. Код Хемминга

4.6. Коды, обнаруживающие ошибки и корректирующие коды.

4.6.1. Линейные групповые коды.

Линейными называются коды потому, что контрольные символы являются линейными комбинациями информационных символов. Для двоичных кодов в качестве линейной операции применяют  (сумму по модулю2).

Свойство линейных кодов. Сумма по модулю 2 кодовых комбинаций некоторого кода является кодовой комбинацией того же кода, т.е. линейные коды образуют алгебраическую группу 1-го порядка по отношению к операции . Поэтому коды называют групповыми.

Наиболее распространённым является код Хэмминга. Для формирования кода Хэмминга необходимо задать:

  1. количество информационных разрядов;

  2. обнаруживающие и корректирующие способности кода - r (кратность ошибки) и S(корректировать ошибок).

Далее необходимо вычислить nu и nk (nk количество кодовых разрядов, nu количество информационных разрядов), и приступить непосредственно к формированию кода:

  1. Номера контрольных символов выбираем по закону 2i, где i = 0,1,2,3..., т.е. контрольные разряды -1,2,4,8,16,32...

  2. Каждый контрольный разряд следит за определённым набором проверяемых символов. Для определения этого набора составим таблицу, число строк в которой должно быть равно: n=nu+nk Первой строке соответствует проверочный символ a1, второй-а2 и т.д.

0001

a1,

0010

a2

0011

a3

0100

a4

0101

a5

0110

a6

0111

a7

Принцип формирования набора проверочных символов: в первую проверку входят символы, содержащие «1» в младшем разряде; во вторую проверку входят символы, содержащие «1» во втором разряде и т.д., т.е. имеем : Пров. разряды Контр. разряд

1 проверка -> 1,3,5,7,9,11... -> 1

2 проверка -> 2,3,6,7,10,11,14,15... -> 2

3 проверка -> 4,5,6,7,12,13,14,15... -> 4

  1. Значение каждого контрольного символа выбирается так, чтобы его сумма по модулю 2 со всеми проверяемыми символами была равна нулю.

  2. Обнаружение ошибок. Факт ошибки устанавливается при получении «1» при суммировании по модулю 2 разрядов соответствующей проверки.

  3. Коррекция ошибок. Последовательное проведение проверок даёт вектор из нулей и единиц. Он называется синдромом ошибки. Если синдром равен нулю, то ошибки нет, иначе значение синдрома даёт номер ошибочного разряда.

Например: Исправить любую одиночную ошибку при передаче кодовой комбинации 0101, т.е. nu= 4, r = l.

  1. nk=[log2((nu+1)+[log2(nu+1)])]=3; n=3+4=7.

Модель кода.

1

2

3

4

5

6

7

К1

К2

0

К3

1

0

1

a1, a2, a4 - контрольные разряды.

a3,a5,a6,a7 - информационные разряды.

1-Я Проверка: а1a3a5a7 = K1011->K1=0.

2-Я Проверка: a2a3a6a7 = K2001->K2=1

3-Я Проверка: a4a5a6a7 = K3001->K3=0.

Результирующая кодовая комбинация: 0100101.

Внесём ошибку и осуществим проверку. Пусть принята кодовая комбинация: 0110101.

1-Я Проверка: 0111->=1.

2-Я Проверка: 1101->=1

3-Я Проверка: 0101->=0.

011 - значение синдрома ошибки равно «3», что свидетельствует об ошибке в третьем разряде принятой кодовой комбинации.

106. Групповые коды. Циклические коды.

Групповые коды.

Групповые коды удобно задавать в виде образующей (порождающей) матрицы, которая представляется при помощи двух матриц И и П (информационной и проверочной):

C=|И|П]

Каждая строка матрицы соответствует определённой кодовой комбинации. Все кодовые комбинации данного кода получаются путём суммирования по модулю 2 строк из образующей матрицы (во всех возможных сочетаниях).

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

S=1->d0=3.(d0 – минимальное кодовое расстояние)

nu=log216=4 (кол-во инф. разрядов) nk=3->n=4+3=7

Для обеспечения минимального кодового расстояния d0=3 необходимо, чтобы вес каждой строки матрицы П был больше либо равен «2».

Wn>=d0-Wu->Wn>=2

Т

1

0

0

0

0

1

1

0

1

0

0

1

0

1

0

0

1

0

1

1

0

0

0

0

1

1

1

1

огдаобразующая матрица будет иметь вид:

C=

Метод кодирования при помощи образующих матриц.

В данном методе строки образуют nu комбинаций, остальные комбинации получаются путём суммирования по модулю 2 строк матрицы.

1010->1000|011 0010|110 1010|101

Коррекция ошибок. Для каждой матрицы С существует своя одна единственная система проверок: в первую проверку входят 1-й контрольный разряд и информационные разряды, соответствующие «1» первого столбца матрицы П; во вторую проверку - 2-й контрольный разряд и информационные разряды, соответствующие «1» второго столбца матрицы П и т.д. Общее количество проверок - nk (число столбцов матрицы П).

В результате проверок вырабатывается синдром S={S1,…,Snk}. Если вес синдрома равен нулю, то

ошибок нет, иначе необходимо корректировать ошибки, для чего формируется контрольная матрица Н, которая задаёт соответствие вида синдрома и места ошибки. Контрольная матрица Н представляет собой транспонированную матрицу П, дополненную единичной матрицей 1, число столбцов которой равно числу проверочных разрядов кода.

H=||ПТInk||

Для кода, построенного в предыдущем примере, система проверок и контрольная матрица имеют вид:

S1=P1a2a3a4

S2=P2a1a3a4

S3=P3a1a2a4

a1

a2

a3

a4

P1

P2

P3

0

1

0

0

1

0

1

0

0

1

0

1

1

0

0

0

0

1

1

1

1

H=

Предположим, что была послана кодовая комбинация: 1010101.

  1. Принятая кодовая комбинация: 1000101.

S1=1000=1

S2=0100=1

S3=1100=0

Синдром «110» свидетельствует об ошибке в третьем разряде принятой кодовой комбинации (столбец a3 матрицы Н).

  1. Принятая кодовая комбинация: 1010001.

S1=0010=1

S2=0110=0

S3=1100=0

Синдром «100» свидетельствует об ошибке в пятом разряде принятой кодовой комбинации (столбец P1 матрицы Н).