Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SPD_Lektsii / СПД Лекция 6

.pdf
Скачиваний:
27
Добавлен:
05.03.2016
Размер:
698.37 Кб
Скачать

Нехай повідомлення вхідного алфавіту A {a1, a2 , , ak } мають відповідно ймовірності їх появи p1, p2, , pk . Тоді алгоритм кодування Хафмена полягає в наступному:

1.Всі повідомлення розташовуються у стовпчик у порядку зменшення ймовірності їх появи.

2.Два найбільш вірогідних повідомлення об’єднуємо в одне повідомлення b , яке має

ймовірність, що дорівнює сумі ймовірностей повідомлень aK 1, aK , тобто PK 1 PK . В результаті отримаємо повідомлення a1, a2, , aK 2,b , ймовірності яких p1, p2, , pK 2, pK 1 pK .

3.Повторюємо кроки 1 і 2 до тих пір, поки не отримаємо єдине повідомлення, ймовірність якого дорівнює 1.

4.Проводячи лінії, що поєднують повідомлення та утворюють послідовні підмножини, отримуємо дерево, в якому окремі повідомлення є кінцевими вузлами. Відповідні їм кодові слова можна визначити, приписуючи правим гілкам об’єднання символ «1», а лівим – «0». Втім,

поняття «праві» та «ліві» гілки в даному випадку відносні.

На підставі отриманої таблиці можна побудувати кодове дерево

Так як в процесі кодування повідомлень зіставляються тільки кінцеві вузли, отриманий код є префіксним і завжди однозначно декодованим.

При рівномірних кодах одиночна помилка в кодовій комбінації призводить до неправильного декодуванню тільки цієї комбінації. Одним із серйозних недоліків префіксних кодів є поява треку помилок, тобто одиночна помилка в кодовій комбінації, при певних обставинах, здатна привести до неправильного декодуванню не тільки цієї, але і кількох наступних кодових комбінацій.

Приклад на однозначність декодування і трек помилок. Нехай передавалася наступна послідовність

10 01 110 001 a b c d

При виникненні помилки в першому двійковому елементі, отримаємо

0001 110 001 g c d

Таким чином, помилка в одному розряді комбінації першого символу призвела до неправильного декодуванню двох символів (трек помилок).

5. Переваги та недоліки ефективних кодів.

Коротко сформулюємо перераховані переваги оптимальних ефективних кодів.

1.При ефективному кодуванні, що враховує ймовірності появи букв алфавіту джерела повідомлень, вдається побудувати коди з максимальною питомою ентропією на символ.

2.Забезпечується перетворення повідомлення в сигнал з меншою, ніж у повідомлення надмірністю (в ідеалі – без надмірності).

3.На передачу повідомлення витрачається мінімальна кількість символів.

4.Вирішується задача узгодження джерела повідомлень з каналом зв’язку, в результаті чого швидкість передачі інформації може бути наближена до пропускної здатності каналу.

5.Не вимагається введення спеціальних розділових символів (маркерів), як, наприклад, в коді Морзе, для відділення однієї кодової комбінації від іншої, так як жодна комбінація ефективного коду не збігається з початком іншої, більш довгою. Така властивість коду називається «неприводимістю», і коди називаються префіксними або кодами без коми. До недоліків ефективних кодів можна віднести наступне.

1.Ефективні коди є нерівномірними, тобто кодові комбінації мають різну кількість символів. Якщо лінія зв’язку працює з постійною швидкістю передачі, то на виході кодера необхідний буферний запам’ятовуючий пристрій («пружна затримка») для запису в нього «пульсуючих» по тривалості кодових груп і подальшого зчитування каналом символів з постійною швидкістю. Аналогічна «пружна затримка» повинна бути і на стороні прийому.

2.Найбільший ефект оптимальні коди дають при кодуванні вихідного повідомлення довгими блоками, оскільки при цьому досягається однакова імовірність і статистична незалежність блоків. Однак, блокове кодування викликає необхідність накопичувати слова алфавіту джерела, перш ніж поставити їм у відповідність певну кодову групу ефективного коду. Це призводить до більших затримок при передачі та прийомі повідомлень, що ускладнює (або відкидає) застосування ефективних кодів у системах, що працюють в реальному масштабі часу. Ефективне кодування (кодом Хафмена) застосовується при записі інформації на магнітні носії (системи архівації) і в системах факсимільного зв’язку.

3.Істотним недоліком ефективних кодів є те, що вони не завадостійкі. Будь-яка одинична помилка при прийомі переводить передану комбінацію в іншу, не рівну їй за тривалістю, що тягне за собою неправильне декодування цілої низки наступних кодових груп. Такий специфічний вплив завад називається «треком помилок» або пакетом помилок. У чистому вигляді ефективне кодування можна застосовувати тільки для каналів без завад.

Таким чином, безпосередня передача повідомлень при застосуванні ефективних кодів по каналу зв’язку з шумами призводить до неприпустимо великих спотворень (втрати інформації). Однак, ефективне кодування, усуває статистичну надмірність в переданому повідомленні, найкращим чином готує безперервну кодову послідовність, отриману після первинного кодування повідомлень джерела, до подальшого завадостійкому кодуванню з допомогою коригувальних кодів

вкодері каналу. Цілеспрямоване введення надмірності при завадостійкому кодуванні шляхом додавання додаткових перевірочних символів в кодові інформативні групи дозволяє при декодуванні виявляти і виправляти помилки, викликані завадами.

Контрольні питання:

1. Призначення та мета ефективного кодування.

2.Поясніть, за рахунок чого забезпечується досягнення стиснення при ефективному кодуванні.

3.Чим визначається мінімальна середня довжина кодової комбінації при застосуванні ефективного кодування.

4.Які проблеми виникають при розподілі нерівномірних кодових комбінацій.

5.Що таке префіксні коди.

6.У чому полягає алгоритм Хафмана.

7.Що таке трек помилок, і які причини його виникнення.

Розробив:

 

доцент кафедри КІ

 

к.т.н., доцент

Слюсарь І.І.

Соседние файлы в папке SPD_Lektsii