Читайте также:
|
|
Групповые коды принято обозначать в виде двойки (n,m), где n - длина кода, а m - число информационных символов [11]. Тогда число контрольных символов k=n-m.
Комбинацию b группового кода запишем в виде последовательности b=b1b2,…,bm,c1,c2,…,ck, где b1b2,…,bm - информационные разряды, а c1,c2,…,ck - контрольные разряды.
По определению для групповых кодов biÅbj, также комбинация группового кода, т.е. результат поразрядного суммирования комбинации bi с комбинацией bj, даст другую комбинацию группового кода. Из этого следует, что кодовое расстояние группового кода определяется (d(bibj)=wbiÅbj) весом кодовой комбинации с минимальным числом единиц.
Это свойство замкнутости группового кода позволяет упростить его описание. Можно задать групповой код, указывая не все кодовые комбинации, а только их часть, полагая, что остальные кодовые комбинации могут быть определены через них. Это происходит следующим образом.
Совокупность b1, b2, …, bn кодовых комбинаций называется линейно зависимой, если существует набор элементов al, a2, …, an (aiÎ{0,1}), среди которых хотя бы один отличен от нуля и выполняется условие alb1Åa2b2Å…Åanbn=0.
Если это равенство возможно при всех ai=0, то кодовые комбинации b1, b2, …, bn называются линейно независимыми.
Если среди 2m кодовых комбинаций группового кода выбрано n линейно независимых кодовых комбинаций b1, b2, …, bm, то для любого набора al, a2, …, am (одновременно не равных нулю) получим комбинацию группового кода по правилу
br=alb1Åa2b2Å…Åambm¹0. (3.1)
Составляя всевозможные наборы элементов al, a2, …, am, число которых равно, можно получить 2m кодовых комбинаций группового кода по правилу (3.1).
Таким образом, любой набор линейно независимых кодовых комбинаций порождает групповой код (n,m). Такой набор записывается в виде матрицы Gm,n, которая называется образующей или порождающей [17]. Матрицу Gm,n можно привести к канонической форме Gm,n=|Ik,Rm,k|, где Ik – единичная матрица, Rm,k – матрица контрольных элементов.
Образующая матрица имеет вид
Если B1,m – матрица-строка безызбыточного двоичного кода, то кодовая комбинация группового кода определится в виде произведения
b=B1,m´Gm,n=|b1b2,…,bm,c1,c2,…,ck|, (3.2)
причем контрольные элементы определятся по формуле
. (3.3)
Из формулы (3.2) следует, что первые m элементов комбинации b группового кода определяются комбинацией безызбыточного кода, а остальные k=n-m элементов определяются как комбинацией безызбыточного кода, так и элементами матрицы Rm,k. Поэтому первые m элементов комбинации b группового кода называются информационными элементами, а остальные k - контрольными.
Уравнение (3.3) задает преобразование m разрядной кодовой комбинации безызбыточного кода в n разрядную кодовую комбинацию группового кода. Так как контрольные символы получаем в результате линейных операций над информационными элементами, то групповой код называют еще линейным.
Пример. Задана образующая матрица
.
Пусть B1,3 =001. Контрольный элемент c1 =0x1Å0x1Å1x0=0, контрольный элемент c2 =0x0Å0x0Å1x1=1, следовательно, кодовая комбинация группового кода b =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)
.
Дата добавления: 2015-10-21; просмотров: 65 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Коды для обнаружения одиночных ошибок | | | Проверочная матрица |