Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИКЛекции.doc
Скачиваний:
124
Добавлен:
07.05.2019
Размер:
2.69 Mб
Скачать

7.2 Линейные групповые коды

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

Линейным называется код, в котором проверочные символы представляют собой линейные комбинации информационных. Для двоичных кодов качестве линейной операции используют сложение по модулю 2 ( - проверку на четность). Линейный код образует алгебраическую группу по отношению операции сложения по модулю 2,в этом смысле они являются групповыми кодами.

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

Свойство линейного кода: сумма (разность) кодовых векторов линейного кода дает вектор, принадлежащий этому коду. Свойство группового кода: минимальное кодовое расстояние между кодовыми векторами равно минимальному весу ненулевых векторов. Вес кодового вектора равен числу единиц в кодовой комбинации. Расстояние между двумя кодовыми векторами равно весу вектора, полученного в результате сложения двух векторов по модулю 2. Пример:

1 1 0 0 0 1 1

1 0 0 1 1 1 1

0 1 0 1 1 0 0 ,

Групповые коды удобно задавать при помощи матриц, размерность которых определяется параметрами k и n. Число строк равно k, а число столбцов равно n = k+m.

.

Коды, порождаемые этими матрицами, называются (n, k)-кодами, а соответствующие им матрицы порождающими (образующими, производящими). Порождающая матрица G состоит из информационной Ikk (И) и проверочной Rkm (П) матриц. Число столбцов П матрицы равно , число столбцов И матрицы равно . Она является сжатым описанием линейного кода и может быть представлена в канонической (типовой) форме:

.

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

.

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

Для кодов с производящая матрица имеет вид:

Во всех комбинациях кода, построенного при помощи такой матрицы четное число единиц.

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

Столбцы добавочной матрицы (П) Rkm определяют правила формирования проверок. Число единиц в каждой строке добавочной матрицы должно удовлетворять условию:

r1 d0-1, ( , т.к. единичная матрица), но число единиц определяет число сумматоров по модулю 2 в шифраторе и дешифраторе, и чем их больше, тем сложнее аппаратура.

Порядок построения и выбор параметров производящей матрицы для показан на примере.

Пример 1. Построить групповой код способный передавать 16 символов первичного алфавита с исправлением одиночной ошибки.

Решение:

  1. Построим производящую матрицу G(n, k).

Если объем кода N = 2k = 16, то количество информационных разрядов к = 4. Минимальное кодовое расстояние для исправления одиночной ошибки d0=2s+1=3. По заданной длине информационного слова, используя соотношения:

n = k+m, 2n (n+1)2k и 2m n+1

вычислим основные параметры кода n и m.

m=[log2 {(k+1)+ [log2(k+1)]}]=[log2 {(4+1)+ [log2(4+1)]}]=3.

Откуда n = 7, т. е. необходимо построить (7, 4)-код.

В качестве информационной матрицы Ik(7, 4) - выбираем единичную матрицу (44), а в качестве проверочной матрицы Rkm(7 ,4) - выбираем матрицу (43), каждая строка которой содержит число единиц больше или равно двум (r1 d0-1), т.е. трехзначные комбинации с числом единиц большим или равным 2.

Таким образом, в качестве производящей можно принять матрицу

.

Производящая матрица кода G(7,4) может иметь и другой вид

и т.д.

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

Корректирующие коды с минимальным количеством проверочных разрядов называются плотноупакованными или совершенными. К ним относят коды (7,4), (15,11), (31,26) и т.д.

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

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

Например: информационному слову I =[1 0 1 0] соответствует следующее кодовое слово. Суммируются по модулю 2 первая и третья строки проверочной (П) матрицы:

111

110

001. Полученную комбинацию 001 приписывают справа к информационным символам и получают полную корректирующую комбинацию.

.

Аналогичную процедуру проделывают с каждой последующей информационной комбинацией, пока не будет построен весь код.

Процесс декодирования состоит в определении соответствия принятого кодового слова, переданному информационному коду. Декодирование и коррекция ошибок в линейных кодах связаны с выполнением проверок.

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

Строки проверочной матрицы определяют правила формирования проверок. Для (7, 4)-кода

p1 a1 a2 a4 = S1 ;

p2a1a2 a3 = S2 ;

p3 a1 a3 a4 = S3 .

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

Вид синдрома может быть определен с помощью проверочной (контрольной) матрицы H(n, k).

,

где RmkT -транспонированная проверочная матрица (поменять строки на столбцы); Imm - единичная матрица, число столбцов которой равно числу проверочных разрядов. Так для (7, 4)- кода проверочная матрица имеет вид

.

Столбцы такой матрицы представляют значение синдрома для разряда, соответствующего номеру столбца матрицы H(n, k). Например, если синдром 1 1 1, то ошибка в 1 разряде принятой комбинации и т.д.

Пример 2.Показать процесс кодирования, декодирования и исправления ошибки для передаваемого информационного слова 1001.

Решение: Определим комбинации корректирующего кода.

Для заданного числа информационных разрядов k = 4,число кодовых комбинаций равно N = 2k = 24 = 16.

1) 0000 5) 0010 9) 0001 13) 0011

2) 1000 6) 1010 10) 1001 14) 1011

3) 0100 7) 0110 11) 0101 15) 0111

4) 1100 8) 1110 12) 1101 16) 1111

Старшинство разрядов принимаем слева на право, в соответствии с их поступлением на вход декодера.

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

Например, для информационного слова I= [1001] кодовое слово имеет вид

.

Передаваемые в канал кодовые комбинации имеют вид:

1) 0000 000 5) 0010 110 9) 0001 101 13) 0011 011

2) 1000 111 6) 1010 001 10) 1001 010 14) 1011 100

3) 0100 011 7) 0110 101 11) 0101 110 15) 0111 000

4) 1100 100 8) 1110 010 12) 1101 101 16) 1111 111

Процесс декодирования состоит в определении соответствия принятого кодового слова, переданному информационному и осуществляется с помощью проверочной матрицы H(7, 4).

Для построенного (7, 4)-кода проверочная матрица имеет вид

.

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

Пусть в процессе передачи произошла ошибка во 2-м информационном разряде

1 1 0 1 0 0 1

В соответствии с проверочной матрицей составляем проверочные векторы

p1a1a2a4 =S1 = 0110 = 0;

p2a1a2a3 =S2 = 0111 = 1 ;

p3a1a3a4 =S3 = 1101 = 1.

Синдром 011 показывает, что ошибка произошла во 2-м информационном разряде, который необходимо проинвертировать.

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

Решение: Объем кода равен N = 2k. При 100 сообщениях: 100  N 2k , откуда k = 7. По заданной длине информационного слова, используя соотношения :

n = k+m, 2n (n+1)2k и 2m n+1

вычислим основные параметры кода n и m.

m=[log2 {(k+1)+ [log2(k+1)]}]=[log2 {(7+1)+ [log2(7+1)]}]=4.

Откуда n = 11, т. е. получили (11, 7)-код.

В качестве информационной матрицы выбираем единичную матрицу I(7x7).Проверочная матрица содержит 4 столбца и 7 строк, которые содержат r1 d0-1 единиц в четырехразрядном коде (2, 3, 4-единицы).

.

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