- •Лабораторна робота №1
- •Теоретичні відомості
- •Властивості ентропії
- •Хід роботи
- •Лабораторна робота №2
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №3
- •Теоретичні відомості
- •Оцінка вивчення алгоритму Лемпела-Зіва-Велча
- •Хід роботи
- •Лабораторна робота №4
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №5
- •Теоретичні відомості
- •Сторінка поліном
- •Сторінка кодер
- •Сторінка декодер
- •Сторінка кодування
- •Сторінка декодування
- •Сторінка рейтинг
- •Опції можна змінювати після того як буде введено пароль
- •“Зафіксувати”
- •Хід роботи
- •Лабораторна робота №6
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №7
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №8
- •Хід роботи.
Хід роботи
1.Ознайомитися з теоретичним відомостями по темі лабораторної роботи.
2. Здійснити кодування і декодування власного прізвища записаного два рази без пропуску.
3.Завантажити програму LZWteach.EXE.
4.У Режимі демонстрація роботи алгоритму LZW ознайомитися з роботою алгоритму на прикладі введеної послідовності символів.
5.У Режимі оцінка вивчення алгоритму Лемпела-Зіва-Велча ввести послідовність задану викладачем і самостійно виконувати кодування і декодування заданої послідовності символів.
6.Виконати стиснення декількох файлів різного типу (текстових, програм , рисунків) у Режимі кодування/декодування файлів. Оцінити ефективність стиснення на файлах різного типу- побудувати гістограму в якій для файлів різного типу вказати початковий об’єм файлу і об’єм стисненого файлу. Для прикладу взяти 5 файлів різного типу.
7.Оформити звіт.
Лабораторна робота №4
Тема роботи: Код Хемінга
Мета роботи: вивчення кодування та декодування інформації за допомогою коду Хеммінга
Теоретичні відомості
Код Хемінга - це код, який виявляє і виправляє одиничні помилки і виявляє подвійні помилки. Код Хемінга відноситься до систематичних кодів.
Систематичні коди -- це коди, в яких інформаційні та надлишкові символи розташовані на певних наперед визначених місцях. Код Хемінга, як і будь-який (n,k)-код, містить k інформаційних і (n-k) надлишкових символів. Надлишкова частина коду будується таким чином, щоб при декодуванні можна було б встановити не лише факт наявності помилок в даній комбінації,але й вказати номер позиції, в якій помилка. Здійснити це можна шляхом багатократної перевірки прийнятої комбінації на парність. Кількість перевірок рівна кількості надлишкових символів. При кожній перевірці отримують двійковий контрольний символ. Якщо результат перевірки дає парне число, то контрольному символу присвоюється ”0”, якщо непарне - то “1”. В результаті всіх перевірок утворюється (n-k)-розрядне двійкове число, що вказує на номер спотвореного символа. Для виправлення помилки достатньо змінити значення символа, який стоїть у позиції ( перевід (n-k)двійкового розрядного числа у десяткове число) на протилежне.
Необхідна кількість надлишкових символів виводиться з формули:
Кодування
Кодується деяка інформація подана у вигляді у двійковій формі( послідовності нулів і одиниць) k1 k2 k3 k4 k5 k6 ... kn.
Нехай кодова довжина (довжина відрізків, на які ділиться потік) рівна 7 біт. Для того, щоб їх закодувати, потрібно на певні визначені місця внести надлишкові символи, які потім допоможуть декодувати цей потік.
В коді Хемінга надлишкові символи ставляться на тих позиціях в кодовій комбінації, що є степенями числа 2. Тобто, вихідною стрічкою буде потік
b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11
r1 r2 k1 r3 k2 k3 k4 r4 k5 k6 k7
де r[i] - надлишкові символи, k[i] - інформаційні символи.
Складають кодову комбінацію з інформаційних і надлишкових символів, позиції надлишкових символів є степенями 2 (1, 2, 4, 8, 16, 32, …), а також при цьому позицію кожного символа(і інформаційних) у кодовій комбінації представляють у двійковій системі числення.
00001 b1 r1=k1 xor k2 xor k4 xor k5
00010 b2 r2=k1 xor k3 xor k4
00011 b3 k1
00100 b4 r3=k2 xor k3 xor k4
00101 b5 k2
00110 b6 k3
00111 b7 k4
01000 b8 r4=k5 xor k6 xor k7
01001 b9 k5
01010 b10 k6
01011 b11 k7
Надлишкові символи знаходять таким чином:
r1-це сума по модулю 2 (xor) тих k[i], в яких в першому розряді порядкового номера є "1";
r2-це сума по модулю 2(xor) тих k[i], в яких в другому розряді порядкового номера є"1";
r3- це сума по модулю 2 (xor) тих k[i], в яких в третьому розряді порядкового номера є "1";
r4- це сума по модулю 2 (xor) тих k[i], в яких в четвертому розряді порядкового номера є "1";
Приклад. Закодувати текст 1111101111 в коді Хемінга, кількість надлишкових і інформаційних дорівнює 9). Для цього потрібно текст поділити і додати надлишкові символи на потрібні позиції.
k1k2k3k4k5.k1k2k3k4k5
1 1 1 1 1 .0 1 1 1 1
Перше слово :
r1 = 1 xor 1 xor 1 xor 1 = 0
r2 = 1 xor 1 xor 1 = 1
r3 = 1 xor 1 xor 1 =1
r4 = 1
Друге слово :
r1 = 0 xor 1 xor 1 xor 1 = 1
r2 = 0 xor 1 xor 1 = 0
r3 = 1 xor 1 xor 1 = 1
r4 = 1 xor 1 xor 1 = 1
Результат : r1r2k1k2k3k4r4k5.r1r2k1r3k2k3k4r4k5
0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1
Декодування
Для декодування записують систему рівнянь наступного вигляду:
r1 xor k1 xor k2 xor k4 xor k5 xor k7 xor… = С1 ,
r2 xor k1 xor k3 xor k4 xor k6 xor k7xor… = С2 ,
r3 xor k2 xor k3 xor k4 xor …=С3
r4 xor k5 xor k6 xor k7xor… = С4
Якщо кодове слово правильне, то система рівнянь виконується (тобто С1=С2=С3=С4=0). Якщо в кодовому слові є помилка, то права частина системи буде складатись не лише з нулів. Праву частину називають синдромом або розпізнавачем помилки. Щоб знайти помилку, необхідно прочитати синдром знизу вверх (С4С3С2С1) і перевести його в 10-ву систему числення- одержане число буде номером спотвореного символа.
Режими роботи програми
Програма написана для роботи в операційній системі Windows. Після її завантаження користувачу видається головна форма для вибору режиму роботи (навчання чи перегляд; кодування, декодування чи транспортування файлів). В режимах навчання кодування і декодування здійснюється лише над одним словом. В режимі перегляду вводиться рядок довільної довжини. Результати відображаються у нижньому вікні.
У режимі транспортування потрібно вибрати файл який ви хочете транспортувати , ввести рівень завад і кодову довжину і натиснути клавішу TRANSPORT. Програма перетворить цей файл в двійковий (з розширенням *.t2b). Потім закодує (утвориться файл з розширенням *.hem). Виходячи з заданого рівня завад, внесе в нього помилки (*.trp), після цього розкодує з виправленнями помилок(*.rhm) і перетворить назад в текстовий (*.t2b). Після цього треба натиснути клавішу VIEW RESULTS . З’явиться діалогове вікно , в якому треба вибрати відповідний файл (з розширенням *.t2b) і натиснути OPEN. З’явиться форма з двома вікнами. У верхньому показано початковий файл, в нижньому - переданий.