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

2.2. Оценка корректирующих свойств кода

Кодовое расстояние d по Хэммингу для любых двух кодовых комбинаций определяется как число несовпадающих разрядов в этих комбинациях [17]. Кодовое расстояние равно весу суммы по mod2 этих кодовых комбинаций, т.е.d(aiaj)=(aiaj).

Если обозначить k–й разряд i–й кодовой комбинации как , то кодовое расстояние в метрике Хэмминга определится по формуле

.

Минимальное кодовое расстояние, взятое по всем кодовым комбинациям, называется минимальным кодовым расстоянием кода.

С понятием веса кода связана корректирующая способность кода.

Чтобы построить код, обнаруживающий r ошибок, необходимо, чтобы выполнялось условие

d>r+1. (2.1)

Чтобы построить код, исправляющий s ошибок, необходимо, чтобы выполнялось условие

d>2s+1. (2.2)

Чтобы построить код, обнаруживающий r и исправляющий s ошибок, необходимо, чтобы выполнялось условие

d>r+s+1. (2.3)

2.3. Коды для обнаружения одиночных ошибок

Если код обнаруживает одиночные ошибки, то для этого кода d=1.

2.3.1. Код с контролем на четность (нечетность). Мощность кода с контролем на четность (нечетность) определяется по формуле: M=2n-1. Построение данного кода осуществляется путем добавления одного контрольного разряда (справа) к простому коду, поэтому длина кода n=m+1, где m - число информационных разрядов. Символы контрольного разряда выбираются так, чтобы число единиц в получаемой кодовой комбинации было четным (нечетным). Так как место в кодовой комбинации контрольного разряда известно, то данный код называется разделимым. Данный код обнаруживает ошибки нечетной кратности.

2.3.2. Код с постоянным весом. Код на одно сочетание, мощность которого определяется по формуле M= , обнаруживает ошибки нечетной кратности. Так как место в кодовой комбинации контрольного разряда неизвестно, то данный код называется неразделимым.

Пример. Пусть n=4, M= =4.

Множество кодовых комбинаций {0001, 0010, 0100, 1000}.

Этот код еще называется распределительным в телемеханических устройствах.

Также можно построить и коды по законам сочетаний , и т.д.

Пример. Пусть n=5, M= =10.

Множество кодовых комбинаций {00011, 00101, 00110, 01001, 01010, 01100, 10001, 10010, 10100, 11000}.

2.3.3. Корреляционный код. Корреляционный код строится по правилу замен 1 на 01 и 0 на 10. Например, комбинация простого кода 001 в корреляционном коде примет вид 101001. В данном коде не может быть больше трех рядом стоящих одинаковых символов. Код обнаруживает все одиночные ошибки, ошибки двойной кратности, не связанные с трансформацией элементов, т.е. 111 и 000.

2.3.4. Код с инверсным дополнением. Код с инверсным дополнением строится по правилу дополнения к исходной комбинации простого кода инверсной последовательности, например, 1001 10010110. Код обнаруживает одиночные ошибки, а также ошибки двойной кратности, не связанные с равнопозиционностью, т.е. 10010110.

3. Групповые коды

3.1. Определение групповых кодов

Групповые коды принято обозначать в виде двойки (n,m), где n - длина кода, а m - число информационных символов [11]. Тогда число контрольных символов k=n-m.

Комбинацию группового кода запишем в виде последовательности =b1b2,…,bm,c1,c2,…,ck, где b1b2,…,bm - информационные разряды, а c1,c2,…,ck - контрольные разряды.

По определению для групповых кодов ij, также комбинация группового кода, т.е. результат поразрядного суммирования комбинации i с комбинацией j, даст другую комбинацию группового кода. Из этого следует, что кодовое расстояние группового кода определяется (d(ij)=ij) весом кодовой комбинации с минимальным числом единиц.

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

Совокупность 1, 2, …, n кодовых комбинаций называется линейно зависимой, если существует набор элементов l, 2, …, n (i{0,1}), среди которых хотя бы один отличен от нуля и выполняется условие l122nn=0.

Если это равенство возможно при всех i=0, то кодовые комбинации 1, 2, …, n называются линейно независимыми.

Если среди 2m кодовых комбинаций группового кода выбрано n линейно независимых кодовых комбинаций 1, 2, …, m, то для любого набора l, 2, …, m (одновременно не равных нулю) получим комбинацию группового кода по правилу

r=l122mm0. (3.1)

Составляя всевозможные наборы элементов l, 2, …, m, число которых равно , можно получить 2m кодовых комбинаций группового кода по правилу (3.1).

Таким образом, любой набор линейно независимых кодовых комбинаций порождает групповой код (n,m). Такой набор записывается в виде матрицы Gm,n, которая называется образующей или порождающей [17]. Матрицу Gm,n можно привести к канонической форме Gm,n=Ik,Rm,k, где Ik – единичная матрица, Rm,k – матрица контрольных элементов.

Образующая матрица имеет вид

Если B1,m – матрица-строка безызбыточного двоичного кода, то кодовая комбинация группового кода определится в виде произведения

=B1,mGm,n=b1b2,…,bm,c1,c2,…,ck, (3.2)

причем контрольные элементы определятся по формуле

. (3.3)

Из формулы (3.2) следует, что первые m элементов комбинации группового кода определяются комбинацией безызбыточного кода, а остальные k=n-m элементов определяются как комбинацией безызбыточного кода, так и элементами матрицы Rm,k. Поэтому первые m элементов комбинации группового кода называются информационными элементами, а остальные k - контрольными.

Уравнение (3.3) задает преобразование m разрядной кодовой комбинации безызбыточного кода в n разрядную кодовую комбинацию группового кода. Так как контрольные символы получаем в результате линейных операций над информационными элементами, то групповой код называют еще линейным.

Пример. Задана образующая матрица

.

Пусть B1,3=001. Контрольный элемент c1=0x10x11x0=0, контрольный элемент c2=0x00x01x1=1, следовательно, кодовая комбинация группового кода =00101.

Матрицу Rm,k контрольных элементов следует задать исходя из следующих условий:

а) вес каждой строки должен быть не менее d-1;

б) две любые строки должны отличаться друг от друга не менее, чем в d-2 разрядах.

Число контрольных элементов k определяется по формулам Хэмминга [18]:

, d нечетное число; (3.4)

, d нечетное число. (3.5)

Пример. Построить корректирующий код, который будет передавать 34 сообщения и обнаруживать две ошибки.

Число информационных символов кода (формула (1.1)) m=]log234[=6. Из формулы (2.1) определяем, что d=3. Из условия (3.4) осуществляет поиск значения k: k=1 – условие 1log2(1+7) не выполняется; k=2 – условие 2log2(1+8) не выполняется; k=3 – условие 3log2(1+9) не выполняется; k=4 – условие 4log2(1+10) выполняется.

Построив шестнадцать комбинаций простого кода, выберем любые шесть, удовлетворяющие условиям построения матрицы R6,4 контрольных элементов.

Получим образующую матрицу группового кода (10,6)

.

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