Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mod_2.doc
Скачиваний:
78
Добавлен:
12.02.2016
Размер:
757.76 Кб
Скачать

Роздільні і не роздільні коди

В роздільних кодах інформаційні розряди та перевірочні позиції завжди розміщені на одних і тих же місцях. Роздільні коди в свою чергу діляться на: систематичні і несистематичні.

В не систематичних роздільних кодах повідомлення розбивається на під блоки. Контрольні символи визначаються в результаті сумування під блоків і являють собою запис їх суми. Прикладом таких кодів є коди Бергера, такі коди є ефективними для каналів із асиметричними помилками. Систематичними називаються такі коди у яких інформаційні та контрольні символи займають строго визначені місця в кодових комбінаціях. В канал зв»язку поступає 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]]

=П

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