
- •Оптимальне кодування
- •Основні властивості оптимальних кодів
- •Методика Шенона і Фано
- •Методика Хаффмана
- •Оптимальні нерівномірні коди (онк)
- •Завадостійке кодування
- •Роздільні і не роздільні коди
- •Лінійні групові коди
- •Спосіб формування кодів.
- •Лінійні блокові коди
- •Загальні особливості стиснення інформації.
- •Розглянемо деякі способи стиснення
- •Стиск інформації
- •Метод стиску Лемпеля-Зіва (Lempela-Ziva)
- •Алгоритм lzss
- •Алгоритм lz78
- •Алгоритм lzw
- •Стиск інформації із втратами
- •Загальні теоретичні основи цифрових комунікацій
- •Особливості та алгоритми кодування голосу.
- •Огляд каналів та систем передачі інформації
- •Мережі типу Wi-Fi
- •Мережі типуBluetooth
- •Мережі типу Wi-max
- •Cтандарт іеее 80216
- •Загальні особливості оптичних каналів зв’яку
- •Вірогідність передачі колових повідомлень
- •Деякі способи стиснення при передачі інформації
- •Зонне стиснення інформації
- •Стиснення інформації використанням адаптивного кодування
- •Стиснення інформації збільшення основи коду
- •Ефективність кодуванні при збільшення основи коду
- •Вплив зворотнього зв'язку на ефективність передачі інформації
- •Код Ріда-Соломона
Роздільні і не роздільні коди
В роздільних кодах інформаційні розряди та перевірочні позиції завжди розміщені на одних і тих же місцях. Роздільні коди в свою чергу діляться на: систематичні і несистематичні.
В не систематичних роздільних кодах повідомлення розбивається на під блоки. Контрольні символи визначаються в результаті сумування під блоків і являють собою запис їх суми. Прикладом таких кодів є коди Бергера, такі коди є ефективними для каналів із асиметричними помилками. Систематичними називаються такі коди у яких інформаційні та контрольні символи займають строго визначені місця в кодових комбінаціях. В канал зв»язку поступає n-елементна комбінація, у якій є nі-інформаційних символів, nk-контрольних символів. Очевидно n= ni +nk
-
P1
0,60
0
a1
P2
0,08
1 0 0
a2
P3
0,07
1 0 1 0
a3
P4
0,06
1 0 1 1
a4
P5
0,05
1 1 0 0
a5
P6
0,05
1 1 0 1
a6
P7
0,05
1 1 1 0
a7
P8
0,04
1 1 1 1
a8
Симетричні??? коди можуть бути лінійними, а лінійні в свою чергу: груповими, циклічними.
Приклад створення ОНК за методом Шеннона-Фано.
Символи ділимо на 2 групи, щоб суми їх імовірностей була приблизно одинакова (P1 – 0, P2- P8 – 1 ) .Так як верхня група включає тільки 1 символ, то ми цю групу залишаєм без змін і т.д.
Приклад
методики Гофмана
-
P1
0,50
P2
0,15
P3
0,12
P4
0,10
P5
0,04
P6
0,04
P7
0,03
P8
0,02
Логічне дерево починається будувати із двох символів з найменшою імовірністю. Об’єднюєм його в вузол наступного рівня і цьому вузлу присвоюємо умовну імовірність, як суму двох символів початкового рівня
(0,2 + 0,3 => 0,5). При цьому ребро графа від символу з більшою імовірністю отримуєм код логічної ”1”, а з меншою - ”0”.
-
A
1
B
0 1 1
C
0 0 1
D
0 0 0
E
0 1 0 1 1
F
0 1 0 1 0
G
0 1 0 0 1
H
0 1 0 0 0
B i A не об’єднюємо так як, тоді ми отримаєм вузол який значно відрізняється за імовірністю від інших. Наступним чином ми отримуємо вузол імовірністю 0,13, 0,28, 05 і отримаєм дерево з імовірністю 1.
Послідовними кроками є отримання вузла 0,28, отримаєм ОНК на основі логічного дерева. Код будується на основі гілок дерева починаючи з першого
Лінійні групові коди
В систематичних кодах, контрольні символи можуть утворюватися шляхом різних лінійних комбінацій, інформаційних символів. Тому такі коди називаються лінійними груповими кодами. Декодування таких систематичних кодів також базується на перевірці лінійних відношень між символами, які стоять на певних контрольних позиціях. У випадку двійкових кодів цей процес зводиться до перевірки на парність. Якщо кількість одиниць парна, то лінійна комбінація символів дає «0», у протилежному випадку – «1». Також для двійкових кодів в якості лінійної операції використовують додавання за модулем 2. Послідовність 0 і 1, які належать даному коду, називають кодовим вектором. Однією із основних властивостей лінійних кодів є: сума чи різниця кодових векторів лінійного входу дає вектор, який належить даному коду. Таким чином лінійні коди утворюють групу, по відношенню до операції додавання за модулем 2. В цьому сенсі вони є груповими кодами. Вага кодового вектора чи кодової комбінації рівна кількості не нульових компонент. Відстань між двома кодовими векторами (кодова відстань) рівна вазі вектора, отриманого в результаті додавання вихідних векторів за модулем 2. Однією із властивостей групових кодів є те, що мінімальна кодова відстань між кодовими векторами групового коду рівна мінімальній вазі не нульових кодових векторів.
Приклад:
1100011
1001111
0101100 додавання за модулем 2
d0=3 – кількість ненульових компонент W=d0=3
Групові
коди зручно подавати матрицями, розмір
яких визначається параметрами
інформаційних
та контрольних
характеристик, тоді матриця буде мати
рядків і
+
= n стовпців . У загальному випадку така
матриця – С=
A[21]a[12] |
A[1m] p[n] |
P[12] |
P[1n[k]] |
A[n[i]1] A[n[i]2] |
A[n[i] n[j]] |
P[n[i]1] P[n[i][2]] |
P[n[i]n[k]] |
Коди, які реалізовані на основі таких матриць типу C відомі як n[k] лінійні групові коди. А самі матриці С називають твірними (породжуючими) матрицями. Практично твірна матриця може бути представлена 2-ома матрицями I та П. Інформаційною та перевірочною (І П), тобто С=І*П. відповідно кількість стовпців в інформаційній матриці буде n[i], а кількості стовпців перевірочної матриці П – n[k]. Практичною реалізацією кодів встановлено, що в якості матриці І зручно брати одиничну матрицю в канонічній формі. При виборі матриці П виходять із наступних міркувань – чим більше одиниць у розрядах перевірочної матриці П, тим ближче відповідний утворений код до оптимального.
Оптимальним
корегуючим кодом для симетричного
каналу вважається
груповий код, при використанні якого
імовірність помилки не більша ніж при
використанні будь-якого іншого коду з
такою ж самою кількістю інформаційних
та перевірочних розрядів. В таких кодах,
критерій оптимальності не має нічого
спільного з критерієм оптимальності
оптимальних нерівномірних кодів. Це
різні за принципом побудови коди, і тому
некоректно порівнювати їх щодо
оптимальності. Вага кожного рядка
матриці П має відповідати умові
W[i] –вага матриці інформаційної.
W[П]-вага рядка матриці перевіряючої
Якщо інформаційна матриця є одиничною в канонічній формі тоді W[i]=1, що суттєво спрощує побудову кодів і їх технічну реалізацію. Виходячи із наведених умов, твірні матриці можна подати наступним чином.
100 |
0 |
P[12]..p[1n[k]] |
010 |
0 |
-- |
----- |
- |
-- |
000 |
1 |
P[n[i] 2]… p[n[i] n[k]] |
=П