Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
91
Добавлен:
13.02.2014
Размер:
329.73 Кб
Скачать

Алгоритмы эффективного кодирования. Алгоритм Шеннона–Фано.

Методику получения бинарного кода близкого к эффективному впервые разработали независимо друг от друга два американских ученых.

Этот код построен по следующему алгоритму:

  1. все символы используемого алфавита записывают (располагают) в порядке их вероятностей;

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

  3. всем знакам первой группы в качестве первого цифрового символа присваивается значение 0(1), а всем элементам второй группы 1(0);

  4. полученные группы знаков снова разбивают каждую на две подгруппы по указанному выше принципу;

  5. указанную процедуру выполняю до тех пор, пока на очередном шаге в каждой из подгруппы не окажется по одному элементу.

При кодировании по этому алгоритму средняя длинна кодовых комбинаций оказывается достаточно близкой к теоретической lmin, т.е. llmin. При этом энтропия кодера приближается к максимально возможной, избыточность кода будет минимальной и сложность передачи будет близка к пропускной способности канала.

Этот алгоритм применим также и для небинарных кодов (при q2). В этом случае используемый алфавит разбивают на q частей примерно равной суммарной вероятности.

Сущность алгоритма можно проиллюстрировать с помощью графокодирования. Построить самостоятельно. Важным свойством кода является отсутствие трудностей в определении границ кодовых комбинаций. Коды, обладающие таким свойством, называют неприводимыми. Код Шеннона – Фано неприводимый, т.к. он префиксный.

Алгоритм Хаффмена.

Метод Шеннона–Фано не всегда приводит к однозначному построению кода, т.к. деление знаков на группы производится произвольно. От указанного недостатка свободна методика Хаффмена, которая гарантирует однозначное построение кода с наименьшими (для данного распределения вероятностей) числом символов на группу.

Для случая бинарного кода этот метод сводится к следующему алгоритму:

  1. буквы используемого алфавита (А:{а1,…, аn}) располагают в порядке убывания вероятностей (р1р2р3…),

  2. два последних (самых маловероятных) знака объединяют в одно вспомогательное сообщение (aN-1,aN)=”b”, имеющее вероятность P(“b”)=P(aN-1)+P(aN), которая равна сумме вероятностей объединенных символов.

  3. полученный алфавит А'={а12,…аn-2,b}, слова которого снова располагают в порядке убывания вероятности;

  4. в полученном алфавите снова заменяют два наименее вероятных элемента в одно дополнительное сообщение и вычисляют его вероятность ("с"Р("с")); полученную совокупность знаков снова располагают в порядке убывания вероятностей;

  5. повторяют шаги 1 и 2 до тех пор, пока не получиться единственное сообщение вероятность которого равна единице.

Наглядно процесс кодирования может быть представлен с помощью следующего кодового дерева.

Недостатки систем эффективного кодирования.

  1. различие в длине кодовых комбинаций. Моменты снятия информации не регламентированы, то кодер источника будет выдавать в произвольные промежутки времени кодовые комбинации различной длинны. Поскольку новая связь наиболее эффективно используется только в том случае когда символы поступают в него с постоянной скоростью, то на выходе кодера должно быть буферное устройство ("упругая" задержка), которое должно запасать сигналы по мере их поступления и выдавать в тракт начала связи с постоянной скоростью. Соответствующее устройство должно быть предусмотрено и на приемной стороне.

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

  3. Недостаток этот связан со специфическим влиянием помех но достоверность приема. Одиночная ошибка может превратить принимаемую кодовую комбинацию в другую, которая не равна по длительности, что может привести к неправильному декодированию целого ряда последующих кодовых комбинаций. Этот эффект называется треком ошибки. Что приводит к необходимости использования методов защиты.

  1. Относительная сложность технической реализации таких систем.

Соседние файлы в папке курсовая работа