Смекни!
smekni.com

Теория информации (стр. 22 из 29)

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

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

2s+ 1 и появление ошибки кратности s и менее не приводит к нарушению более s проверок, то правильное решение может быть принято по большинству неискаженных проверок. Чтобы указанное условие выполнялось, любой другой символ aj(j
i) не должен входить более чем в одно проверочное равенство. В этом случае мы имеем дело с системой разделенных проверок.

Пример 29.Построим систему разделенных проверок для декодирования информационных символов рассмотренного ранее группового кода (8,2).

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

a5 = a6

a1,

a5 = a7

a2,

а5 = а3,

а5 = a4,

а5 = а5.

Для символа a8 систему разделенных проверок строим аналогично:

a8 = a3

a1,

a8 = a4

a2,

a8 = а6,

a8 = a7,

a8 = а8.

4.8.4 Матричное представление линейных кодов

Матрицей размерности l

n называют упорядоченное множество l
n элементов, расположенных в виде прямоугольной таблицы с l строками и n столбцами:

Транспонированной матрицей к матрице А называют матрицу, строками которой являются столбцы, а столбцами строки матрицы А:

Матрицу размерности n

n называют квадратной матрицей порядка n. Квадратную матрицу, у которой по одной из диагоналей расположены только единицы, а все остальные элементы равны нулю, называют единичной матрицейI. Суммой двух матриц А
ij| и В
|bij| размерности l
n называют матрицу размерности l
n:

А + В

ij| + |bij|
ij + bij|.

Умножение матрицы А

ij| размерности l
n на скаляр с дает матрицу размерности l
n: сА
cij|
|c аij|.

Матрицы А

ij| размерности l
n и В
|bjk| размерности n
m могут быть перемножены, причем элементами cik матрицы — произведения размерности l
mявляются суммы произведений элементов l-й строки матрицы А на соответствующие элементы k-го столбца матрицы В:

cik =

В теории кодирования элементами матрицы являются элементы некоторого поля GF(P), а строки и столбцы матрицы рассматриваются как векторы. Сложение и умножение элементов матриц осуществляется по правилам поля GF(P).

Пример 30. Вычислим произведение матриц с элементами из поля GF (2):

Элементы cik матрицы произведения М = M1M2 будут равны:

c11 = (011) (101) = 0 + 0 + 1 = 1

c12 = (011) (110) = 0 + 1 + 0 = 1

c13 = (011) (100) = 0 + 0 + 0 = 0

c21 = (100) (101) = 1 + 0 + 0 = 1

c22 = (100) (110) = 1 + 0 + 0 = 1

c23 = (100) (100) = 1 + 0 + 0 = 1

c31 = (001) (101) = 0 + 0 + 1 = 1

c32 = (001) (110) = 0 + 0 + 0 = 0

c33 = (001) (100) = 0 + 0 + 0 = 0

Следовательно,

Зная закон построения кода, определим все множество разрешенных кодовых комбинаций. Расположив их друг под другом, получим матрицу, совокупность строк которой является подпространством векторного пространства n-разрядных кодовых комбинаций (векторов) из элементов поля GF(P). В случае двоичного (n, k)-кода матрица насчитывает n столбцов и 2k—1 строк (исключая нулевую). Например, для рассмотренного ранее кода (8,2), исправляющего все одиночные и двойные ошибки, матрица имеет вид

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

Совокупность векторов V1, V2, V3, ..., Vn называют линейно зависимой, когда существуют скаляры с1,..сn(не все равные нулю), при которых

c1V1 +c2V2+…+cnVn= 0

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

Среди 2k– 1 ненулевых двоичных кодовых комбинаций — векторов их только k. Например, для кода (8,2)

Матрицу, составленную из любой совокупности векторов линейного кода, образующей базис пространства, называют порождающей (образующей) матрицей кода.

Если порождающая матрица содержит k строк по n элементов поля GF(q), то код называют (n, k)-кодом. В каждой комбинации (n, k)-кода k информационных символов и n – k проверочных. Общее число разрешенных кодовых комбинаций (исключая нулевую) Q = qk-1.

Зная порождающую матрицу кода, легко найти разрешенную кодовую комбинацию, соответствующую любой последовательности Аki из k информационных символов.

Она получается в результате умножения вектора Аkiна порождающую матрицу Мn,k:

Аni = АkiМn,k .

Найдем, например, разрешенную комбинацию кода (8,2), соответствующую информационным символам a5=l, a8 = 1:

.

Пространство строк матрицы остается неизменным при выполнении следующих элементарных операций над строками: 1) перестановка любых двух строк; 2) умножение любой строки на ненулевой элемент поля; 3) сложение какой-либо строки с произведением другой строки на ненулевой элемент поля, а также при перестановке столбцов.