Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
fkit_kki_dtik_ksm_LEK.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.18 Mб
Скачать

1. Поняття про коди та кодування. Потужність та довжина коду.

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

Ми розглянемо кодування в знакових системах, бо саме знакові системи є предметом розгляду в інформатиці. Кодування в знакових системах — це взаємнооднозначне відображення одного набору знаків в інший набір знаків (чи слів). Правило, яке описує таке відображення, називається кодом (від латинського cod – закон). Кодом також називають і множину образів при кодуванні однієї інформації в іншу зі збереженням її змісту.

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

Кодування широко застосовують для відображення дискретної інформації в каналах зв’язку, системах автоматики, комп’ютерних та інших системах.

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

Предметом нашого розгляду є кодування в знакових системах.[8, С.25-27].

Нехай задано множину повідомлень М={m1, m2,..., mk} і деякий (кодуючий) алфавіт А={a1, а2,..., аm}. Скінченну послідовність знаків аj назвемо словами в цьому алфавіті. Виберемо за певними правилами k слів, утворених над алфавітом A, й поставимо їх у взаємнооднозначну відповідність до елементів повідомлень mi:

miui, і=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.

Доведемо цю теорему методом повної математичної індукції.

  1. Нехай – елементи (букви) кодуючого алфавіту А потужності n

Із цього алфавіту можна утворити рівно n слів довжини:

Отже, для k=1 дане твердження є правильним: n=n1.

  1. Припустимо, що дане твердження є правильним для 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)).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]