Научная статья на тему 'Коды в гранично-ранговой метрике'

Коды в гранично-ранговой метрике Текст научной статьи по специальности «Математика»

CC BY
79
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАНИЧНО-РАНГОВАЯ МЕТРИКА / СИСТЕМА ПАРАЛЛЕЛЬНЫХ КАНАЛОВ / ГРАНИЧНО-РАНГОВОЕ РАССТОЯНИЕ / ГРАНИЧНЫЙ РАНГ / РЕШЕТЧАТАЯ КОНСТРУКЦИЯ / КОНЕЧНОЕ ПОЛЕ / ДВОИЧНАЯ МАТРИЦА / ПРОВЕРОЧНАЯ МАТРИЦА / ПОРОЖДАЮЩАЯ МАТРИЦА / TERM RANK METRIC / PARALLEL CHANNEL SYSTEM / TERM RANK DISTANCE / FINITE FIELD / BINARY MATRIX / PARITY CHECK MATRIX / GENERATOR MATRIX

Аннотация научной статьи по математике, автор научной работы — Фам Л. Х.

Рассматриваются коды с гранично-ранговым расстоянием. Эти коды могут использоваться для исправления ошибок строк и столбцов в (M × N) матрице. Эти ошибкимогут быть найдены в массивах микросхем памяти, в записи магнитной ленты или в системе параллельных каналов связи с помехами. В данной работе речь пойдет о конструкции ранговых кодов. В статье описаны коды в гранично-ранговой метрике, исправляющие одиночные решетчатые ошибки, и построены порождающая матрица и проверочная матрица для гранично-ранговых кодов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Codes in the term rank metric

This paper investigates codes with term rank distance. These codes can be used to correct row and column errors in the (M × N ) matrix. These errors can be found in memorychip arrays, magnetic tape recordings or in the parallel channel system with interference. In this paper, we discuss the new construction of boundary rank codes. This paper describes the single error correcting codes in the term rank metric and create a generator matrix and a parity check matrix for term rank codes.

Текст научной работы на тему «Коды в гранично-ранговой метрике»

УДК 621.391

Л. X. Фам,

Московский физико-технический институт (национальный исследовательский университет)

Коды в гранично-ранговой метрике

Рассматриваются коды с гранично-ранговым расстоянием. Эти коды могут использоваться для исправления ошибок строк и столбцов в (М х N) матрице. Эти ошибки могут быть найдены в массивах микросхем памяти, в записи магнитной ленты или в системе параллельных каналов связи с помехами. В данной работе речь пойдет о конструкции ранговых кодов. В статье описаны коды в гранично-ранговой метрике, исправляющие одиночные решетчатые ошибки, и построены порождающая матрица и проверочная матрица для гранично-ранговых кодов.

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

L. Н. Pham

Moscow Institute of Physics and Technology

Codes in the term rank metric

This paper investigates codes with term rank distance. These codes can be used to correct row and column errors in the (M х N) matrix. These errors can be found in memorychip arrays, magnetic tape recordings or in the parallel channel system with interference. In this paper, we discuss the new construction of boundary rank codes. This paper describes the single error correcting codes in the term rank metric and create a generator matrix and a parity check matrix for term rank codes.

Key words: term rank metric, parallel channel system, term rank distance, finite field, binary matrix, parity check matrix, generator matrix.

1. Введение

В некоторых приложениях возникает следующая проблема ошибок: Информационные символы должны храниться в (М х Ж) массивах. Некоторые из этих символов по ошибке записаны таким образом, что все искаженные символы находятся в одном или нескольких строках или столбцах (или обоих). Мы называем такие ошибки как ошибки решетчатой конфигурации. На рис. 1 показана схема ошибки решетчатой конфигурации, все искаженные символы сосредоточены в трёх столбцах и двух строках. Эти ошибки решетчатой конфигурации могут быть найдены в массивах микросхем памяти [1-3] или в записи магнитной ленты [4-6].

В системе параллельных каналов связи с помехами можно рассматривать каждое сообщение как двоичную матрицу с размером М х Ж, где число каналов равно М, длительность передачи по каждому из каналов равна N. Систему можно детализировать более подробно, как показано на рис. 2. Для передачи данных во всех каналах используются двоичные сигналы. В процессе передачи сообщений возникают различные специфические ошибки. Ошибки возникают в столбцах матрицы сообщения, когда в некоторые моменты времени встречаются импульсные помехи. Когда в одном или нескольких каналах появляются медленные замирания сигналов и узкополосные помехи, то ошибки возникают в строках [7].

© Фам Л. X., 2019

(с) Федеральное государственное автономное образовательное учреждение высшего образования

«Московский физико-технический институт (национальный исследовательский университет)», 2019

Рис. 1. Схема ошибки решетчатой конфигурации

Рис. 2. Система параллельных каналов связи с помехами

Э.М. Габидулиным [7], [8] были введены храничные коды, исправляющие ошибки решетчатой конфигурации. Коды могут исправить ошибочные строки и столбцы.

Пусть у = V + е, где V - кодовая матрица, у - полученная матрица, е - матрица ошибки. Пусть граничный ранг р(е) = 2, и предположим, что матрица е

е =

/0 0 1 0 \0

0 0 1

0 0

Легко заметить, что искаженные символы сосредоточены в третьей строке и втором столб-

В разделе 2 написаны некоторые, в основном известные, важные определения и кодовое расстояние в хранично-ранговой метрике. В разделе 3 описывается конструкция гранично-ранговых кодов, которые были введены Э.М. Габидулиным [7] в 1985 году. В разделе 4 рассматриваются коды, исправляющие одиночные решетчатые ошибки. Для этого случая приведём пример кода (4, 2, 3), исправляющего ошибочный столбец в разделе 5.

2. Гранично-ранговое расстояние

Граничный ранг р(А) двоичной матрицы определяется как минимальное число линий (строк и столбцов), в которых содержатся все ненулевые элементы матрицы [7], [10]. Максимальный граничный ранг равен, очевидно,

И = тах |А| = шт(т, п).

А.

Расстоянием между матрицами А1 и А2 называется граничный ранг их разности:

¿(¿1,^2) = Р(^1 - ¿2).

Произвольное множество (т х п)-матриц С = С(т,п) = А\,А2,...,Ам называется кодом мощности М. Кодовое расстояние равно, по определению, минимальному из попарных расстояний между элементами кода:

d = min p(ki - Aj). (1)

Гранично-ранговое расстояние имеет все свойства обычного расстояния [9]:

1) d(A,B) = 0 о А = В;

2) d(A, С) + d(C, В) > d(A, В) - неравенство треугольника;

3) d(B, А) = d(A, В) - свойство симметричности.

Первое и третье свойства получены из отмеченного выше соотношения

d(A, В) = р(А - В) = р(В - А).

Аналогично

d(A,C) + d(C,B) =

= р(А - С) + р(С - В) > р((А - С) + (С - В)) =

= р(А - В) = d(A - В).

Таким образом, второе свойство расстояния доказано. Скорость кода определяется отношением

log2 М

R =

тп

Если кодовое расстояние d(C) = d, то существует способ декодирования этого кода, исправляющего все решетчатые конфигурации ошибок, в которых граничный ранг не превышает величину £ = — 1)/2\.

Если код С имеет гранично-ранговое расстояние d, то для скорости кода выполняется неравенство

* ,. — ^.

Код, имеющий длину п, к информационных символов и минимальное гранично-ранговое расстояние называется линейным гранично-ранговым кодом (п,к,(1). Использование слова «гранично-ранговый» подчеркивает способность кода исправлять ошибку в гранично-ранговой метрике.

Здесь существует граница для минимального гранично-рангового расстояния кода, похожего на границы Синглтона для расстояния Хэмминга:

Следствие 1. Если код С является линейным кодом, длины, п, размерности к и гранично-рангового расстояния d, то

к + d <п + 1, п <т; (2)

кт + dп < (т + 1)п, п > т. (3)

Параметры (п, к, d) гранично-ранговых кодов

п т х п

2) Число кодовых векторов или кодовых матриц — 2пк.

3) Кодовое расстояние d = п — к + 1.

4) Код позволяет исправлять ошибки, граничный ранг которых равен или меньше

г = № —1)/2].

3. Конструкция гранично-ранговых кодов

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

и = (и0,..., ир-1), г = 0,... ,к — 1,

где щ,..., ир-1 - информационные символы.

Порождающая матрица кода имеет специальную форму:

G =

^ ы

S Ы

s (9n-1)

S(9i) = ^UjFn,i = 0,... ,n - 1. з=i

Для построения кода (р, fc, d) сначала определим сопровождающую матрицу Fn. Пусть f(х) = xn + fn-ixn-i + ■ ■ ■ + fix + fo примитивный многочлен над полем GF(2). Тогда сопровождающая матрица Fn имеет вид

р =

n

0 1 0 0 0 1

V/o fi ...

0 0

fn-ij

Порождающая матрица С задает код с гранично-роговым расстоянием, не меньшим d, если выполняются условия: граничный ранг любой ненулевой матрицы ^больше и равен Ф.

р(Сг) > й

или

ш1п ¿(Сг — С^) =

Здесь выберем сопровождающую матрицу Рп так, чтобы р(С) > (I. В этом случае код (р, к, д) является линейным.

Код (р, к, (I) состоит из 2пк матриц (§1 ,д2,... ,дпк) над Р2- Порождающие матрицы состоят из пк линейно независимых матриц.

Проверочная матрица Н, задающая код (р, к, й) с гранично-ранговым расстоянием, определяется из условия

Тг(С(Н)т) = 0.

Матрица Н имеет размер п х п. Указанной порождающей матрице соответствует проверочная матрица вида

(4)

где элементы Л-1, Ъ,2,..., Ьп из пол я СР (2).

Проверочные матрицы тоже состоят из пк линейно независимых матриц (Ь,1,Ь,2, . . . , Ь,пк)•

hii hi2 ■ ' hin

h22 ' ■ h2n

H = h3i h32 ■ ■ h3n

hni hn2 ' h hnn

0

1

4. Коды в гранично-ранговой метрике, исправляющие одиночные решетчатые ошибки

Пусть передавалась кодовая матрица V = [ьо ... Уп-г]. Пусть принята матрица у = V + е, где е - матрица ошибки.

ошибки можно представить в виде

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/0 ... 0 ...

...

о

ег

е-п-1

. . . 0 . . . 0

. . . 0

Задача декодера - по известной матрице в найти матрицу ошибки в, а потом получить передававшуюся матрицу V. По построению, кодовая матрица V удовлетворяет равенствам

Тг(у^) =0,1 = 0,..., пк.

Декодирование начинается с вычисления вектора синдрома в:

У = V + в,

Тг (уНт) = Т г (V + еНт), в = Тг (еНт),

(во 81 ... впк) = (го гг ... гпк). (5)

Можно считать, что элементы го, гг,..., гу-г € (дт) линейно независимы над СР(д). Следовательно, уравнение (5) может быть записано в виде

^ г = Тг (у Ъ,1), гг = Тг (е ).

п к п

пых ео, ег,..., еп-г. Важно отметить, что ошибочный столбец или строка ошибки неизвестны. Нужно найти одно решение, удовлетворяющее системе уравнений, потому что каждое решение из системы уранений ео, ег,..., еп-г и го, гг,..., гп-г приводит к одному и тому же вектору ошибки е. Чтобы получить кодовую матрицу V, нужно поставить е в уравнение V = е + у.

5. Пример. Код (4, 2, 3)

Код (4, 2, 3) имеет вид

=

х

у

хР4 + У Р42 хР2 + у р4

(6)

где х = (жо Хг Х2 Х3), у = (уо у г У2 Уз) ~ информационные вектор-строки длины 4. Здесь выберем сопровождающую матрицу Р4 так, чтобы р(С) > 3. А матрица Р4 - сопровождающая матрица многочлена х4 + х + 1:

Р4 =

0100 0010 0001 110 0

е

Код (4, 2, 3) имеет общую формулу:

С =

Х0

Уо Хз + У2 Х2 + Уо + Уз

Дуальный код имеет вид

где а = (а0 а1 а2 аз), Ь = Проверено, что

Х1

У1

Хо + Хз + У2 + Уз Х2 + Хз + Уо + У1 + Уз

Х2 У2

Х1 + Уо + Уз Хо + Хз + У1 + У2

Хз Уз Х2 + У1 Х1 + У2 + Уз,

=

а^4 + Ь^42 + Ь^44 а Ь

Ь1 Ь2 Ьз) - произвольные вектор-строки длины 4.

Тг(С (С ±)т) = 0.

Код С ^^^тоит из 256 матриц над Р2- Порождающие матрицы состоят из 8 линейно независимых матриц, в качестве которых можно выбрать следующие, соответствующие выбору строк оу:

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

91 = 0 1 0 0 ; 92 = 0 0 1 0 ; дз = 0 0 0 1 ; 94 = 1 1 0 0

0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0

0 0 0 0" 0 0 0 0" 0 0 0 0" 0 0 0 0

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

95 = 0 0 1 0 ; 96 = 0 0 0 1 ; 97 = 1 1 0 0 ; 98 = 0 1 1 0

1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 1

Дуальный код состоит из 256 матриц. Для вычисления синдромов потребуется 8 линейно независимых над F2 матриц. Можно выбрать следующие 8 матриц, соответствующих аЬ

Пл =

Ы =

0 0 0 1

0 0 1 0

1 0 0 0

0 0 0 0

0 0 1 0

1 0 0 1

0 0 0 0

1 0 0 0

; Ъ>2 =

; =

1 0 0 1 0 1 0 0

0 0 1 1 ; Ьз = 1 0 0 1

0 1 0 0 0 0 1 0

0 0 0 0 0 0 0 0

0 0 1 1" 1 0 0 1"

1 1 0 1 ; Ь,7 = 0 1 1 0

0 0 0 0 0 0 0 0

0 1 0 0 0 0 1 0

; Ь4 =

; Ы =

0 0 1 0

0 1 0 0

0 0 0 1

0 0 0 0

0 1 0 0

0 0 1 1

0 0 0 0

0 0 0 1

Тестирование: х = (1111), у = (0110)- информационные вектор-строки. Из (9) была передана кодовая матрица:

V =

1 1 1 1

0 1 1 0

0 1 1 0

1 1 0 0

Например матрица ошибки имеет вид:

е =

0 0 1 0

0 0 1 0

0 0 0 0

0 0 1 0

= +

1101 0100 0110 1110

Исправление ошибок

Шаг 1. Вычисление синдромов по 8 матрицам.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ег = Тг(у Н\) = 1; ^ = Тг (уНт2) = 1; 5з = Тг (у Н%) = 0; 54 = Тг (у НЦ) = 1;

5 5 = Тг(у ) = 1; 86 = Тг (у ) = 1; 87 = Тг (у 1%) = 0; в8 = Тг(у к£) = 1.

Шаг 2. Вычисление синдромов предполагаемой ошибки по 8 матрицам. Предполагаемая ошибка

/Уг 0 0 0\ У> 0 0 0 Уз 0 0 0 000/

У =

Расположение неправильное, так как:

Уг = Тг(УН\) = Уз; ^ = Тг(УН%) = Уг; ьз = Тг(УЩ) = У2; ^ = Тг(УН\) = 0;

^ = Тг(УНТ5) = У2 + У4; Ь6 = Тг(Ук1) = У2; у7 = Тг(У1$) = Уг; зд = Тг(УН^) = 0.

Сравнивая ы и находим, что система несовместна, так как Уг = 0,Уг = 1.

Шаг 3. Вычисление синдромов предполагаемой ошибки по 8 матрицам. Предполагаемая ошибка

(Шг W2 Шз Ш4\ 0000 0000 0000

Ш =

Расположение неправильное, так как:

Wl = Тг(ШН\) = Ш4; W2 = Тг(ШкЬ ) = Шг+Ш4; wз = Тг(ШН^ ) = Ш2; W4 = Тг(ШН14 ) = Шз;

Т\

\Т\

Е =

W5 = Т г(ШН1) = Шз^б = Тг ) = Шз + Ш4;

W7 = Тг(ШН^) = Шг + Ш4; W8 = Тг(ШН%) =

Сравнивая w¿ и находим, что система несовместна, так как Ш2 = 0,Ш2 = 1-

Шаг 4. Вычисление синдромов предполагаемой ошибки по 8 матрицам. Предполагаемая ошибка

0 0 Ег 0 0 0 Е2 0 0 0 Ез 0 0 0 Е4 0

Расположение правильное, так как:

Ь = Тг(ЕН[) = Е2; ¿2 = Тг(ЕН\) = Е2; ¿з = Тг(ЕН1) = Ез; ¿4 = Тг(ЕНТ±) = Ег;

¿5 = Тг(ЕН1) = Ег; ¿в = Тг(ЕН^) = Ег; ¿7 = Тг(ЕН^) = Е2 + Е4; ¿8 = Тг(.ЕН$) = Е2.

Сравнивая ^ и вг, находим Ег = 1, Е2 = 1, Ез = 0, Е4 = 1. Ошибка найдена правильно. Кодовая матрица равна:

V

у+е

1101 0100 0110 1110

+

0010 0010 0000 0010

1111 0 110 0 110 \1 1 0 0)

6. Заключение

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

Автор выражает благодарность профессору Э.М. Габидулину за замечания, которые способствовали улучшению статьи.

Литература

1. Levine L., Meyers W. Semiconductor memory reliability with error detecting and correcting codes // Computers, 9. 1976. P. 43-50.

2. Chen C.L., Hsiao M.Y. Error-Correcting Codes for Semiconductor Memory Applications: A State-of-the-Art Review // IBM Journal of Research and Development. 1984. 28. P. 12 I 134.

3. Mikhail W.F., Bartoldus R.W., Rutledge R.A. The reliability of memory with single-error correction 11 IEEE Trans, on Computers. 1983. 31. P. 560-564.

4. Blaum M., McEliece R.J. Coding protection for magnetic tapes: A generalization of the patel-hong code // IEEE Trans. Inf. Theory. 1985. IT 31. P. 690-693.

5. Cideciyan R.D., Furrer S., Lantz M.A. Product Codes for Data Storage on Magnetic Tape 11 IEEE Transactions On Magnetics. 2017. V. 53, N 2. P. 1-10.

6. Prunsinkiewicz P., Budkowski S. A double track errorcorrection code for magnetic tape // IEEE Trans, on Computers. 1976. 25. P. 642-645.

7. Габидулин Э.М.,Коржик В.И. Коды, исправляющие ошибки решетчатой конфигурации // Изв. вузов. Радиоэлектроника. 1972. Т. 15, вып. 2. С. 492-498.

8. Габидулин Э.М. Оптимальные коды, исправляющие ошибки решетчатой конфигурации // Пробл. передачи информ. 1985. Т. 21, вып. 2. С. 103-108.

9. Габидулин Э.М. Лекции по алгебраическому кодированию. Москва : Наука, 2015. С. 62.

10. Paterson М.В., Stinson D.R., Wei R. Combinatorial batch codes // Adv. Math. Communications. 2009. 3. 2009. P. 13-17.

References

1. Levine L., Meyers W. Semiconductor memory reliability with error detecting and correcting codes. Computers, 9. 1976. P. 43-50.

2. Chen C.L., Hsiao M. Y. Error-Correcting Codes for Semiconductor Memory Applications: A State-of-the-Art Review. IBM Journal of Research and Development. 1984. 28. P. 124-134.

3. Mikhail W.F., Bartoldus R.W., Rutledge R.A. The reliability of memory with single-error correction. IEEE Trans, on Computers. 1983. 31. P. 560-564.

4. Blaum M., McEliece R.J. Coding protection for magnetic tapes: A generalization of the patel-hong code. IEEE Trans. Inf. Theory. 1985. IT 31. P. 690-693.

5. Cideciyan R.D., Furrer S., Lantz M.A. Product Codes for Data Storage on Magnetic Tape. IEEE Transactions On Magnetics. 2017. V. 53, N 2. P. 1-10.

6. Prunsinkiewicz P., Budkowski S. A double track errorcorrection code for magnetic tape. IEEE Trans, on Computers. 1976. 25. P. 642-645.

7. Gabidulin E.M., Korzhik V.I. Codes that correct lattice configuration errors. Izv. vuzov. Radioelektronika. 1972. N 15, V. 4. P. 492-498. (in Russian).

8. Gabidulin E.M. Optimal codes that correct lattice configuration errors. Prob. transfer infor. 1985. N 21, V. 2. P. 103-108. (in Russian).

9. Gabidulin E.M. Lectures on algebraic coding. Moscow : Nauka, 2015. P. 62. (in Russian).

10. Paterson M.B., Stinson D.R., Wei R. Combinatorial batch codes. Adv. Math. Communications. 2009. 3. P. 13-17.

Поступим в редакцию 22.04-2019.

i Надоели баннеры? Вы всегда можете отключить рекламу.