Научная статья на тему 'Построение универсальной методики коррекции ошибок в блоках данных на основе кодов Рида-Соломона'

Построение универсальной методики коррекции ошибок в блоках данных на основе кодов Рида-Соломона Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
122
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
BLOCK CODE / FINITE FIELD / REED-SOLOMON CODES / ERROR CORRECTING CODING SYSTEMS / ALGEBRAIC CODING THEORY / MODULAR ARITHMETIC / ERROR-LOCATOR POLYNOMIAL / БЛОЧНЫЙ КОД / КОНЕЧНОЕ ПОЛЕ / КОД РИДА-СОЛОМОНА / ПОМЕХОУСТОЙЧИВЫХ СИСТЕМ КОДИРОВАНИЯ / ТЕОРИЯ АЛГЕБРАИЧЕСКОГО КОДИРОВАНИЯ / МОДУЛЯРНАЯ АРИФМЕТИКА / ПОЛИНОМИАЛЬНЫЙ ИНДИКАТОР ОШИБОК

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гарнышев Игорь Николаевич, Казанцев Сергей Владимирович, Мальков Роман Юрьевич, Семенов Иван Дмитриевич, Юдин Степан Вячеславович

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гарнышев Игорь Николаевич, Казанцев Сергей Владимирович, Мальков Роман Юрьевич, Семенов Иван Дмитриевич, Юдин Степан Вячеславович

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

DEVELOPMENT OF UNIVERSAL DATA BLOCKS ERROR-CORRECTING TECHNIQUE BASED ON REED-SOLOMON CODES

The article analyzes the principles of digital data coding and decoding systems based on Reed-Solomon codes development. The proposed generalized scheme for representing Reed-Solomon error correcting codes. The constructed mathematical model of the finite field, which can be used for developing systems for the practical application of the Reed-Solomon code. A universal Reed-Solomon error coding algorithm has been developed, which is based on polynomials with two attributes and error-locator polynomial.

Текст научной работы на тему «Построение универсальной методики коррекции ошибок в блоках данных на основе кодов Рида-Соломона»

DEVELOPMENT OF UNIVERSAL DATA BLOCKS ERROR-CORRECTING TECHNIQUE BASED ON REED-SOLOMON CODES

1 2 3

Garnyshev I.N. , Kazantsev S.V. , Malkov R.Yu. , Semenov I.D.4, Iudin S.V.5 (Russian Federation) Email: Kazantsev336@scientifictext.ru

1Garnyshev Igor Nikolaevich - Network Engineer, DATA NETWORK ADMINISTRATION DEPARTMENT, TINKOFF BANK; 2Kazantsev Sergei Vladimirovich - Senior Engineer, NETWORK DEPARTMENT, SBERBANK; 3Malkov Roman Yurevich - Expert, CLOUD SOLUTIONS DEPARTMENT, TECHNOSERV CLOUD, MOSCOW; 4Semenov Ivan Dmitrievich - Senior Engineer, NETWORK DEPARTMENT, SERVERS.COM LIMASSOL, CYPRUS; 5Iudin Stepan Vyacheslavovich - Network Administrator, DEPARTMENT OF TECHNICAL SUPPORT AND INFORMATION SYSTEMS INFRASTRUCTURE DEVELOPMENT, SPORTMASTER, MOSCOW

Abstract: the article analyzes the principles of digital data coding and decoding systems based on Reed-Solomon codes development. The proposed generalized scheme for representing ReedSolomon error correcting codes. The constructed mathematical model of the finite field, which can be used for developing systems for the practical application of the Reed-Solomon code. A universal Reed-Solomon error coding algorithm has been developed, which is based on polynomials with two attributes and error-locator polynomial.

Keywords: block code, finite field, Reed-Solomon codes, error correcting coding systems, algebraic coding theory, modular arithmetic, error-locator polynomial.

ПОСТРОЕНИЕ УНИВЕРСАЛЬНОЙ МЕТОДИКИ КОРРЕКЦИИ ОШИБОК В БЛОКАХ ДАННЫХ НА ОСНОВЕ КОДОВ РИДА-СОЛОМОНА

1 2 3

Гарнышев И.Н. , Казанцев С.В. , Мальков Р.Ю. , Семенов И.Д.4, Юдин С.В.5 (Российская Федерация)

1 Гарнышев Игорь Николаевич - сетевой инженер, Отдел администрирования сетей передачи данных,

Тинькофф Банк;

2Казанцев Сергей Владимирович - главный инженер, Департамент сетей передачи данных, Сбербанк;

3Мальков Роман Юрьевич - эксперт, Центр компетенций по облачным решениям, Техносерв, г. Москва;

4Семенов Иван Дмитриевич - старший инженер, Департамент сетей передачи данных, Servers.com Лимассол, Кипр;

5Юдин Степан Вячеславович - администратор сети, Департамент технического обеспечения и развития инфраструктуры информационных систем,

Спортмастер, г. Москва 22

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

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

Введение

На сегодняшний день коды Рида-Соломона рассматриваются как базовый подход построения помехоустойчивых систем кодирования и декодирования цифровых данных [1-3]. Коды Рида-Соломона относятся к группе недвоичных циклических кодов, которые позволяют исправлять ошибки в блоках передаваемых данных. Характерно, что элементами кодового вектора являются группы бит, что обуславливает преимущество указанных кодов при построении систем восстановления данных с цифровых носителей, хранилищ архивной информации и помехоустойчивой передачи данных.

Анализ последних исследований и публикаций в данной области позволил обобщить представления о принципах характеризации конечного поля кода Рида-Соломона [3, 4], основах теории алгебраического кодирования [5, 6] и модулярной арифметики [7, 8]. Также рассмотрены методы представления конечного поля в виде полинома [9-11] и построения полиномиального индикатора ошибок [12-14].

Целью работы стало построение комплексной методологии по созданию помехоустойчивых систем кодирования и декодирования на основе кодов Рида-Соломона.

1. Характеризация конечного поля кода Рида-Соломона

На базовом уровне коды Рида-Соломона [3, 4] рассматриваются как помехоустойчивые системы кодирования, предназначенные для работы с конечным алфавитом (finite alphabet), который содержит большое количество элементов, т.н. расширенным алфавитом (large alphabet). При этом, следует отметить, что принципы построения кодов Рида-Соломона лежит в основе теории алгебраического кодирования [3-6], в рамках которой могут быть предложены методы исправления ошибок в блоках оцифрованных данных путем построения соответствующего математического аппарата (рис. 1).

Рис. 1. Диаграмма представления кодов Рида-Соломона как помехо-устойчивых систем кодирования

для расширенного алфавита

Описание кода и методов декодирования, а также конечный алфавит символов являются составными элементами структуры, которая называется конечным полем (finite field). Базовыми операциями для конечного поля являются операции сложения и умножения, которые подчиняются ассоциативным и распределительным правилам (рис. 1). Для построения математического аппарата в данном случае также следует ввести понятие нейтрального элемента как элемента, который оставляет любой другой элемент набора неизменным при применении бинарной операции, в частности элементов «0» и «1». Также, следует отметить, что у элемента «0» есть аддитивная инверсия (additive inverse), т.е. инверсия относительно операции сложения, а у элемента «1» — аддитивная инверсия и мультипликативная инверсия.

Простейший пример конечного поля в рамках предложенной методологии может быть представлен в рамках модулярной арифметики (modular arithmetic) и методики сравнения по модулю [7, 8]. Рассмотрим набор целых чисел [0,1,... i,y,... (/ — 1)] для которого величина / одновременно является как модулем умножения, так и модулем сложения, причем, очевидно, что в данном случае поиск и само обнаружение факта наличия мультипликативных инверсий элементов является нетривиальной задачей. Для ненулевого элемента х можно рассмотреть ряд произведений [0 ■ х, 1 ■ х ... i ■ х,у ■ х,,... (/ — 1) ■ х]. В рамках доказательства от противного рассмотрим тот случай, когда два элемента ряда идентичны по модулю /. В таком случае (i — /) ■ х кратно ш, но это невозможно, поскольку х, как и разница (i — у) меньше ш. Таким образом, произведения различны по модулю ш, и одно из них равно «1». Данный подход наилучшим образом подходит для помехоустойчивого кодирования цифровых данных, в то время как расширение предложенной математической модели актуально только для криптографических задач, что выходит за рамки данной работы. Поскольку в практических приложениях рассматриваются двоичные данные, конечные поля включают в себя 2' элементов.

2. Помехоустойчивое кодирование на базе кодов Рида-Соломона

Конечное поле в математической форме может быть представлено через полином Р (<<) , где < — элемент конечного поля, причем полный набор составляет <2 элементов:

'ВД =/о+Л ■* + ••• + /„,-гт+ ••• + /„

=п«

(1)

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

На основе данного представления конечного поля в виде полинома могут быть определены коды Рида-Соломона [9-11]. Рассмотрим набор элементов х: {х1,х2,..,хп,...хм} конечного поля Р (<<) . Для М < N можно построить полином для Р (<<) причем код Рида-Соломона будет представлен через набор выходных значений, который определяет каждый из переходов через элементы конечного алфавита:

и{р{ц))\{и{х1)-,и{х2) ...,и(хп) ...,и(х„)},

(2)

с учетом выполнения следующего условия М < N < (?

(3)

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

С1 = {А(х1),/1(Х2), .../,(хп), .../,(Хд,)} С2 = {/2О1)./202). .../2(хп), .../2(хЛ.)}

сш = {.fm(?cl}'fm(?c2)'■■■fm(?crд'■■■fm(.xN>)}

см = {/мС^)'/мС^г)' ■■■ fм(xn)> ■■■

(4)

Причем с учетом того, что код Рида-Соломона является линейным кодом, следует отдельно отметить, что:

а1-С1-С1 + а2-С2 + -• - + ач-сч = (д(х1),д(Х2X ...д(хП) ,...д(х ^), (5)

где

а1(а2, ...а, е Р(^)

<3

д(хп) = ^ (ач -/(хп))

(6)

4=1

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

элементов. Таким образом, минимальное расстояние кода Рида-Соломона также может быть определено через N и К: Б = N — К + 1 .

3. Интерполяция при декодировании кодов Рида-Соломона

Математическая форма представления процесса получения приемником информации, может быть выражена в виде вектора г, который является суммой вектора с: {сп} и вектора ошибок, возникающих при декодировании ё, который характеризуется максимальным количеством ненулевых элементов :

(г = с(И,К) + ё(Г)

N-К Т = ——

(7)

Полином Р при этом может быть представлен как функция двух переменных х и у на которую наклатывются соответствующие ограничения [12-14]:

Р = Р0(х) + у ■ Рх(х) ГР(хп,гп) = О [ пё[1;Л/] йед{Р0{х)) < N - Т - 1 с1ед{Р1 (х)) < N - Т - К

(8)

что позволяет ввести граничные значения для степеней обоих полиномов:

(9)

(Ь0 = N ■

Т-1 ■Т-К'

а также на основе системы уравнений (7) граничное значение для суммы степеней обоих полиномов:

Ь = йед{Р0(х)) + йед{Рг(х)) < N - 1

(10)

Таким образом систему уравнений, необходимую для определения полинома, можно сформировать как произведение двух матриц равное нулевой матрице:

ЯХ х Р = 0

(Н)

где

ях =

Х1 *12 ■ хь° гг ' ■х1 .. ■ ■ X^

х| . Ь 0 х2 г2 г2 ■х2 .. ■ г2 ■ х2

хп X2 уЬ0 71 V 'п V 'п ■ хп т • 'п ь хп

хм Ь 0 ■ Хы ■ хм ... г„ ■ х1

(12)

Ро-о Ро-1

р =

rO;Lo

Pl-0 Pl-l

JiM

(13)

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

набора . Поскольку

равенство:

справедливо

и(х) = —

Р0(х) Pi(x)

(14)

Другой подход, который может быть использован при декодировании цифровых данных заключается в получении Р из Р1 ■ {у— и (х) ) . Р1 дает нулевые значения для х, которые соответствуют ошибкам и может быть опеределен как полиномиальный индикатор ошибок (error-locator polynomial).

Выводы

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

• обобщенная схема представления кодов Рида-Соломона как систем кодирования для расширенного конечного алфавита, в рамках которых подразумевается возможность коррекции ошибок;

• математическая модель конечного поля как базы для построения и практического применения кода Рида-Соломона;

• универсальный алгоритм декодирования кодов Рида-Соломона, построенный на основе полинома как функции двух переменных и полиномиального индикатора ошибок.

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

Список литературы /References

1. Sungkar M. & Berger T., 2018. Discrete Reconstruction Alphabets in Discrete Memoryless Source Rate-Distortion Problems. 2018 IEEE International Symposium on Information Theory (ISIT). doi:10.1109/isit.2018.8437835.

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

2. Lei W., Yizhou G., Fucai Z. & Yong W., 2018. The Method to Recognize Linear Block Code Based on the Distribution of Code Weight, 2018 13th APCA International Conference on Control and Soft Computing (CONTROLO). doi:10.1109/controlo.2018.8439758.

3. Stamplecoskie S., 2006. A study of the concatenated Reed Solomon: convolutional coding performance used in WiMAX. Ottawa: Defence R&D Canada. Ottawa.

4. Kythe D.K. & Kythe P.K., 2012. Algebraic and stochastic coding theory. Boca Raton, FL: CRC Press.

5. Berlekamp E.R., 2011). Algebraic coding theory. New Jersey: World Scientific.

6. Neubauer A., Freudenberger Jürgen & Kühn Volker, 2007. Coding theory: algorithms, architectures, and applications. Chichester, England: John Wiley.

27

7. Sato N., 2009. Modular arithmetic. Ottawa: Canadian Mathematical Society = Société mathématique du Canada.

8. Hunter D.J., 2017. Essentials of discrete mathematics. Burlington, MA: Jones & Bartlett Learning.

9. Bierbrauer J.,2018. Singleton bound and Reed-Solomon codes. Introduction to Coding Theory, 71-80. doi: 10.1201/9781482296372-4.

10. Kao M.-Y., 2008. Error-Control Codes, Reed-Muller Code. Encyclopedia of Algorithms, 281281. doi: 10.1007/978-0-387-30162-4_128.

11.Mishra V., 2016. Efficient data administration with reed-Solomon code. International Journal of Scientific Research and Management. doi: 10.18535/ijsrm/v4i12.03.

12. The polynomial method in error-correcting codes. (2016). University Lecture Series Polynomial Methods in Combinatorics, 37-49. doi: 10.1090/ulect/064/04.

13. Caruso F., Orsini E., Sala M. & Tinnirello C., 2017. On the Shape of the General Error Locator Polynomial for Cyclic Codes. IEEE Transactions on Information Theory, 63 (6), 3641-3657. doi: 10.1109/tit.2017.2692213.

14. Lee C.-D., 2011. Weak General Error Locator Polynomials for Triple-Error-Correcting Binary Golay Code. IEEE Communications Letters, 15(8), 857-859. doi: 10.1109/lcomm.2011.060811.110688.

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