Декодирование двухкомпонентных подпространственных кодов
Автор: Киен В.В., Пилипчук Н.И.
Журнал: Труды Московского физико-технического института @trudy-mipt
Рубрика: Информатика и управление
Статья в выпуске: 2 (46) т.12, 2020 года.
Бесплатный доступ
Построены двухкомпонентные подпространственные коды с заданными параметрами. Проведено декодирование с предварительным определением компоненты. Внесено принципиальное изменение в алгоритм декодирования, связанное с использованием критерия определения компоненты. Вместо ранее используемого рангового критерия предложено использовать числовой критерий. В ранговом критерии было предписано определять ранг префиксной матрицы кода, в числовом критерии подсчитывается число единиц на диагонали. Сравнение критериев показало, что числовой критерий более эффективный в смысле уменьшения вероятности ошибок. К тому же он более простой.
Кодирование, декодирование, двухкомпонентные коды, ранг, матрица, префикс, пространство, подпространство
Короткий адрес: https://sciup.org/142229678
IDR: 142229678
Текст научной статьи Декодирование двухкомпонентных подпространственных кодов
Многокомпонентные коды с нулевым префиксом (МНП) относятся к классу случайных сетевых подпространственных кодов. Они используют в качестве первой компоненты лифтинговые коды Силвы, Кёттера и Кшишанга (SKK) [1], к которым для увеличения мощности добавляют дополнительные компоненты [2]. Благодаря этому многокомпонентные коды при определённых параметрах достигают верхней границы по мощности. Большая мощность кода, означает большую информационную скорость передачи, что является ценным качеством кода.
В то же время многокомпонентность приводит к некоторому недостатку по помехоустойчивости. При итеративном декодировании на. первом этапе надо определить компоненту, а. затем провести декодирование рангового кода. При передаче по каналу с шумами возможно наложение ошибок на. передаваемые сообщения, что может приводить к неправильному определению компоненты. В таком случае применять ранговое декодирование не
имеет смысла, так как найти передаваемое сообщение нельзя. Если правильно определена компонента, то ранговое декодирование по алгоритму [4] правильно определяет сообщение при условии, что количество ошибок и стираний не превосходит корректирующей способности рангового кода, или объявит об отказе от декодирования при превышении границы корректирующей способности.
Предположим, что построен многокомпонентный код, у которого первая компонента представляет собой код SKK [1]. Здесь информационная матрица X = [I М ] является конкатенацией единичной матрицы и матрицы рангового кода Габидулина [3]. Дополнительные компоненты в качестве префикса используют нулевую матрицу, то есть все элементы префиксной матрицы - нули. Нулевой префикс повторяется столько раз, каково число дополнительных компонент. В остальной части расположена матрица рангового кода меньшего размера, чем в первой компоненте. В последней компоненте на первом месте нулевая матрица и затем единичная матрица: X = [О ... I ]. Число строк, а также число столбцов для всех компонент одинаково.
На первом шаге декодирования надо определить компоненту. Для этого определяем префикс: если это единичная матрица, то это первая компонента. После этого второй шаг - декодируем матрицу рангового кода. Если префикс - нулевая матрица, то это следующая компонента. В двухкомпонентном коде всего две компоненты. Если префикс - нулевая матрица, то решение X = [О... I] выдаётся сразу.
2. Двухкомпонентный код
Строим двухкомпонентный подпространственный код с параметрами (n, d, т) = (8, 6, 3) над полем GF (2). г,те n = 8 - длина кота.т = 3 размерность, d = 6 - минимальное подпространственное кодовое расстояние.
Используем алгоритм построения рангового кода [5] и, добавив единичный префикс, построим 32 матрицы первой компоненты подпространственного кода. К ним присоединим вторую компоненту с нулевым префиксом. Код состоит из 2 компонент.
I Первая компонента имеет вит Ci = [I3 М ].
Мощность этого кода вычисляется по формуле: q(n-m')(m-d™"k +1) = 25х1 = 32. Первая компонента состоит из 32 кодовых слов.
I Вторая компонента имеет вид C2 = [О3 I3].
Свт„гюй =
Мощность этой компоненты равна 1.
Теперь построим ранговый код с матрицей М. Матрица рангового кода М размера 3 х 5 состоит из линейного подпространства векторов размерности 5 над расширенным полем GF(25). Параметры этого кода (nr, kr,dT) = (3,1, 3), где nT - длина кодового вектора, камерное подпространство пространства векторов GF(25)3 и dT - кодовое расстояние. Используем неприводимый полином ^(ж) = ж5 + ж2 + 1 с примитивным элементом а и соответствующую таблицу поля:
Степенной вид |
Базисный вид |
Соответствующий вектор |
0 |
0 |
00000 |
1 |
1 |
00001 |
а |
а |
00010 |
а2 |
а2 |
00100 |
а3 |
а3 |
01000 |
а4 |
а4 |
10000 |
а5 |
а2 + 1 |
00101 |
а6 |
а3 + а |
01010 |
а7 |
а4 + а2 |
10100 |
а8 |
а3 + а2 + 1 |
01101 |
а9 |
а4 + а3 + а |
11010 |
а10 |
а4 + 1 |
10001 |
а11 |
а2 + а + 1 |
00111 |
а12 |
а3 + а2 + а |
01110 |
а13 |
а4 + а3 + а2 |
11100 |
а14 |
а4 + а3 + а2 + 1 |
11101 |
а15 |
а4 + а3 + а2 + а + 1 |
11111 |
а16 |
а4 + а3 + а + 1 |
11011 |
а17 |
а4 + а + 1 |
10011 |
а18 |
а + 1 |
00011 |
а19 |
а2 + а |
00110 |
а20 |
а3 + а2 |
01100 |
а21 |
а4 + а3 |
11000 |
а22 |
а4 + а2 + 1 |
10101 |
а23 |
а3 + а2 + а + 1 |
01111 |
а24 |
а4 + а3 + а2 + а |
11110 |
а25 |
а4 + а3 + 1 |
11001 |
а26 |
а4 + а2 + а + 1 |
10111 |
а27 |
а3 + а + 1 |
01011 |
а28 |
а4 + а2 + а |
10110 |
а29 |
а3 + 1 |
01001 |
а30 |
а4 + а |
10010 |
Число различных ранговых слов и в векторном, и в матричном представлении, включая нулевой вектор (нулевую матрицу), равно 25х1 = 32.
Ранговый код (щ., kT , dr) = (3,1, 3) задаётся порождающей матрицей G размера (1 х 3) л ранга 1. Зададим порождающую матрицу G в виде
G = (91 92 9э) , где элементы 91,92,93 из GF(25) линейно независимы над GF(2). Выбираем независимые элементы расширенного поля GF(25) в виде (91,92,93) = (1,а,а2) . Тогда порождающая матрица рангового кода такова:
G = (1 а а2) .(1)
Ранговый код (nr , кт , dT ) = (3,1, 3) в векторном представлении имеет вид
М1 = (0 0 0) , М2 = (0 1 а) , М3 = (1 а а2),
М4 = (а а2 а3) , М5 = (а2 а3 а4) , Мб = (а3 а4а
М7 = (а4 а5 а6) , М8 = (а5 а6 а7) , М9 = (а6 а7 а8) ,
М10 = (а7 а8 а9) , М11 = (а8 а9 а10) , М12 = (а9 а10 а11) ,
М13 = (а10 а11 М16 = (а13 а14 М19 = (а16 а17 М22 = (а19 а20 М25 = (а22 а23 М28 = (а25 а26 |
а12) , М14 = (а11 а12 а13) , М15 = (а12 а13 а14) , а15) ,М17 = (а14 а15 а16) ,М18 = (а15 а16 а17) , а18) ,М20 = (а17 а18 а19) ,М21 = (а18 а19 а20) , а21) ,М23 = (а20 а21 а22) ,М24 = (а21 а22 а23) , а24) ,М26 = (а23 а24 а25) ,М27 = (а24 а25 а26) , а27) ,М29 = (а26 а27 а28) ,М30 = (а27 а28 а29) , |
М31 = (а28 а29 а30) ,М32 = (а29 а30 1) .
Соответствующее матричное представление :
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|||
М1 = |
0 |
0 |
0 |
0 |
0 |
М2 = |
0 |
0 |
0 |
0 |
1 |
............М32 = |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Двухкомпонентные подпространственные коды с параметрами (n, d, ттг) = (8, 6, 3) состоят из 33 матриц Ct, (г = (1, 33) размера 3 х 8.
Для краткости записи кодовых матриц представим строки матрицы в виде двоичных чисел и переведём в десятичный вид. Например, запись кодовой матрицы
C2 =
представим в виде C2 = (129, 66, 36), где каждое десятичное число - это число, соответствующее двоичному представлению строки матрицы - первой, второй, третьей. Запись сообщения второй компоненты C33 = (4, 2,1) соответствует матрице
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
C33 = |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
C1 = (128, 64, 32) |
C2 = (129, 66,36) |
C3 = (130, 68,40) |
C4 = (132,72,48) |
C5 = (136, 80, 37) |
C6 = (144, 68,42) |
C7 = (133, 74,52) |
C8 = (138,84,45) |
C9 = (148,77, 58) |
C10 = (141, 88,49) |
Cn = (154, 81, 39) |
C12 = (145, 71, 46) |
C13 = (137, 78,60) |
C14 = (142,92, 61) |
C15 = (156, 93, 63) |
C16 = (157, 95, 59) |
C17 = (159,91,51) |
C18 = (155,83,35) |
C19 = (147,67,38) |
C20 = (131, 70, 44) |
C21 = (134, 76, 56) |
C22 = (140,88, 53) |
C23 = (152, 84,47) |
C24 = (149, 79, 62) |
C25 = (141, 94, 57) |
C26 = (158,89, 55) |
C27 = (153,87,43) |
C28 = (151, 75, 54) |
C29 = (139, 86,41) |
C30 = (150, 73, 50) |
C31 = (137,82, 33) |
C32 = (146, 65,34) |
C33 = (4, 2,1) |
3. Модель канала и определение префикса
Принимаем модель канала в виде
У = АХ + Eont, где У - принятое сообщение, А - матрица случайных коэффициентов, Eout - матрица внешних ошибок, Х = [Z М] - информационная матрица как конкатенация единичной матрицы (префикс) и матрицы рангового кода или X = [О... I] - конкатенация нулевой матрицы и единичной.
Представим матрицу внешних помех Eout в виде конкатенации Eout = [Ei Е2], г де Ei суммируется с префиксом, а Е2 суммируется с остальной частью матрицы-сообщения.
-
• Если передано сообщение из первой компоненты, то
У = [А + Е1 АМ + Е2].
• Если передано сообщение из первой компоненты, то
4. Ранговый и числовой критерии
У = [O...I ]+ Eout = [Ei (O...I + Е2)].
На первом шаге декодирования надо определить префикс - это единичная или нулевая матрица. Это равнозначно определению компоненты: если единичная, то первая компонента, если нулевая матрица, то это вторая, то есть дополнительная компонента.
Для первого шага декодирования рассматриваем только префикс. Если передавалась первая компонента, то префикс принятого сообщения У1 = А + Ei = Ед или префикс У = 0 + Ei = Ei, если передавалась вторая компонента, где Ед - суммарная шумовая матрица первой компоненты, Ei - шумовая матрица второй компоненты. Единичные элементы в каждой из матриц Ед и Ei считаем ошибками, так как они искажают передаваемые сообщения. Считаем их независимыми. Пусть рд - вероятность символа «1» и qд = 1 — рд - вероятность символа «0» для матрицы Ед и соответственно р, q для Ei.
Поскольку сложение по модулю два, то сложение одноимённых символов даёт нулевой символ, а сложение разноимённых символов даёт единичный символ. Ввиду независимости вероятности символов единичного префикса равны рд = 2pq и qд = р2 + q2. Приведём значения р. q 11 соответствующие значения рд. qд.
р |
0 |
0.001 |
0.01 |
0.02 |
0.03 |
0.04 |
0.05 |
0.1 |
0.2 |
0.3 |
q |
1 |
0.999 |
0.99 |
0.98 |
0.97 |
0.96 |
0.95 |
0.9 |
0.8 |
0.7 |
рд |
0 |
0.001998 |
0.0198 |
0.0392 |
0.0582 |
0.0768 |
0.095 |
0.18 |
0.32 |
0.42 |
qд |
1 |
0.998002 |
0.9802 |
0.9608 |
0.9418 |
0.9232 |
0.905 |
0.82 |
0.68 |
0.58 |
Как видно из этих данных, при очень хороших каналах, когда q близко к единице, вероятность символа-ошибки «1» в единичной матрице почти вдвое больше, чем в нулевой матрице. Далее с ухудшением канала (увеличением р) отношение уменьшается и при р = 0.5 становится равным единице.
В работе [6] предложен ранговый критерий определения компонент. Если ранг префиксной матрицы больше половины длины диагонали, то считается, что передавалось сообщение с единичным префиксом, в противном случае - с нулевым префиксом. Здесь мы введём ещё один критерий - по числу единиц на диагонали префиксной матрицы. Если число единиц больше половины длины диагонали, то считаем, что передавалось сообщение с единичным префиксом, в противном случае - с нулевым префиксом.
В нашем коде префиксная матрица имеет размер 3 х 3. В этом случае по ранговому критерию значения ранга 0 или 1 характеризует нулевой префикс. Если ранг 2 или 3, то считаем, что единичный префикс. По числовому критерию аналогично. Если число единиц на. диагонали 0 пли 1. то считаем, что префикс - нулевая матрица: если число единиц 2 или 3, то префикс - единичная матрица.
Возможное число единиц-ошибок v в такого размера матрице может быть от v = 0 до v = 9. Вероятноеть события v = г есть Сд ргф9-г. При значениях v = 0 и v = 1 ошибок в определении компоненты нет. Вероятность правильного определения в этих двух случаях Р (0) + Р (1) = q9 + 9pq8.
Пример 1. Пусть р = 0.1 ^ Р (0) + Р (1) — 0.775. Это значит,что при каждом из используемых критериев имеем правильный ответ в более чем трех четвертях ситуаций для канала с р = 0.1. Такой канал в приложениях считается среднего качества.
Пример 2. Пусть р = 0.01 ^ Р (0) + Р (1) — 0.9965. Абсолютно безошибочная передача идёт почти постоянно, т.е. в более 99 процентов случаев. В этом случае качество канала считается очень хорошим.
В других случаях при р > 0.2 ^ Р (0) + Р (1) < 0.44, т.е. имеем максимум 44 процента случаев абсолютно безошибочного декодирования. Считается, что такой канал плохого качества. Для совсем плохого канала ( р = 0.5) вероятность безошибочной работы декодера Р (0) + Р (1) — 0, 0195, то есть около лишь двух процентов времени абсолютно безошибочного декодирования.
Покажем, что события с v > 2 вызывают ошибки при определении компонент.
Например, при р = 0.1 имеем вероятность Рг собьітия v = г такова
г |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
Рг |
0.3874 |
0.3874 |
0.1721 |
0.0446 |
7•10-4 |
1 •10-6 |
6•10-9 |
Как видно из этих данных, вероятность суммы событий v = 0, v = 1, v = 2, v = 3 равна S = 0.3874 + 0.3874 + 0.1721 + 0.0446 = 0.991. Ввиду большого значения этой вероятности ограничимся событиями v < 3.
Рассмотрим подробно ситуации, когда число единичных символов в префиксных матрицах v = 2. Вс его С2 = 36 таких событий. Записываем 36 нулевых матриц с двумя единичными элементами-ошибками и столько же единичных матриц с двумя ошибками. Определяем ранг каждой матрицы и число единиц на диагонали.
Применяем два критерия: ранговый и числовой. Ранговый критерий считает, что ранг О или 1 означает, что передавалась нулевая префиксная матрица; ранг 2 или 3 означает, что передавалась единичная префиксная матрица. Числовой критерий подсчитывает число единиц на главной диагонали префиксной матрицы. Аналогично, если число 0 или 1, то числовой критерий считает, что передавалась нулевая префиксная матрица; если 2 или 3, то единичная матрица.
Оказалось, что среди 36 нулевых матриц ранг больше или равен 2 имеют 18 матриц, то есть ошибок 50 процентов. Учтём вероятность события v = 2, равную С^рг^9-г, что при р = 0.1 равна 0.1721, то есть вклад в общую ошибку определения нулевой компоненты есть ОЦ721 = 0.08605. Среди такого же числа единичных матриц ранг меньше 2 имеют 12 матриц, то есть ошибок одна треть. Учтём вероятность 0.1721 и получим вклад в общую ошибку О -1?21 = 0.0574. По критерию числа единиц на диагонали нулевая матрица имеет 3 ошибочных решения, столько же ошибочных решений, то есть 3 у единичной матрицы, то есть вклад в общую ошибку одинаков и равен 0 ' 12 21 — 0.0143. Таким образом, для этого случая ранговый критерий даёт большую ошибку для нулевой матрицы, и она больше, чем для единичной матрицы. Критерий числа единиц даёт одинаковые ошибки для обеих матриц, и они меньше, чем при ранговом критерии.
Теперь таким же образом найдём ошибочные решения в случае v = 3. Вс его С3 = 84 события с v = 3, вероятность каждого такого события р3д6. Подсчитаем ошибки для каждого из критериев и для каждой из префиксных матриц.
Как и в предыдущем случае, записываем все 84 нулевых матрицы с тремя ошибками и столько же единичных матриц с таким же числом ошибок. Находим ранг и число единиц на диагонали каждой матрицы. Оказалось, что среди 84 нулевых матриц ранг больше или равен 2 имеют 79 матриц. Относительная ошибка 79/84 = 0.940, то есть очень большое число случаев неправильного определения дополнительной компоненты. При р = 0.1 вероятность события с тремя единицами-ошибками в матрице равна 0.0446, так что вклад в общую ошибку равен 0.0446 х 0.940 = 0.41924. Среди такого же числа единичных матриц ранг меньше 2 имеют 17 матриц. Относительная ошибка 17/84 = 0.202, то есть примерно одна пятая часть случаев неправильного определения. Здесь вклад в общую ошибку равен
0.0446 х 0.202 = 0.0901. По критерию числа единиц на диагонали нулевая матрица имеет 21 ошибочное решение из 84 матриц, единичная матрица имеет 23 ошибочных решения из того же количества матриц, то еств относительное число ошибок в нулевой матрице 21/84 = 0.250, в единичной матрице 23/84 = 0.275. Вклад в общую ошибку для нулевой матрицы 0.0446 х 0.25 = 0.0112 для единичной матрицы 0.0446 х 0.275 = 0.0123. Эти цифры не так сильно отличаются, как при ранговом критерии.
Для примера эти данные представим в виде таблицы для относительно хороших каналов, для которых 0.01 < р < 0.15.
Для нулевой матрицы:
Р |
0 |
0.01 |
0.05 |
0.1 |
0.15 |
|
едо |
0 |
0.0018 |
0.0392 |
0.1553 |
0.2610 |
|
ed0 |
0 |
0.0003 |
0.0072 |
0.0280 |
0.0607 |
|
ро |
— |
6 |
5.44 |
5.55 |
4.30 |
|
Для единичной матрицы: |
||||||
р |
0 |
0.01 |
0.05 |
0.1 |
0.15 |
|
РА |
0 |
0.0198 |
0.095 |
0.18 |
0.255 |
|
eRI |
0 |
0.0011 |
0.0217 |
0.0588 |
0.0880 |
|
edi |
0 |
0.0012 |
0.02536 |
0.0855 |
0.1619 |
|
рі |
— |
1.09 |
1.17 |
1.45 |
1.84 |
В этой таблице введены следующие обозначения: р - вероятность ошибки (единицы в префиксной нулевой матрице); рд - вероятность ошибки (единицы в префиксной единичной матрице); е до,еді - вероятность ошибки при использовании рангового критерия; EdoЕаі - вероятность ошибки при использовании числового критерия; ро,тц - отношение числа ошибок декодирования рангового критерия к такому же числу для числового критерия.
Анализируя данные обеих таблиц, отмечаем, что с увеличением вероятности искажения символов (ухудшением сетевого канала) увеличиваются вероятности ошибок в определении компонент как при ранговом, так и при числовом критерии. Для нулевой матрицы числовой критерий значительно более эффективный, чем ранговый критерий: отношение ошибок для рассматриваемых каналов в 4-6 раз меньше. Чем лучше канал (меньше р), тем более эффективен числовой критерий. Для единичной матрицы более эффективен ранговый критерий, хотя его эффективность рі по отношению к числовому критерию не превышает 2.
5. Ранговое декодирование
Предположим, что на первом шаге декодирования определена вторая компонента. Тогда сразу выносим решение,что передано сообщение
Если на первом этапе определён префикс в виде единичной матрицы, то переходим ко второму шагу декодирования, когда сообщение передаётся ранговому декодеру. Рассматриваем случай, когда число строк передаваемой матрицы и принятой матрицы одинаковы. Это означает, что нет стираний, возможны только ошибки. Применяем алгоритм рангового декодирования для этих условий [4]. Удалив префикс, передаём возможно искажённую ранговую матрицу М раз мера 3 х 5 ранговому декодеру. Есть две причины искажений: во первых, умножение передаваемой матрицы М на случайную матрицу А в случайном сетевом канале, во-вторых, сложение со второй частью Е2 размера 3 х 5 внешней шумовой матрицы. В результате искажённая ранговая матрица М может быть представлена в виде
М = м + Mirest, где Mrest - матрица ошибок. Для нас важен ранг р этой матрицы. Наш двухкомпонентный код имеет подпространственное расстояние dr = 3, значит, он умеет исправлять только одиночные ранговые ошибки по условию (d’'- 1) = 1 [5].
Предположим, что сообщение передаётся как кодовый вектор вида v = М8 = [а5 а6 а7] .(2)
При передаче добавлена ошибка е ранга 1 в виде вектора е = [1 0 1] .(3)
Тогда на принимающей стороне имеем сообщение у = v + е = [а5 а6 а7] + [1 0 1] = [а2 а6 а22].
Задача декодирования состоит в том, чтобы найти передаваемое сообщение v. Для этого надо найти вектор ошибки е.
Имеем:
полученное сообщение у = [а2 а6 а22] , порождающую матрицу из (1)
G = (1 а а2) .
Теперь находим проверочную матрицу
ГҺ1 ^2 Һ3І
Н = к ^2 Һ3\ из уравнения: GHт = 0.
{
Получим систему уравнений:
Һ1 + аҺ2 + а2Һз = 0, Г Һ1 + аҺ2 + а2Һз = 0, ( Һ1 + аҺ2 + а2Һз = 0, Һ1 + аҺ2 + а2һ3 = 0 [ (а2 + а) Һ2 + (а4 + а2)Һ2 = 0 [ Һ3 = а6Һ2. Положим Һ2 = а. Тогда Һ3 = а7, Һ1 = а24. Проверочная матрица имеет вид
H =
а24 а а7 а17 а2 а14
Так как dr = 3 , то ошибка ранга 1 имеет вид е = еі [пі П2 пз] , где еі G GF(25), щ G GF(2). Вычисляем синдром s:
s = уН т = (v + е)Н т = еН т = [s0 s1] = [а6 а12] =
= е1 [а24п1 + ап2 + а7пз а17п1 + а2п2 + а14пз] = е1 [ж1 ж^] , где ж1 = а24п1 + ап2 + а7пз.
Приравняем соответствующие компоненты синдрома. Получим систему основных синдромных уравнений:
( а6 = so = е1x1, [ а12 = si = е1x1.
D s1 6 S0
И этом случае xi = — = а6, еі = — = 1.
so xi
Находим xi = а6 = а24^ + ап2 + а7пз.
Вектор ошибки равен е = [1 0 1] .
Кодовый вектор равен v = у + е = [а2 а6 а22] + [1 0 1] = [а2 + 1 а6 + 0 а22 + 1] = [а5 а6 а7] .
Этот кодовый вектор v передан в формуле (2), то есть решение правильное.
6. Заключение
В этой работе представлено двухшаговое декодирование двухкомпонентного кода на примере подпространственного кода-спреда (8, 6, 3). В этом коде всего 33 сообщения, из которых 32 сообщения относятся к первой компоненте и одно сообщение относится к второй компоненте.
На первом шаге определяется компонента. Для этого определяется префикс сообщения. Если префикс единичная матрица, то сообщение принадлежит первой компоненте. Если префикс нулевая матрица, то сообщение принадлежит второй компоненте. Из-за шумов в канале передаваемое сообщение может быть искажено, в том числе и префикс. Определение префикса - это важная часть процедуры декодирования. Так как при неправильном определении префикса ошибку декодирования в последующем исправить не удастся.
Ранее для определения префикса применялся ранговый критерий. Если ранг префиксной матрицы больше (или равен) половине диагонали префикса, то считалось, что префикс - единичная матрица, в противном случае - нулевая матрица. Здесь применён новый и очень простой числовой критерий, при котором считается число единиц на диагонали префиксной матрицы. Если это число больше половины диагонали, то считается, что префикс единичная матрица, в противном случае нулевая. Произведено сравнение обоих критериев и показано, что числовой критерий является более эффективным: если в сообщении единичная матрица, то вероятность ошибки примерно та же, что и у рангового критерия; если нулевая матрица, то вероятность ошибки при числовом критерии меньше, чем при ранговом критерии. Рекомендовано использовать числовой критерий.
На втором шаге декодирования определяется конкретное сообщение. Если оно относится к первой компоненте, то после отделения префикса сообщение-матрица рангового кода передаётся на ранговое декодирование. Применяется стандартный синдромный алгоритм. Если условия определения ошибок выполнены, то есть ранг матрицы ошибки меньше или равен ^У-1 (где dr - ранговое расстояние кода), то декодер исправляет ошибки. Если больше d r - i , то декодер объявляет отказ от декодирования.
Заметим, что в нашем коде всего одно сообщение из 33 имеет нулевой префикс. Поэтому, если источник генерирует свои сообщения с равной вероятностью, то большого отличия в использовании рангового или нулевого критерия не происходит. Другое дело, если мы используем многокомпонентный код, где много раз используются дополнительные компоненты. Кроме того, источник сообщений даже в случае двухкомпонентного кода может специально чаще других использовать сообщение с нулевым префиксом. И в этом случае числовой критерий окажется более эффективным, чем ранговый критерий. К тому же числовой критерий технически легче осуществим.
Список литературы Декодирование двухкомпонентных подпространственных кодов
- Silva D., Koetter R., Kschischang F. A Rank-Metric Approach to Error Control in RandomNetwork Coding // IEEE Trans. Inform. Theory. 2008. V. 54, N 9. P. 3951-3967.
- Gabidulin E.M., Bossert M. Codes for Network Coding // Proc. 2008 IEEE Int. Sympos. OnInformation Theory (ISIT'2008). Toronto, Canada. July 6-11, 2008. P. 867-870.
- Габидулин Э.М. Теория кодов с максимальным ранговым расстоянием // Проблемы передачи информации. 1985. Т. 21, вып. 1. С. 3-16.
- Габидулин Э.М., Пилипчук Н.И., Боссерт М. Декодирование случайных сетевых кодов // Проблемы передачи информации. 2010. Т. 46, вып. 4. С. 33-55.
- Габидулин Э.М. Лекции по алгебраическому кодированию. Москва. МФТИ. 2015.
- Габидулин Э.М., Пилипчук Н.И.,Колыбельников А.И., Уривский А.В., Владимиров С.М., Григорьев А.А. Сетевое кодирование // Труды МФТИ. 2009. Т. 1, № 2. С. 3-28.