- •Й.Й. Білинський, в.В. Мотигін обробка інформації засобами комп’ютерної математики
- •Обробка інформації засобами комп’ютерної математики
- •1 Робота з пакетами комп’ютерної математики
- •1.1 Математичний пакет MathCad 2000
- •1.1.1 Інтерфейс користувача системи MathCad 2000
- •1.1.2 Палітри математичних знаків і документи MathCad
- •1.1.3 Виклик вбудованих функцій
- •1.1.4 Елементи графічної візуалізації
- •1.2 Математична система Maple
- •1.2.2 Побудова двовимірного графіка заданої користувачем функції
- •1.2.3 Побудова графіка поверхні
- •1.2.4 Керування мишею
- •1.2.5 Символьні обчислення
- •1.2.6 Основні елементи інтерфейсу
- •1.3 Матрична лабораторія matlab
- •1.3.1 Початок роботи із системою matlab
- •1.3.2 Файлова система matlab
- •1.3.3 Збереження робочої області
- •1.3.4 Ведення щоденника
- •1.3.5 Завантаження робочої області
- •1.3.6 Вхідна мова системи matlab
- •1.3.7 Оператори і функції matlab
- •1.3.8 Повідомлення про помилки і виправлення останніх
- •1.3.9 Формати чисел
- •1.3.10 Основи роботи з векторами і матрицями
- •1.3.11 Огляд матричних функцій
- •2 Лабораторний практикум
- •2.1 Спектральні характеристики сигналу
- •2.1.1 Періодичні сигнали
- •2.1.2 Практична ширина спектра сигналу
- •2.1.3 Імпульси прямокутної форми
- •2.1.6 Пилкоподібне коливання
- •2.1.7 Неперіодичні сигнали
- •2.1.8 Спектр експоненціального імпульсу
- •2.1.9 Спектр сигналу ввімкнення
- •2.1.10 Спектр дельта-функції
- •2.1.11 Лабораторна робота №1
- •Хід роботи
- •Контрольні запитання
- •2.2 Квантування сигналів
- •2.2.1 Перетворення неперервних сигналів у дискретні
- •2.2.2 Квантування за рівнем
- •2.2.3 Квантування в часі
- •2.2.4 Частотний критерій Котельникова
- •2.2.5 Критерій допустимого відхилення
- •2.2.6 Лабораторна робота №2
- •Хід роботи
- •Контрольні запитання
- •2.3 Дослідження випадкових процесів
- •2.3.1 Лінійні операції над випадковими функціями
- •2.3.2 Стаціонарні випадкові функції
- •2.3.3 Лабораторна робота №3
- •Хід роботи
- •2. 4 Методи обробки зображень
- •2.4.1 Що таке колір?
- •2.4.2 Колірна схема rgb
- •2.4.3 Обробка кольорових (rgb) зображень
- •2.4.4 Лабораторна робота №4
- •Хід роботи
- •2.5 Завадостійке кодування
- •2.5.1 Основні принципи завадостійкого кодування
- •2.5.2 Лабораторна робота №5
- •Хід роботи
- •2.6 Методи стиснення даних
- •2.6.1 Код Шеннона-Фано
- •2.6.2 Лабораторна робота №6
- •Хід роботи
- •Контрольні запитання
- •5. Створюємо вектор символів і вектор кількості їх повторень.
- •2.6.4 Лабораторна робота №7
- •Хід роботи
- •2.6.5 Арифметичне кодування
- •2.6.6 Алгоритм арифметичного кодування в загальному вигляді
- •2.6.7 Лабораторна робота №8
- •Хід роботи
- •Контрольні запитання
- •2.7 Динамічні методи стиснення даних
- •2.7.1 Динамічне кодування методом Хаффмена
- •2.7.2 Лабораторна робота №9
- •Хід роботи
- •2.7.3 Динамічне кодування методом fgk
- •2.7.4 Лабораторна робота №10
- •Хід роботи
- •2.7.5 Динамічне кодування методом Віттера
- •2.7.6 Лабораторна робота №11
- •Хід роботи
- •Контрольні запитання
- •Література
- •Навчальне видання
- •Обробка інформації засобами комп’ютерної математики Лабораторний практикум
- •21021, М. Вінниця, Хмельницьке шосе, 95, внту
- •21021, М. Вінниця, Хмельницьке шосе, 95, внту
2.6.6 Алгоритм арифметичного кодування в загальному вигляді
ПОЧАТОК
Нижня_границі = 0,0;
Верхня_границя = 1,0;
ПОКИ існує вхідний символ ВИКОНУВАТИ
Увести черговий символ С;
Інтервал = Верхня_границя – Нижня_границя;
Верхня_границя
= Нижня_границя + Інтервал
Нижня_границя(С);
Нижня_границя = Нижня_границя + Інтервал Верхня_границя(С);
КІНЕЦЬ ПОКИ
ВИВЕСТИ Верхня_Границя, Нижня_границя;
КІНЕЦЬ
Границі
інтервалів для всіх етапів кодування
приведені у таблиці 2.12.
Таким чином, числовий інтервал із
границями [0,21554, 0,2156) відображає рядок
повідомлення (CADA!). Для кодування цього
рядка може бути виконане будь-яке число
з отриманого діапазону. Нехай таким
числом є нижня границя інтервалу, тобто
.
Таблиця 2.12 - Границі інтервалів
Символи |
Нижня границя інтервалу |
Верхня границя інтервалу |
Вихідний стан |
0,0 |
1,0 |
C |
0,2 |
0,5 |
A |
0,2 |
0,23 |
D |
0,215 |
0,221 |
A |
0,215 |
0,2156 |
! |
0,21554 |
0,2156 |
2.6.7 Лабораторна робота №8
Мета роботи. Засвоїти методику арифметичного кодування за допомогою математичного пакета MathCAD.
Хід роботи
1. На основі виданого варіанта (таблиця 2.13) виконати стиснення вхідного повідомлення, використовуючи алгоритм арифметичного кодування.
2. Обчислити імовірність кожного символа повідомлення.
3. Виконати числовий розподіл осі між символами.
4. Визначити нижню та верхню границю кожного символа.
5. Визначити кінцеву нижню та верхню границю повідомлення.
6. Зробити висновок по роботі.
Таблиця 2.13 – Варіанти завдань
Варіант |
Вхідний алфавіт |
Імовірність появи |
Вхідне повідомлення |
1 |
“abcdefgh” |
0,1; 0,2; 0,1; 0,3; 0,2; 0,2; 0,2; 0,3 |
“cadaf” |
2 |
“fefehfa” |
||
3 |
“bebehh” |
||
4 |
“fefecf” |
||
5 |
“hehecc” |
||
6 |
“klnmopqae” |
0,2; 0,3; 0,1; 0,3; 0,1; 0,1; 0,2; 0,2 |
“onopan” |
7 |
“kalanaq” |
||
8 |
“pelenop” |
||
9 |
“aoaoao” |
||
10 |
“nopaepa” |
Контрольні запитання
1. Який принцип побудови арифметичних кодів?
2. Укажіть переваги та недоліки арифметичних кодів?
3. В чому полягає основний алгоритм побудови арифметичного коду?
4. Як визначається верхня та нижня границя ітерації при кодуванні?
5. Як визначається верхня та нижня границя ітерації при розкоду-
ванні?
6. Як відбувається розподіл відрізків числової осі між символами при арифметичному кодуванні?
7. Дайте порівняльну характеристику методик кодування Хаффмена, Шеннона-Фано, арифметичних кодів.
Приклад . Стиснення повідомлення методом арифметичного кодування.
1. Записуємо вказаний алфавіт згідно з прикладом табл. 2.12 як символьну величину, знаходимо кількість символів, створюємо масив символів, а також їх імовірності.
2. Виконаємо розподіл числової осі між символами
3. Задаємо вхідне повідомлення (як відповідні індекси вхідного алфавіту). В даному випадку: “CADA!”
4. Знаходимо нижню й верхню границі кожного символа вхідного алфавіту на осі
5. Згідно з вказаним алгоритмом знаходимо кінцеві нижню й верхню границі кожного символа повідомлення
