Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работа 4(7).doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
152.58 Кб
Скачать

2 Обнаружение ошибок в кодах Хемминга

Ошибка на выходе из канала связи может быть обнаружена и исправлена так (для построенного кода – не больше одной в каждом элементарном коде). Номер позиции S (записанный в двоичной системе), в которой произошла ошибка, определяется так:

S = SkS2 S1 ,

где Si определяется по формулам (4) для элементарного кода, полученного на выходе канала связи. Если ошибки нет, то Si = 0 и общий результат S = 0.

Пример 1: Пусть на вход канала связи поступил элементарный код 0110011 (т.е закодировано **1*011 (поз. 3,5,6,7– информационные, а контрольные члены заменены * )). На выходе получено 0110001 (искажен 6–й член элементарного кода). Вычислим S.

S1 = 1 + 3+ 5 + 7 = 0 + 1 + 0 + 1 = 0 ( mod 2),

S2 = 2 + 3+ 6 + 7 = 1 + 1 + 0 + 1 = 1 (mod 2),

S3 = 4 + 5 + 6 + 7 = 0 + 0 + 0 + 1 = 1 (mod 2).

S = 1 1 0 = 6 (в десятичной системе).

Пример 2: Пусть на выходе получено 0111011 (искажен 4–й (контрольный) член элементарного кода).

S1 = 1 + 3+ 5 + 7 = 0 + 1 + 0 + 1 = 0 ( mod 2),

S2 = 2 + 3+ 6 + 7 = 1 + 1 + 1 + 1 = 0 (mod 2),

S3 = 4+ 5 + 6 + 7 = 1 + 0 + 1 + 1 = 1 (mod 2).

S = S3 S2 S1=1 0 0 = 4 (в десятичной системе).

Тогда восстановленное сообщение имеет вид: 0110011, а исходное сообщение – 1011 (удалены контрольные члены, выделенные цветом)

3 Декодирование

После получения закодированного сообщения происходит его разбивка на элементарные коды, вычисление для каждого кода S и в случае его неравенства 0 – корректировка соответствующего информационного члена (если S указывает на контрольный член, то корректировка не нужна). После удаления всех контрольных членов получаем исходное сообщение.

Примечание: Рассмотрено построение кодов Хемминга для бинарного кодирования и допустимом числе ошибок в элементарных кодах не более одной. Существует теория для построения таких кодов для равномерного кодирования любой арности и числе ошибок не более 2, 3,… и. д.

Алфавитное кодирование с минимальной избыточностью

Пусть задано алфавитное кодирование со схемой

a1 B1

a2 B2

a3 B3

.

ar Br

Слова Bi заданы в алфавите O ={b1,b2,b3….bq } , где q – число букв алфавита O li = l (Bi) ( i= 1,…,r ) ( длины элементарных кодов).

Теорема 1 Если алфавитное кодирование со схемой обладает свойством взаимной однозначности, то выполняется следующее неравенство (неравенство Макмиллана):

(5)

Теорема 2 Если li целые числа, удовлетворяющие неравенство (5) , то существует алфавитное кодирование со схемой , обладающей свойством префикса и для которого l (B1) = l1, …, l (Br) = lr .

Пояснения.

1. Неравенство Макмиллана является необходимым и достаточным условием существования алфавитного кодирования, у которого схема обладает свойством префикса и длины элементарных кодов равны соответственно l1, l2,…, lr .

2. Нельзя построить схему алфавитного кодирования, обладающую свойством взаимной однозначности, если неравенство (3.5) нарушено.

3 Теоремы 1 и 3 не дают полного алгоритма построения схемы алфавитного кодирования, обладающей свойством взаимной однозначности (если выполняется неравенство 5 – такая схема существует и можно продолжать ее построение, используя другие свойства и теоремы).

Рассмотрим кодирование информации в компьютере. Исторически сложилось, что компьютерный алфавит элементарных кодов O ={ b1,b2 …} состоит только из двух символов {0, 1} т.е. q = 2. При алфавитном кодировании (кодировании символов) используются элементарные коды одинаковой длины равной 8. В этом случае автоматически решается вопрос взаимной однозначности схемы кодирования (алгоритм декодирования следующий – закодированное сообщение разбивается с конца или начала на фрагменты по 8 символов, каждому из фрагментов соответствует символ входного алфавита). Максимальное значение r , для которого выполняется неравенство (5) определяется из уравнения r = q 8; 28=256 . Другими словами, при такой схеме кодирования можно закодировать алфавит I максимум из 256 символов. В данном случае код сообщения будет в 8 раз длиннее самого сообщения. В общем виде превышение длины кода сообщения над длиной самого сообщения определится из формулы (длина элементарных кодов одинакова):

l = ]logq r [ (наименьшее целое число не меньшее логарифма r по основанию q). Если схема кодирования такова, что элементарные коды имеют различную длину, то можно говорить о величине среднего превышения длины кода над длиной самого сообщения:

где li = l (Bi) (6)

Если имеется статистика о вероятности появления символов входного алфавита

I={ a1,a2 ,…, ar } в сообщениях, p1, p2, …pr соответственно, то формула (6) примет вид:

(7)

Эта характеристика может изменяться как при переходе от одной схемы кодирования к другой, так и при изменении вероятностных характеристик источника сообщений. Введем для фиксированного источника сообщений характеристику l.

l = (8)

В формуле (8) минимум берется по всем схемам кодирования , обеспечивающим свойство взаимной однозначности.

Оценим интервал значений lср для схем кодирования , обеспечивающих свойство взаимной однозначности.

1 ≤ lср ]logq r [ (9)

Верхнюю оценку дает кодирование с элементарными кодами одинаковой длины, нижнюю – простая замена одних символов другими (можно наблюдать при просмотре Web –страниц с неправильной кодировкой). Значит при поиске оптимальной (в смысле минимизации lср) схемы кодирования, схемы, у которых lср > ]logq r [ можно сразу исключить из рассмотрения. В соответствии с формулой (7) для предварительного определения длины элементарных кодов pi li]logq r [ . Поскольку при вычислении члены суммы с pi = 0 не играют роли, то, положив p = min (pi), имеем :

(10)

Определение. Коды, определяемые схемой с lср = l, называют кодами с минимальной избыточностью, или кодами Хаффмана.

Такие коды дают в среднем минимальное увеличение длин слов при кодировании сообщений заданного источника. Представляет практический интерес задача построения таких кодов (схем кодирования) для источника сообщений с фиксированными характеристиками (в силу вышеизложенного можно ограничиться рассмотрением только схем кодирования, обладающих свойством префикса).

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