- •Тема 1. Інформація та інформаційні процеси.
- •1. Повідомлення та інформація.
- •2. Моделі інформаційних систем
- •3. Математичні моделі каналу зв’язку
- •4. Предмет теорії інформації та кодування
- •Тема 2. Вимірювання інформації.
- •1. Основні підходи до вимірювання інформації, їх особливості.
- •2. Технічний (об’ємний) спосіб оцінювання інформації та його застосування в комп’ютерних системах.
- •3. Інформаційний обсяг повідомлення
- •4. Поняття про алгоритмічний підхід до вимірювання інформації.
- •Тема 3. Поняття ентропії інформації. Умовна та безумовна ентропії.
- •1. Кількісна міра інформації.
- •2. Ентропія та її властивості.
- •3. Безумовна ентропія
- •4. Умовна ентропія
- •5. Ентропія об’єднання двох джерел.
- •Тема 4. Методи визначення ентропії.
- •1. Ентропія по Хартлі.
- •2. Ентропія по Шеннону.
- •3. Ентропія по Колмогорову та ентропія 3
- •4. Ентропія по Шульцу та Мідлтону
- •5. Ентропія по Николайчуку. Інші методи визначення ентропії.
- •Тема 5. Характеристика дискретних джерел інформації. Теорема Шеннона.
- •1. Продуктивність дискретного джерела та швидкість передачі інформації
- •2. Інформаційні втрати при передачі інформації по дискретному каналу зв'язку
- •3. Пропускна здатність дискретного каналу. Основна теорема про кодування дискретного джерела.
- •Тема 6. Характеристики неперервних джерел інформації.
- •1. Інформаційні втрати при кодуванні неперервних джерел.
- •2. Продуктивність неперервного джерела та швидкість передачі інформації
- •3. Пропускна здатність неперервного каналу
- •Тема 7. Поняття про коди та кодування.
- •1. Поняття про коди та кодування. Потужність та довжина коду.
- •2. Рівномірні коди. Основна теорема про рівномірні коди.
- •3. Нерівномірні коди
- •4. Основні напрями кодування
- •Тема 8. Основи економного кодування.
- •1. Передавання інформації каналами зв’язку
- •2. Теоретичні основи побудови економних кодів. Перша теорема Шенона
- •3. Алгоритм Шенона—Фано для побудови економного коду
- •Алгоритм кодування за методом Шенона—Фано
- •4. Алгоритм Хаффмена для побудови оптимального коду
- •Алгоритм Хаффмена
- •5. Оптимальні нерівномірні коди і проблеми стискування інформації
- •Тема 9. Нерівномірні двійкові первинні коди.
- •1. Класифікація первинних кодів
- •2. Код Морзе
- •3. Число-імпульсні коди
- •Тема 10. Рівномірні двійкові первинні коди.
- •1. Числові двійкові коди
- •2. Двійково-десяткові коди
- •3. Двійково-десяткові коди з самодоповненням
- •4. Двійково-шістнадцятковий код
- •5. Рефлексні коди
- •Тема 11. Двійкові коди з виявленням помилок.
- •1. Коди з перевіркою на парність та непарність
- •2. Код із простим повторенням
- •3. Інверсний код
- •4. Кореляційний код
- •5. Код зі сталою вагою
- •6. Код із кількістю одиниць в комбінації, кратною трьом
- •Тема 12. Недвійкові коди з виявленням помилок.
- •1. Код з перевіркою за модулем q
- •2. Код із повторенням
- •3. Незвідні змінно-позиційні коди
- •4. Штрихові коди
- •Тема 16. Кодування в системі залишкових класів.
- •1. Побудова кодів у системі залишкових класів, породжених базисом Крестенсона
- •2. Переваги та недоліки кодування у системі залишкових класів
- •3. Ефективність математичних операцій у системі залишкових класів
- •4. Надлишковість та здатність виявляти та виправляти помилки
- •Тема 17. Коди Галуа.
- •1. Методика формування кодів Галуа, їх переваги
- •2. Надлишковість та здатність виявляти та виправляти помилки
1. Поняття про коди та кодування. Потужність та довжина коду.
Інформаційні процеси — зберігання, накопичення, опрацювання, передавання та захист інформації — неможливо реалізувати без процесів кодування та декодування. Кодування інформації — це процес формування певного подання інформації. Кодування — це процес перетворення інформації з однієї форми в іншу за умови збереження її змісту. В процесі кодування інформацію подають у формі, яка є більш зручною для її збереження, передачі, опрацювання та захисту. Обернене перетворення називається декодуванням.
Ми розглянемо кодування в знакових системах, бо саме знакові системи є предметом розгляду в інформатиці. Кодування в знакових системах — це взаємнооднозначне відображення одного набору знаків в інший набір знаків (чи слів). Правило, яке описує таке відображення, називається кодом (від латинського cod – закон). Кодом також називають і множину образів при кодуванні однієї інформації в іншу зі збереженням її змісту.
Код є універсальним способом відображенням інформації під час її збереження, передавання та опрацювання у вигляді системи відносностей між елементами повідомлень і сигналами, якими ці елементи можна зафіксувати.
Кодування широко застосовують для відображення дискретної інформації в каналах зв’язку, системах автоматики, комп’ютерних та інших системах.
Людство широко використовує кодування в різних галузях своєї діяльності. За час свого існування людство створило значну кількість мов кодування: розмовні мови, мова міміки і рухів, мова малюнків і креслень, мова науки (математична, хімічна, інформативна тощо), мова мистецтв (живопису, скульптури, музики), спеціальні мови (азбука Морзе, Бодо, азбука Брайля для незрячих, морський семафор, есперанто).
Предметом нашого розгляду є кодування в знакових системах.[8, С.25-27].
Нехай задано множину повідомлень М={m1, m2,..., mk} і деякий (кодуючий) алфавіт А={a1, а2,..., аm}. Скінченну послідовність знаків аj назвемо словами в цьому алфавіті. Виберемо за певними правилами k слів, утворених над алфавітом A, й поставимо їх у взаємнооднозначну відповідність до елементів повідомлень mi:
mi↔ui, і=1,2,...,k
Множину всіх таких слів ui, (i=1,2,...,k) назвемо кодом множини елементів повідомлень М.
Кожне слово ui, яке входять до коду {u1, u2, …, uk}, називають кодовим словом. Кількість різних символів (букв) m в алфавіті А називається потужністю (основою) коду.
Кількість букв (символів), яка входить до кодового слова ui, називають довжиною.
2. Рівномірні коди. Основна теорема про рівномірні коди.
Для запису символів аі кодуючого алфавіту А використовують різні позначення у вигляді цифр, букв та спеціальних знаків.
Кодове слово довжини l, у якому використовуються тільки цифри системи числення з основою Q, можна розглядати як l – розрядне число
(1.1)
Правила
кодування (взаємнооднозначного
відображення
)
можуть бути задані у вигляді таблиць,
певних співвідношень (формул) чи словесних
правил (алгоритмів).
Спосіб кодування залежить від мети, заради якої він здійснюється: зручність опрацювання чи передавання інформації певними каналами зв’язку, її зберігання (шифрування), скорочення записів тощо. Простим прикладом є кодування за допомогою вуличного світлофора:
Повідомлення |
Кодові слова (кольори світлофора) |
Переходь вулицю |
Зелений |
Увага! |
Жовтий |
Стій! |
Червоний |
Якщо кодові слова мають одинакову довжину l, то такий код називають рівномірним. Наприклад, назви сторін світу можна закодувати таким рівномірним кодом:
Схід – 00
Захід – 01
Південь – 10
Північ – 11
Тут усі кодові слова мають довжину l=2.
Практичний рівномірний код (для телеграфії) вперше створив французький винахідник Жан Бодо (1845-1903). Його рівномірний 5-значний двійковий код (код Бодо) був уперше практично застосований у 1877 році на телеграфній лінії Париж—Бордо.
Кожне
кодове слово в рівномірному коді має
одну й ту ж довжину l.
Тому закодовані в цьому коді повідомлення
легко декодувати (розшифрувати). Для
цього досить розбити даний код на групи
по l
символів і кожне, виділене таким чином
кодове слово, замінити відповідним
елементом повідомлення, виходячи зі
співвідношення
.
Дуже важливою є теорема про рівномірні коди.
Теорема 1.1. Над кодуючим алфавітом потужності n можна утворити рівно nl кодових слів довжини l.
Доведемо цю теорему методом повної математичної індукції.
Нехай
–
елементи (букви) кодуючого алфавіту А
потужності n
Із
цього алфавіту можна утворити рівно n
слів довжини:
Отже, для k=1 дане твердження є правильним: n=n1.
Припустимо, що дане твердження є правильним для l=k-1, і покажемо, що тоді воно справджується і для l=k.
За
припущенням, число слів довжини k-1
дорівнює
.
Щоб утворити всі можливі слова довжини
k,
слід до кожного слова довжини k-1долучити
в його кінці послідовно кожну із букв
а1,
а2,....аn
алфавіту А.
Таким чином, з кожного слова довжини k
утвориться
n
різних слів довжини k
і ми одержимо всі можливі слова довжини
k.
Оскільки слів довжини k-1є
nk-1,
то всіх слів довжини k
буде nk-1.
n=nk.
Припустивши
істинність твердження для l=k-1,
ми довели, що воно є правильним для
l=k.
Отже, відповідно до пунктів 1 і 2, наше твердження, за аксіомою повної математичної індукції, є справедливим для будь-якого натурального числа l.
Теорема 1 дає, зокрема, можливість розв’язати таку важливу проблему в теорії кодування: якої найменшої (мінімальної) довжини l повинні бути кодові слова, побудовані над алфавітом А (а1, а2,...,аn) потужності n, щоб ними можна було закодувати всі k елементів повідомлень із множини M (m1, m2,..., mk).
Згідно із теоремою 1.1 усіх різних кодових слів довжини l можна утворити nl. Їх повинно бути стільки, щоб ними можна було закодувати всі k повідомлень із множини M. Отже, звідси випливає нерівність k≤nl , де невідомим є l.
Приклад. Якої мінімальної довжини треба взяти кодуючі слова рівномірного коду з алфавіту A={0,1}, щоб закодувати ними всі символи римської нумерії Арн={I, V, X, L, С, D, М}. В нашому випадку К=7, n=2. З нерівності 7≤2l, одержуємо l=3.
Можемо тепер побудувати такий код:
I↔001
V↔010
X↔011
L↔100
C↔101
D↔110
M↔111
Наприклад, римське число MCMLVI (1956) буде закодоване так:
111101111100010001
Якщо дано код повідомлення 111111011001001, то його легко розшифрувати (декодувати). Для цього даний код слід розбити на кодові слова по три букви в кожному, і кожне кодове слово замінити елементом повідомлення, відповідно до кодової таблиці. Отримаємо:
MMXIIрн (2012(10)).
