Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки МЗКІТ.doc
Скачиваний:
33
Добавлен:
12.02.2016
Размер:
3.38 Mб
Скачать

Хід роботи

  1. Ознайомитися з теоретичним матеріалом пов’язаним з тематикою лабораторної роботи.

  2. Системи X і Y працюють в алфавіті, що нараховує N+2 рівноімовірні символи.

Умовна ймовірність р(yi /xi) = 0,k для всіх j<>i, одна з ймовірностей р(yj/xi) = 1- 0,k.

N – передостання цифра студентського квитка

k – остання цифра студентського квитка

  1. Нарисувати схему ймовірнісних переходів.

  2. Знайти:

  • ентропію системи X;

  • ентропію системи Y;

  • часткову умовну ентропію H(Y/x2);

  • повну умовну ентропію;

  • сумісну ентропію;

  • взаємну ентропію.

  • Дати графічне представлення втрат в каналі зв’язку для каналу зв’язку, заданого викладачем.

  • Знайти і порівняти ентропії джерел з різними законами розподілу.

  • Знайти ентропії українського тексту і тексту, записаного мовою, заданою викладачем. Порівняти іх. Зробити висновок щодо надлишковості мов, що порівнювались.

  • Оформити звіт по лабораторній роботі.

    Лабораторна робота №2

    Тема роботи: ЕФЕКТИВНЕ КОДУВАННЯ.

    Мета роботи: ознайомитися з алгоритмами ефективного кодування: Шеннона-Фано і Хаффмана.

    Теоретичні відомості

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

    Для кодування символів вихідного алфавіту використовують двійкові коди змінної довжини: чим більша частота появи символа, тим коротший його код. Ефективність коду визначається середньою кількістю двійкових розрядів для кодування одного символу – Lср за формулою

    (1)

    де k – число символів вихідного алфавіту;

    ni – число двійкових розрядів для кодування символу i;

    p(xi)частота символу i; причому

    При ефективному кодуванні існує межа стиску, нижче якого не «спускається» жоден метод ефективного кодування - інакше буде загублена інформація. Цей параметр визначається мінімальною кількістю двійкових розрядів у кодовому слові можливого ефективного коду – Lmin:

    (2)

    де k – кількість символів кодованого алфавіту,

    p(xi)– частота появи i-го символу алфавіту.

    Існують два класичних методи ефективного кодування: метод Шеннона-Фано і метод Хаффмана. Вхідними даними для обох методів є задана множина символів алфавіту для кодування з частотами їх появи; результат – кодові комбінації ефективного коду.

    Метод Шеннона-Фано

    1. Множина вхідних символів впорядковується по спаданню ймовірностей їх появи в алфавіті.

    2. Множина символів ділиться на дві частини (першу і другу) таким чином, щоб сумарні частоти обох частин були приблизно одинакові. У випадку якщо точної рівності досягнути не вдається, різниця між ними повинна бути мінімальна.

    3. Кодовим комбінаціям першої частини записують 1, другої частини записується 0.

    4. Аналізують першу частину, якщо вона містить один символ, то робота з нею завершується – вважається, що код для цієї частини вже побудований і переходимо до кроку 5.

    5. Аналізують другу частину, якщо вона містить один символ, то робота з нею завершується - вважається що код для цієї частини вже побудований і переходимо до кроку 2 і процедура повторюється знову.

    6. Аналізують множину символів котра залишилася, якщо вона пуста - то робота завершена і код побудований, якщо ні переходять до кроку 2.

    Приклад 1.

    Символи

    Частоти

    a

    0,5

    1

    b

    0,25

    0

    1

    1

    c

    0,125

    0

    0

    0

    d

    0,125

    0

    0

    Метод Хаффмана

    Цей метод має дві переваги в порівнянні з методом Шеннона-Фано: він усуває неоднозначність кодування, що виникає через рівність сум частот при поділі списку на дві частини (лінія розподілу проводиться неоднозначно), і має, у загальному випадку, більшу ефективність коду.

    Алгоритм методу наступний:

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

    2. Знаходимо два символи з найменшими ймовірностями появи і об’єднуємо їх «склюємо» їх у складне повідомлення з сумарною ймовірністю появи.

    3. Записуємо новий ансамбль повідомлень, в якому кількість повідомлень порівняно з попереднім зменшилась за рахунок введення складного повідомлення.

    4. Якщо ансамбль містить більше ніж 2 повідомлення переходимо на крок 2, інакше прочинаємо процес розклеювання.

    5. Одному з повідомлень в старшому розряді присвоюємо «0» іншому – «1».

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

    Приклад 2.

    Символи

    Частоти 

    Етапи об’єднання

    перший

    другий

    a

    0,5

    0,5

    0

    0,5

    0

    b

    0,25

    0,25

    1 0

    0,5

    1

    c

    0,125

    0,25

    1 1

    d

    0,125

    Графічний метод Хаффмана

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

    2. Знаходимо два символи з найменшими ймовірностями появи. За допомогою ребер їх з’єднуємо у вузол вищого рангу. Присвоюємо цьому вузлу сумарну ймовірність появи повідомлень, що об’єднуються.

    3. Повторюємо крок 2 поки не дійдемо вершини дерева, тобто сумарна ймовірність вузла не рівна 1.

    4. Використовуючи побудоване дерево знаходимо кодові комбінації, що відповідають кожному символу.

    Приклад 3.

    Символи

    Частоти 

    a

    0,5

    b

    0,25

    c

    0,125

    d

    0,125

    Кодове дерево