Образование систематического кода

Обычно для построения кодов необходимо знать длину кодовой комбинации Образование систематического кода - student2.ru , кратность обнаруживаемых ошибок Образование систематического кода - student2.ru , число исправляемых ошибок Образование систематического кода - student2.ru . Числа Образование систематического кода - student2.ru и Образование систематического кода - student2.ru задают минимально допустимое кодовое расстояние Образование систематического кода - student2.ru , [Гуров, стр. 417].Для построения всевозможных кодовых комбинаций строится порождающая матрица (производящая матрица), состоящая из Образование систематического кода - student2.ru строк и Образование систематического кода - student2.ru столбцов и удовлетворяющая следующим условиям:

1. все исходные комбинации должны быть различны,

2. нулевая комбинация не должна входить в число исходных комбинаций,

3. исходные кодовые комбинации должны быть линейно независимыми,

4. каждая кодовая комбинация должна иметь вес не менее Образование систематического кода - student2.ru ,

5. кодовое расстояние между любой парой исходных кодовых комбинаций должно быть не менее Образование систематического кода - student2.ru .

Подобранные определённым образом и удовлетворяющие приведённым условиям кодовые комбинации образуют матрицу, состоящую из Образование систематического кода - student2.ru строк и Образование систематического кода - student2.ru столбцов. Полученная матрица называется производящей.

Если имеется кодовая комбинация, состоящая из Образование систематического кода - student2.ru символов, число всевозможных кодов равно Образование систематического кода - student2.ru . Их них выделяются Образование систематического кода - student2.ru кодовых комбинаций, остальные Образование систематического кода - student2.ru комбинаций находятся как линейные комбинации строк, входящих в производящую матрицу.

Запишем производящую матрицу

Образование систематического кода - student2.ru . (5.9)

Как видно, матрица Образование систематического кода - student2.ru состоит из двух частей – информационной подматрицы Образование систематического кода - student2.ru размерности Образование систематического кода - student2.ru и проверочной подматрицы Образование систематического кода - student2.ru размерности Образование систематического кода - student2.ru . В число разрешённых кодовых комбинаций Образование систематического кода - student2.ru входят кодовые комбинации, образующие единичную матрицу Образование систематического кода - student2.ru размерности Образование систематического кода - student2.ru . Заменим информационную часть матрицы Образование систематического кода - student2.ru единичной матрицей Образование систематического кода - student2.ru и получим матрицу

Образование систематического кода - student2.ru , (5.10)

которая называется канонической формой порождающей матрицы.

Три исходных требования к порождающей матрице Образование систематического кода - student2.ru выполняются автоматически. Выдвинем условия к строкам подматрицы Образование систематического кода - student2.ru

- число единиц в каждой строке не менее Образование систематического кода - student2.ru ,

- кодовое расстояние между строками подматрицы Образование систематического кода - student2.ru должно быть не менее Образование систематического кода - student2.ru .

Таким образом, удовлетворяются все требования, выдвинутые к матрице Образование систематического кода - student2.ru . Зная информационную часть порождающей матрицы, можно на основе требований к канонической форме порождающей матрицы Образование систематического кода - student2.ru найти проверочные символы Образование систематического кода - student2.ru . [Темников, стр. 145]

Обычно бывает известно количество передаваемых сообщений или количество информационных разрядов Образование систематического кода - student2.ru , а также число обнаруживаемых или исправляемых ошибок. По ним определяется число символов Образование систематического кода - student2.ru , необходимых для проверочной части кода Образование систематического кода - student2.ru . Из всего множества Образование систематического кода - student2.ru кодов выбираются произвольно Образование систематического кода - student2.ru кодов, удовлетворяющие условиям построения подматрицы Образование систематического кода - student2.ru в выражении (5.10) , и строки подматрицы Образование систематического кода - student2.ru заменяются выбранными кодами. В результате получается производящая матрица Образование систематического кода - student2.ru . В дальнейшем производящая матрица Образование систематического кода - student2.ru используется как для построения проверочной части Образование систематического кода - student2.ru кода Образование систематического кода - student2.ru , так и для обнаружения и исправления возникших ошибок.

Определим матрицу

Образование систематического кода - student2.ru ,

элементы которой использованы в выражении (5.8), считая, что каноническая форма матрицы Образование систематического кода - student2.ru известна, т.е. Образование систематического кода - student2.ru . Из соотношения Образование систематического кода - student2.ru получим Образование систематического кода - student2.ru . Образование систематического кода - student2.ru

Определение проверочной части кода Образование систематического кода - student2.ru . Положим, известна информационная часть кода Образование систематического кода - student2.ru . Воспользуемся определением систематического кода. Элементы Образование систематического кода - student2.ru в выражении (5.8) равны элементам Образование систематического кода - student2.ru матрицы Образование систематического кода - student2.ru , т.е. Образование систематического кода - student2.ru . Тогда согласно (5.8)

Образование систематического кода - student2.ru . (5.11)

Полученные символы Образование систематического кода - student2.ru , приписываются справа к информационной части кода. В результате будет построена кодовая комбинация Образование систематического кода - student2.ru

Обнаружение и исправление одиночной ошибки. Проверка на наличие или отсутствие ошибки и исправление ошибки основана на свойстве систематического кода, а именно – любая линейная комбинация кодов, входящих в производящую матрицу даёт также систематический код, Следовательно, достаточно построить алгоритм проверки для кодов производящей матрицы. Используем каноническое представление Образование систематического кода - student2.ru производящей матрицы. Введем проверочную матрицу в виде канонической формы

Образование систематического кода - student2.ru , (5.12)

элементы которой Образование систематического кода - student2.ru необходимо определить.

Применим правило: произведение любой разрешённой неискажённой кодовой комбинации на проверочную матрицу Образование систематического кода - student2.ru должно быть равно кодовой комбинации с нулевыми значениями.

Следовательно, произведение канонической формы производящей матрицы на проверочную матрицу равно нулевой матрице:

Образование систематического кода - student2.ru

= Образование систематического кода - student2.ru . (5.13)

Образование систематического кода - student2.ru Из соотношения (5.13) следует, что Образование систематического кода - student2.ru , и каноническая форма проверочной матрицы имеет вид

Составим систему линейных уравнений для проверки наличия ошибки в принятой реализации.

Положим, Образование систематического кода - student2.ru - зарегистрированная кодовая комбинация.

Произведение зарегистрированной кодовой комбинация Образование систематического кода - student2.ru на проверочную матрицу Образование систематического кода - student2.ru имеет вид

Образование систематического кода - student2.ru (5.14)

Получили систему линейных уравнений для исправления однократной ошибки.

Если в принятой кодовой комбинации нет однократных ошибок, то вектор ошибок Образование систематического кода - student2.ru равен нулю. Вектор Образование систематического кода - student2.ru называется синдромом ошибки (совокупностью симптомов) Синдром Образование систематического кода - student2.ru не равен нулю, если в кодовой комбинации присутствуют ошибки.

Код однократной ошибки равен «1» в каком либо разряде и «0» во всех остальных Образование систематического кода - student2.ru . Код ошибки суммируется по модулю 2 с информационным символом и в результате получается искажённая кодовая комбинация

Образование систематического кода - student2.ru или Образование систематического кода - student2.ru , или Образование систематического кода - student2.ru , или

Образование систематического кода - student2.ru и тогда вектор ошибок Образование систематического кода - student2.ru не равен нулю.

Из приведённой записи искажённых кодовых комбинаций ясно, что каждой ошибочной кодовой комбинации соответствует свой вектор ошибки. По этому признаку в приёмнике инвертируется определённый разряд в принятой кодовой комбинации.

Существует другой способ исправления однократных ошибок. Для каждой разрешённой кодовой комбинации записываются множество кодов с однократной ошибкой. Если произошла однократная ошибка, принятая кодовая комбинация принадлежит одному из множеств, соответствующей одной разрешённой кодовой комбинации. По этому множеству определяется истинное значение кодовой комбинации. Однако этот метод требует большого объёма памяти.

Пример 5.2. Положим необходимо произвести кодирование пятиразрядных двоичных кодов с исправлением однократной ошибки, ( Образование систематического кода - student2.ru ). Записать производящую матрицу

1. Из неравенства (5.6) определим необходимое число разрядов Образование систематического кода - student2.ru и число проверочных символов Образование систематического кода - student2.ru .

Образование систематического кода - student2.ru , Образование систематического кода - student2.ru , Образование систематического кода - student2.ru = 4.

2. Из неравенства (5.3) определяется минимальное кодовое расстояние

Образование систематического кода - student2.ru .

3. Определяются требования к проверочной подматрице Образование систематического кода - student2.ru канонической формы производящей матрицы Образование систематического кода - student2.ru (5.10).

3.1 Число единиц в кодовых последовательностях, входящих в подматрицу Образование систематического кода - student2.ru должно быть не менее 2.

3.2 Кодовое расстояние между любыми двумя кодовыми последовательностями, входящими в подматрицу Образование систематического кода - student2.ru , должно быть не менее 1.

4. Выпишем все четырёхразрядные коды, удовлетворяющие условиям 3.1 и 3.2:

0011, 0101, 0110, 0111, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

5. Информационная часть производящей матрицы – единичная матрица размерности [5‰5]. Выберем произвольно пять кодов из пункта 4 и образуем каноническую форму Образование систематического кода - student2.ru производящей матрицы Образование систематического кода - student2.ru .

Образование систематического кода - student2.ru 6. Всего можно образовать Образование систематического кода - student2.ru пятиразрядных кода. Пять кодовых комбинаций уже использовано, нулевая комбинация известна. Остальные Образование систематического кода - student2.ru комбинаций находятся как линейные комбинации строк, входящих в производящую матрицу. Например, возьмём 1-ю, 2-ю и 4-ю строки производящей матрицы Образование систематического кода - student2.ru и сложим их поразрядно по модулю 2. Результат сложения записан в последнюю строчку.

Образование систематического кода - student2.ru 7. Используя матрицу Образование систематического кода - student2.ru , запишем каноническую форму проверочной матрицы X.

Образование систематического кода - student2.ru

8. На основе проверочной матрицы X и принятой кодовой комбинации Образование систематического кода - student2.ru составим систему проверочных уравнений, используя (5.14),

Образование систематического кода - student2.ru (5.15)

Таблица 5.1  
Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru Образование систематического кода - student2.ru
                   

Если принятая кодовая комбинация не содержит одиночной ошибки, то синдром S равен нулю. Определим синдромы ошибок для каждого символа кодовой комбинации. Например, синдром ошибки для символа Образование систематического кода - student2.ru получим, заменив символ Образование систематического кода - student2.ru во всех уравнениях (5.15) на «1»,а остальные символы на «0» и выполнив

сложение по модулю 2, получим код 0111, который соответствует синдрому Образование систематического кода - student2.ru , (Таблица 5.1). Точно также можно получить синдромы ошибок для других символов Образование систематического кода - student2.ru .

1 Å 0 Å 0 Å 1=0 1 Å 0 Å 0 Å 1=0 1 Å 1 Å 0 Å 1 Å 1=0 1 Å 0 Å 1 Å 0 Å 0=0  

Положим, принятая кодовая комбинация равна Образование систематического кода - student2.ru . Подставим значения символов вектора Образование систематического кода - student2.ru в систему проверочных уравнений (5.15) и получим синдром ошибки S,равный нулю.

9. Введём однократную ошибку Образование систематического кода - student2.ru в вектор Образование систематического кода - student2.ru -

Образование систематического кода - student2.ru . Во всех проверочных уравнениях символ Образование систематического кода - student2.ru изменяется на обратный символ. После подстановки символов вектора Образование систематического кода - student2.ru в систему проверочных уравнений получим значение синдрома Образование систематического кода - student2.ru = 1101.

1 Å 0 Å 1 Å 1=1 1 Å 0 Å 1 Å 1=1 1 Å 1 Å 0 Å 1 Å 1=0 1 Å 0 Å 1 Å 1 Å 0=1

Как известно, значение синдрома, не равное нулю, однозначно определяет номер разряда в кодовой комбинации. В приведённом примере пятый разряд в векторе Образование систематического кода - student2.ru следует изменить на обратный и получится первоначальный вектор Образование систематического кода - student2.ru .

Число синдромов, не равных нулю, равно числу разрядов принятой кодовой комбинации. Синдромы для символов кодовой комбинации Образование систематического кода - student2.ru имеют вид, приведённый в таблице 5.1.

Указанные синдромы сохраняются для любых кодовых комбинаций, полученных по построенной производящей матрице. Например, для кода Образование систематического кода - student2.ru

система проверочных уравнений примет вид

0 Å 1 Å 0 Å 1 = 0,

0 Å 1 Å 0 Å 1 = 0,

0 Å 0 Å 1 Å 0 Å 1 = 0 ,

0 Å 1 Å 0 Å 0 Å 1 = 0 .

Если произошла ошибка, скажем, в первом разряде, получим код Образование систематического кода - student2.ru

Образование систематического кода - student2.ru . Система проверочных уравнений примет вид

0 Å 1 Å 0 Å 1 = 0,

1 Å 1 Å 0 Å 1 = 1,

1 Å 0 Å 1 Å 0 Å 1 = 1,

1 Å 1 Å 0 Å 0 Å 1 = 1.

Синдром Образование систематического кода - student2.ru = 0111 для первого разряда не изменился с изменением кодовой комбинации. С изменением производящей матрицы изменяются и синдромы.

Наши рекомендации