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

12. У чому полягає алгоритм побудови оптимального коду Хаффмена?

Кодування за методом Хаффмена здійснюється наступним чином:  1. Всі підлягають кодуванню символи записуються в порядку убування їх апріорних ймовірностей. Якщо деякі символи мають однакові ймовірності, то їх розташовують поруч у довільному порядку.  2. Вибирають символи з мінімальними ймовірностями по 2 і одному приписують 0, а іншому 1.  3. Вибрані символи об'єднують в проміжні символи з сумарною ймовірністю.  4. Знову знаходять пару символів з найменшими ймовірностями і надходять аналогічно.  У таблиці 2 наведено приклад кодування за методом Хаффмена для джерела повідомлень із заданими ймовірностями символів алфавіту:  x 1 = 0,4; x 2 = x 5 = 0,2; x 3 = 0,1; x 4 = x 6 = 0,05.  Таблиця 2 

Символ 

i 

Граф коду Хаффмена 

Код 

1  x 2  x 5  x 3  x 4  x 6 

0,4  0,2  0,2  0,1  0,05  0,05 

1  (1,0)  1 0  (0,6)  1 0  (0,4)  1 0  (0,2)  1 0  (0,1)  0 

1  01  001  0001  00001  00000 

13 Які необхідна і достатня умови існування завадостійкого коду?

Для виправлення кодом помилок кратності не більше l необхідно і достатньо, щоб мінімальна відстань між його словами була 2l+1:dmin≥ 2l+1.

Для лінійного блокового (kn)-коду, мінімальна відстань між кодовими словами якого dmin=2l+1, де l - кратність помилок, що виявляються кодом, кількість перевірних розрядів r=n-k визначається нерівністю , що називається нижньою границею Хеммінга.

Крім того, якщо параметри n, r і l відповідають нерівності , що називається верхньою границею Варшамова-Гільберта, то існує (n-r, n)-код, що виправляє всі помилки кратності l і менше.

Нижня границя задає необхідні умови існування завадостійкого коду із заданими характеристиками.

Верхня границя задає достатні умови існування завадостійкого коду.

14 Які існують способи задання лінійних блокових кодів? Які основні частини мають кодові слова лінійного блокового коду?

Найпростіший лінійний блоковий код - це (n-1n) - код з контролем парності. Цей код, зокрема, широко використовується у модемах.

Іншим способом задання лінійних блокових кодів є система перевірних рівнянь, що визначає правила знаходження перевірних символів залежно від інформаційних. Приклад такого задання:

де r1, r2, r3, r4 - перевірні (контрольні) символи.

Проте найзручнішим і наочним способом задання лінійного блокового коду є його подання за допомогою твірної матриці.

. (3.2)

одинична перевірна

підматрицяIkxkпідматрицяPkx(n-k)

При цьому кожне кодове слово є лінійною комбінацією рядків матриці G

Лінійний блоковий код може бути заданийперевірною матрицеюH(n-k)n, що має таку властивість:

якщо деяка послідовність u є кодовим словом лінійного блокового коду, заданого перевірною матрицею H(n-k)n, тоuH= 0, тобто перевірна матриця ортогональна будь-якій кодовій послідовності даного коду.

Перевірна матриця має розмірність (n-k)n і таку структуру:

Группа 4 , (3.3)

деяка послідовність u є кодовим словом

де - транспонована перевірна підматриця твірної матриці Gkn;

- одинична підматриця.

Зручним і наочним способом задання лінійних блокових (kn)-кодівє подання символів кодових слівu0, u1.,un-1 у вигляді коефіцієнтів многочлена від х, тобто u(x) = uux + ux+ … + un-1 xn-1.

Подання кодових слів у такій формі дозволяє звести дії над комбінаціями символів до дій над поліномами.

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