рог переменного тока // Науч. проблемы трансп. Сибири и Дальнего Востока. 2009. № 2. С. 315-319.
21. Крюков А.В., Закарюкин В.П., Буякова Н.В. Моделирование электромагнитных полей на железнодорожных станциях // Науч. проблемы трансп. Сибири и Дальнего Востока. 2009. № 1. С. 281-284.
22. Крюков А.В., Литвинцев А.И. Интервальное моделирование аварийных режимов электроэнергетических систем // Системы. Методы. Технологии. 2013. № 4 (20). С. 73-79.
23. Крюков А.В., Закарюкин В.П., Литвинцев А.И. Интервальный метод расчета режимов электроэнерге-
тических систем в фазных координатах // Системы. Методы. Технологии. 2011. № 1 (9). С. 54-62.
24. Свидетельство №2007612771 Рос. Федерация. Fazo-rnrd-Качество - Расчеты показателей качества электроэнергии в системах электроснабжения в фазных координатах с учетом движения поездов : свидет. об офиц. регистр. программы для ЭВМ / Закарюкин В.П., Крюков А.В. ; правообладатель Иркут гос. ун-т путей сообщ. № 2007611837 ; заявл. 10.05.07 ; заре-гистр. 28.06.2007. 1 с.
УДК 519.16: 004.77 Дружинин Владислав Игоревич,
аспирант, Иркутский государственный университет путей сообщения, тел.: (8595)532348, e-mail: 380_010_14@mail.ru Кузьмин Олег Викторович, д. ф.-м. н., профессор, Иркутский государственный университет, тел.: (8595)242226, e-mail: quzminov@mail.ru
КОДЫ РИДА - СОЛОМОНА В СИСТЕМАХ ОБНАРУЖЕНИЯ И ИСПРАВЛЕНИЯ ОШИБОК
ПРИ ПЕРЕДАЧЕ ДАННЫХ
V. I. Druzhinin, O. V. Kuzmin,
REED - SOLOMON CODES IN SYSTEMS ERRORS DETECTING AND CORRECTING
DURING DATA TRANSFER
Аннотация. Рассматривается важнейшее подмножество кодов Боуза - Чоудхури - Хоквингема - коды Рида - Соломона. Проводится сравнение данных кодов, отмечаются преимущества кодов Рида - Соломона. Обсуждается принадлежность выбранных кодов к кодам с максимальным расстоянием. Рассматриваются особенности построения, присущие данным кодам, анализируются основные варианты кодирования, их преимущества и недостатки. Приводятся возможности осуществления ¿-удлинения кодов Рида - Соломона и вариант реализации 3-удлинения. Рассматриваются реализация и общий порядок действий, необходимых для декодирования кодов Рида - Соломона. Обсуждаются возможности данных кодов в области обнаружения и исправления ошибок при передаче данных по каналам связи компьютерной сети. Проводится анализ вероятностей появления ошибок при наложении ряда условий на канал передачи данных. Анализируются зависимости вероятности искажения бита и длины кадра от кратности ошибки, что иллюстрируется графиками зависимости вероятностей искажения. Приводятся формулы для вероятности отсутствия искажения, для вероятности восстанавливаемого искажения и для вероятности невосста-навливаемого искажения. Рассматривается частный случай для этих формул при вероятности искажения бита p = 1/ 2.
Ключевые слова: коды Рида - Соломона, МДР-коды, порождающий полином, проверочная матрица, блок кода, биномиальный закон, вероятность искажения бита.
Abstract. The most important subset of Bose - Chaudhury - Hocquenghem codes Reed - Solomon codes are considered. Comparison of the data of the codes marked advantages of Reed - Solomon codes. The identity of the selected codes to the codes with maximum distance is discussed. The design features inherent in these codes are considered, the basic encoding options, their advantages and disadvantages are analyzed. Reed-Solomon codes k-extension opportunities, and an embodiment of the 3-elongation are provided. The features and the general steps required for Reed - Solomon codes decoding are considered. The features of the data codes in the field of detecting and correcting errors in data transmission over communication channels of a computer network are discussed. The likelihood of errors when imposing certain conditions on the data channel is considered. Bits distortion probability and the length of the frame dependence on the multiplicity of errors is analyzed and illustrated by graphs of the dependence of the probability distortion are given. The formula for the probability of the absence of distortion, the probability of being recovered distortion, and the formula for the probability of unrecoverable distortion. A special case for these formulas in the bit distortion probability p = 1/2 is considered.
Keywords: Reed - Solomon codes, MDR-codes, code seed, test matrix, code block, binomial law, bit distortions probability.
Введение
Одна из наиболее острых проблем в информационных технологиях - это защита данных от разрушения. Как каналы передачи данных, так и носители информации на сегодняшний день (несмотря на все усилия производителей современных аппаратных средств) остаются далекими от совершенства. Кабельные и беспроводные линии передачи информации подвержены воздействию внешних помех, искажающих форму передавае-
мых сигналов и тем самым делающих невозможным однозначное распознавание информации на стороне приемника. Магнитные и оптические носители информации чувствительны к физическим повреждениям, делающим невозможным чтение информации из отдельных участков на поверхности носителя. В такой ситуации особенно актуальным становится применение специальных технологий информационного резервирования, позволяющих как минимум обнаруживать, а как макси-
мум не только обнаруживать, но и исправлять искажения.
В течение большей части второй половины XX века математики и специалисты по аппаратным и программным средствам ЭВМ и проблемам передачи данных упорно бились над тем, чтобы разработать технологию, позволяющую кодировать информацию таким образом, чтобы при разрушении случайно выбранных ее блоков эти блоки можно было восстановить. После того как была заложена математическая основа теории кодирования, разработаны эффективные алгоритмы кодирования и декодирования, технология ближе к концу прошлого века стала более или менее устоявшейся и получила такое широкое распространение, что ее возможностями прямо или косвенно пользуется большинство людей мира, причем многие даже не подозревают о ее существовании.
Одним из таких кодов является код Рида -Соломона. Он может прочитать компакт-диск с множеством царапин либо передать информацию в условиях связи с большим количеством помех. В среднем для компакт-диска избыточность кода (т. е. количество дополнительных символов, благодаря которым информацию можно восстанавливать) составляет примерно 25%. Восстановить при этом можно количество данных, равное половине избыточных. Если емкость диска 700 Мб, то, получается, теоретически можно восстановить до 87,5 Мб из 700. При этом нам необязательно знать, какой именно символ передан с ошибкой. Также стоит отметить, что вместе с кодированием используется перемежевание, когда байты разных блоков перемешиваются в определенном порядке, что в результате позволяет читать диски с обширными повреждениями, локализированными близко друг к другу (например, глубокие царапины), так как после операции, обратной перемежеванию, обширное повреждение оборачивается единичными ошибками во множестве блоков кода, которые поддаются восстановлению.
Этот алгоритм кодирования используется при передаче данных по сетям WiMAX, в оптических линиях связи, в спутниковой и радиорелейной связи. Метод прямой коррекции ошибок в проходящем трафике (Forward Error Correction, FEC) основывается на кодах Рида-Соломона.
1. Коды Рида - Соломона
Коды Рида - Соломона (РС-коды) являются важным частным случаем кодов Боуза - Чоудхури - Хоквингема (БЧХ-коды), корни порождающего
полинома которого лежат в том же поле, над которым строится код т = 1.
Пусть а - элемент поля ОЕ(д) порядка п. Если а - примитивный элемент, то его порядок равен д -1, то есть
ад-1 = 1, а' ф 1, 0 < ' < д -1. Тогда нормированный полином g(x) минимальной степени над полем ОЕ (д), корнями которого являются й — 1 подряд идущих степеней а'0,а'0а10+11—2 элемента а, является порождающим полиномом кода Рида - Соломона над полем ОЕ (д):
g(x) = (х - а'0 )(х - а'0+1).. .(х - а'0+й-2), (1)
где 10 - некоторое целое число (в том числе 0 и 1), с помощью которого иногда удается упростить кодер. Обычно полагается 10 = 1. Степень многочлена g (х) равна й -1.
Длина полученного кода п, минимальное расстояние d. Код содержит г = й -1 = ёе§(g(х)) проверочных символов, где deg() обозначает степень полинома; число информационных символов к = п - г = п - й +1.
Таким образом имеем й = п - к +1 и РС-код является разделимым кодом с максимальным расстоянием (является оптимальным в смысле границы Синглтона [1, с. 226-229]).
Кодовый полином с(х) может быть получен из информационного полинома
m(x),degт(х) < к -1 путем перемножения т(х) и g(х) с( х) = т( х) g (х).
Таким образом, РС-кодом называется БЧХ-
код, если корни ab ,ab+l,
b+S-2
,а его порожда-
ющего полинома
g(х) = g 0 + ^ х +... + gгxr
принадлежат тому же полю ОЕ (д), что и коэффициенты.
Сравнивая данное определение с определением БЧХ-кода [2], видим, что степень т расширения поля ОЕ(дт), которому принадлежат корни порождающего многочлена, удовлетворяет условию т = 1.
Найдем степень минимальной функции элемента, который является корнем порождающего полинома. Так как корни порождающего полино-
ма БЧХ-кода принадлежат полю ОЕ(дт), то они удовлетворяют уравнению хдт-' -1 = 0. По теореме о делителях многочлена хдт-' -х [3, с. 96] степень минимальной функции не превосходит т. Значит, при т =1 степень каждой минимальной функции соответствующего корня а1 порождающего многочлена равна единице и имеет вид х-а'.
Как было сказано выше, РС-код является кодом с максимальным расстоянием, или МДР-кодом.
Теорема 1 [4, с. 225-227]. Код Рида - Соломона есть МДР-код.
Доказательство. Порождающий многочлен БЧХ-кода есть наименьшее общее кратное минимальных функций корней многочлена. В нашем случае это многочлен (1), так как сопряженных корней нет, и разные корни имеют разные и взаимно простые минимальные функции. Таким образом, с одной стороны степень порождающего многочлена равна числу п - к проверочных символов кода, а с другой стороны, она равна й -1 по числу скобок в (1). Поэтому п - к = й-1, и теорема доказана.
Следует отметить причину того, что РС-код лежит на границе Синглтона. Каждый корень порождающего многочлена циклического кода вообще и БЧХ-кода в частности добавляет один проверочный символ, но при этом отнюдь не каждый корень увеличивает кодовое расстояние. Более того, если корни порождающего многочлена над ОЕ (д) принадлежит полю ОЕ (дт ), то при выводе границы информационных символов «закладываются» на максимальное число т сопряженных корней каждой из минимальных функций, входящих сомножителями в порождающий многочлен. Поэтому и получается, что расстояние 2/ +1 требует 2Ш проверочных символов (Ш при д = 2). В случае же РС-кода каждая новая единица кодового расстояния требует в точности одного корня порождающего многочлена, так как т = 1, а потому и в точности одного проверочного символа. Это и означает, что п - к = й -1.
Пример 1. Пусть д = 5, п = д -1 = 4. Мультипликативная группа поля ОЕ(5) - это приведенная система вычетов по модулю 5. Положим а = 2, а2 = 4 - корни порождающего многочлена. Тогда полином можно представить как
g( х) = (х - 2)(х - 4) = 3 - х + х2. Порождающая матрица кода РС будет иметь вид
О =
3 -110 0 3 -11
2. Кодирование кодами Рида - Соломона
Кодирование с помощью РС-кода может быть реализовано двумя способами:
• систематическим,
• несистематическим.
При несистематическом кодировании информационное слово умножается на некий неприводимый полином в поле Галуа [4]. Полученное закодированное слово полностью отличается от исходного, и для извлечения информационного слова нужно выполнить операцию декодирования, а уже потом можно проверить данные на содержание ошибок. Такое кодирование требует больших затрат ресурсов только на извлечение информационных данных.
При систематическом кодировании к информационному блоку из к символов приписываются 21 проверочных символов, при вычислении каждого проверочного символа используются все к символов исходного блока. В этом случае нет затрат ресурсов при извлечении исходного блока, если информационное слово не содержит ошибок, но кодирующее и декодирующее устройство должно выполнять к(п - к) операций сложения и умножения для генерации проверочных символов. Кроме того, так как все операции проводятся в поле Галуа, то сами операции кодирования и декодирования требуют много ресурсов и времени. Быстрый алгоритм декодирования, основанный на быстром преобразовании Фурье, выполняется за время порядка 0(1п(п)2) [5].
Существует и другая процедура кодирования (более практичная и простая).
Теорема 2 [6, с. 226]. Положим а е ОЕ(д), (' = 0,1,..., к -1), аеОЕ(д) и пусть а = (а0,а1,...,ак-1 -1) - вектор информационных символов, а значит, а(х) = а0 + а1 х +... + ак- 1хк-1 - информационный многочлен. Тогда вектором кода РС будет
и = (а(1),а(а),...,а(ад-2)) . (2).
Значение этой теоремы не только и не столько в простоте и практичности процедуры кодирования. Этот способ кодирования показывает, что, имея дело с РС-кодом, можно вполне обойтись без порождающего многочлена с его корнями
корнями многочлена
Ы2( X) будут
при
и без порождающей матрицы. Наоборот, и более того: из самого способа кодирования получаются корни любого кодового многочлена (в том числе и порождающего) РС-кода. Суть в том, что корректирующая способность РС-кода полностью определяется его длиной п и размерностью к. За их разностью п — к полностью скрывается и порождающий многочлен g(x), и кодовое расстояние d.
Однако такая процедура кодирования не сохраняет информационные символы, и код не является систематическим.
Восстановление информационного вектора из кодового вектора содержится в самом доказательстве теоремы 2 (см. [6, а 226]). Действительно, согласно формуле (2), и(а—) = щ для всех г = 0,1,...,к — 1. Заметим, что размерность к кода определяется степенью информационного многочлена а(х) . Отметим, что степени к1 и к2 < к1 двух информационных многочленов, соответственно а1(х) и а2(х), различны. Может показаться, что из доказательства теоремы следует, что кодовые многочлены и (х) и и (х) , отвечающие соответственно многочленам а1(х) и а2(х), принадлежат различным кодам РС. Ведь из доказательства теоремы вытекает, что корнями многочлена и(х) будут а} при , = 1,2,...,q — 1 — кх, а
(3)
няется и алфавит, и принадлежность кода к классу кодов МДР [5, с. 457-459].
Пусть вектор кода РС будет
о = (со,Cl,...,С4 — 2) , тогда порождающий многочлен будет
g (х = (х — а)(х — а2)...(х — ай—'),deg g (х) = = й — 1 = г = п — к, где п = q — 1.
Удлиненный вектор РС-кода имеет вид
и = (Cо, Cl,...,Cq — 2, Cq —1), (4)
q—2
где С4 — 1 = —Е С .
0
Удлинение РС-кода на к символов называется «к-удлинение». Так как проверочная матрица кода РС с порождающим многочленом (3) имеет вид
,2 q—1
н =
а
а
а
а
а
а
2(я—2)
1 а
й—1
а
2(й—1)
а
(й—l)(q—2)
то проверочная матрица Н1 1-удлиненного кода РС будет
г = 1, 2,..., q — 1 — к2 . Один список корней содержится в другом. И коды действительно разные, на самом деле вектор многочлена и2 (х) принадлежит РС-коду размерности к . Однако этот код содержится в другом РС-коде большей размерности к. Такое соотношение между РС-кодами называется вложением РС-кодов.
3. Удлинение кодов Рида - Соломона
«Обычные» БЧХ-коды допускают переход к существенно новым длинам без изменения алфавита. Например, алфавитом может быть поле ОЕ (д), а корни порождающего многочлена принадлежат полю ОЕ(д™), и при этом степень т расширения может расти. С другой стороны, обычные БЧХ-коды не принадлежат к классу МДР-кодов.
РС-коды - это не «обычные» БЧХ-коды и такого удлинения не допускают: стоит существенно увеличить длину q — 1, как немедленно изменится алфавит. Поэтому заслуживает внимания каждое такое удлинение, при котором сохра-
Н =
а
а
—1
а
а
а
q—1
1
а
2^—2) о
г2(й—1)
№—^—2) о
1 ай 1 1) ... а-
Видно, что скалярные произведения 1-удлиненного кодового вектора (4) на все строки матрицы Н, начиная со второй, совпадают со скалярными произведениями этого вектора на все строки матрицы И, так как нуль в конце каждой ее строки вносит в произведение только нулевой вклад. Зато, учитывая с — 1, произведение вектора на первую строку равно в точности
С0 + С1 + ... + С?—2 + С?—1 = С0 + С1 + ... + С?—2
4—2
+2 С =0
0
что и требуется.
С другой стороны, легко убедиться, что любые d столбцов матрицы Н линейно независимы. Действительно, если в число этих d столбцов последний столбец не входит, то они образуют определитель Вандермонда, который отличен от нуля, так как элементы его второй строки различны [7,
с. 235-236]. Если же столбец (00...01)г в число
а
произвольно выбранных d столбцов входит, то разлагая полученный определитель по элементам указанного столбца, получим, что определитель равен своему минору порядка й -1, а он есть снова определитель Вандермонда.
Рассмотрим случай 2-удлинения РС-кодов. Положим, что еще одним символом с будет
д-2
с -1=-У
с а
'(й)
Он заведомо отличен от нуля, так как ай не принадлежит к множеству корней порождающего многочлена и.
Вектором 2-удлиненного РС-кода будет
и"= (c0, С1,... ,Сд-2, Сд ).
Проверочной матрицей 2-удлиненного кода РС будет матрица
11 11 1 10"
Н 2 =
а
а
а
а
а
д-1
а
2(д-2)
1 ай
а
2(й-1)
а
(й-1)(д-2)
1
а
а
а
й (д-2)
00 00
00 00
Как и в случае 1-удлинения, легко видеть, что скалярные произведения 2-удлиненного кодового вектора и" на все строки матрицы Н2 до предпоследней включительно совпадают со скалярными произведениями этого вектора на все строки матрицы Н , так как нули двух последних столбцов в эти произведениях никакого вклада не вносят. Зато произведение вектора Vй на последнюю строку в точности равно
д-2
•й ■ ■ - -й(д-2) = -£са'(й) = 0.
С0 + с1а + ... + сд-2а
Любые й +1 столбцов матрицы Н2 линейно независимы, так как если в число этих й +1 столбцов последние два столбца не входят, то они образуют определитель Вандермонда, который отличен от нуля, так как все элементы его второй строки различны. Если в число этих й +1 столбцов входит только один из двух последних столбцов, то разлагая определитель по элементам этого столбца, найдем, что он равен своему минору порядка d. Но этот минор есть также определитель Вандермонда. Если же в число выбранных й +1 столбцов входят оба последних столбца, то разлагая определитель сначала по элементам одного, а затем и по элементам другого столбца, получим
снова определитель Вандермонда, но теперь уже порядка й -1.
Строение матрицы Н не оставляет места для дальнейших попыток удлинения, так как поместить еще один столбец с одной единицей невозможно. Это препятствие снимается для случая
поля ОЕ(дт ) при к = 3 и к = 2т -1.
Теорема 3 [3, с. 233]. Существуют 3-удлиненные РС-коды с параметрами п = 2т + 2, к = 2т-1, й = 4 и п = 2т + 2, к = 3, й = 2т. т. е. из матрицы РС-кода можно получить проверочную матрицу Н , добавляя к этой матрице два столбца, не увеличивая число строк.
4. Декодирование кодов Рида - Соломона Под декодированием данных кодов понимается преобразование полученного кодового слова в исходное сообщение. РС-коды являются частным случаем БЧХ-кодов, поэтому к ним применимы все методы, используемые для декодирования циклических кодов. Однако существуют алгоритмы, разработанные именно для РС-кодов.
Декодировщик, работающий по авторегрессивному спектральному методу декодирования, последовательно выполняет следующие действия:
• вычисляет синдром ошибки;
• строит полином ошибки;
• находит корни данного полинома;
• определяет характер и исправляет ошибку. Вычисление синдрома ошибки. Вычисление
синдрома ошибки выполняется синдромным декодером, который делит кодовое слово на порождающий многочлен. Если при делении возникает остаток, то в слове есть ошибка. Остаток от деления является синдромом ошибки.
Построение полинома ошибки. Вычисленный синдром ошибки не указывает на положение ошибок. Степень полинома синдрома равна I, что много меньше степени кодового слова. Для получения соответствия между ошибкой и ее положением в сообщении строится полином ошибок. Полином ошибок реализуется с помощью либо алгоритма Берлекэмпа - Месси, либо алгоритма Евклида. Отметим, что алгоритм Евклида имеет простую реализацию, но требует больших затрат ресурсов. Поэтому чаще применяется более сложный, но менее затратоемкий алгоритм Берлекэм-па - Месси. Коэффициенты найденного полинома непосредственно соответствуют коэффициентам ошибочных символов в кодовом слове.
0
0
Нахождение корней полинома. На этом этапе ищутся корни полинома ошибки, определяющие положение искаженных символов в кодовом слове. Реализуется с помощью процедуры Ченя, равносильной полному перебору. В полином ошибок последовательно подставляются все возможные значения; когда полином обращается в ноль, корни найдены.
Определение характера ошибки и ее исправление. По синдрому ошибки и найденным корням полинома с помощью алгоритма Форни определяется характер ошибки и строится маска искаженных символов. Однако для РС-кодов существует более простой способ отыскания характера ошибок [4, с. 130-132]. Для РС-кодов с произвольным
множеством
2t„
последовательных
нУ-
леи a ,a ,...,a = 2td — l,
12—b
_ (ajl )2—b Aja11) el = a'(a—1) , где a' (x) - формальная производная по x многочлена локаторов ошибок a(x),
A( x) = a( x)S (x)mod x2td+1. Далее, после того как маска наИдена, она накладывается на кодовое слово с помощью операции XOR и искаженные символы восстанавливаются. После этого отбрасываются проверочные символы и полУчается восстановленное информационное слово.
Более подробно об алгоритмах декодирования можно узнать, например, в [8].
5. Базовый анализ вероятностей искажений
Информация может искажаться либо при передаче по каналам передачи данных, либо при хранении на каком-либо носителе информации (жесткий диск, оптический диск и т. п.). Для каналов передачи данных, как правило, известна вероятность искажения бита. Данные передаются в виде последовательности битов, и каждый из них может подвергнуться искажению. Здесь мы сделаем (ради упрощения анализа) несколько важных допущений:
• вероятность искажения того или иного бита в том или ином байте в канале передачи данных одна и та же и не зависит от позиции байта в кадре и бита внутри байта;
• канал передачи данных не обладает «памятью», и вероятность искажения очередного передаваемого бита не зависит от того, были ли искажены предыдущие биты;
• вероятность искажения бита не меняется со временем или меняется достаточно медлен_но, и в пределах отрезка времени, требуемо-
го для передачи кадра, вероятность искажения бита можно считать постоянной.
При соблюдении вышеперечисленных условий передачу кадра длины п можно считать последовательностью из п независимых испытаний по передаче отдельных байтов, в свою очередь, в рамках передачи отдельного байта мы имеем дело с последовательностью из 8 независимых элементарных испытаний по передаче отдельных битов. В итоге мы имеем дело с последовательностью из 8п элементарных независимых испытаний, которую мы можем также интерпретировать как п независимых серий по 8 независимых элементарных испытаний в каждой серии. Особо отметим также, что в случае искажения нескольких битов они могут различными способами располагаться внутри кадра, состоящего из п байтов, например 8 искаженных битов могут «уместиться» внутри одного байта, а могут «распылиться» по 8 различным байтам - и это будут принципиально различные ситуации с точки зрения корректирующей способности кодов Рида - Соломона.
Чтобы оценивать вероятности искажения одного, нескольких или всех байтов в кадре на основе информации о базовой вероятности искажения одного бита, мы должны обратиться к математическому аппарату теории вероятностей [9].
Пусть р - заданная вероятность искажения бита. Вероятность того, что байт исказится, равна величине, дополнительной (до единицы) к вероятности того, что ни один бит в байте не исказится:
РЬу. = 1 — (1 — Р)8.
Тогда, согласно биномиальному закону распределения числа искаженных байтов [1], получаем вероятность того, что исказится ровно Н байтов в кадре, состоящем из п байтов, при заданной вероятности р искажения бита:
Р(Т = И) = Снп (1 — (1 — Р)8((1 — Р)8)п—И.
Искаженные биты могут как «попадать» в некоторые байты, так и не «не попадать».
Формула определяет вероятность искажения ровно Н байтов, при условии целостности остальных п — И байтов, во всех подходящих вариантах искажения Х = И, ...,8И битов, при условии целостности остальных 8п — X битов в кадре и условии, что в каждый из Н байтов «попадет» хотя бы один искаженный бит в каждом варианте и также учитываются все сочетания искаженных Н байтов по п байтам в кадре.
Следует особо отметить, что может возникнуть ложная иллюзия, что вероятность ошибок большей кратности (искажения большего числа байтов) меньше вероятности ошибок меньшей
кратности (искажения меньшего числа байтов). В действительности же все зависит от базовой вероятности искажения одного бита и количества байтов в кадре.
При большой вероятности искажения бита и большой длине кадра ошибка большей кратности может быть куда более вероятна, чем ошибка меньшей кратности. Это несложно пояснить: при большой вероятности искажения бита и большой длине кадра среднее количество искаженных битов может быть настолько большим, что они просто «не умещаются» ни в одном, ни в двух, ни даже в большем числе байтов и искажают большое количество байтов в кадре, и именно это наиболее вероятно. Этот «эффект» наглядно виден на графиках (рис. 1) зависимостей вероятности искажения ровно к байтов в кадре длиной п для некоторых значений вероятности р искажения бита.
Как видно из графиков, представленных на рис. 1, только при достаточно малой базовой вероятности искажения бита при заданной длине кадра можно говорить, что ошибки большей кратности менее вероятны, чем ошибки меньшей кратности.
С ростом базовой вероятности искажения бита ситуация меняется, и наблюдаются случаи, когда наиболее вероятны ошибки конкретной кратности, вплоть до крайнего случая, когда наиболее вероятно искажение всех байтов.
Математическое ожидание количества искаженных байтов составляет
п(1 - (1 - pУ).
Теперь, имея формулу для вероятности искажения ровно к байтов в кадре длиной п при заданной вероятности р искажения бита, нетрудно вывести формулы для вероятности отсутствия искажения (Т = 0), вероятности восстанавливаемого искажения (1 < Т < г) и вероятности невосстанав-ливаемого искажения (Т > г) .
Тогда формула для вероятности отсутствия искажения
р(т=0)=с: (1 - (1 - р)8 )0 ((1 - р)8)п-0=(1 - р)8.
Формула для вероятности восстанавливаемого искажения:
ч8\п-к
р(1 < т < г) = X ск (1 - (1 - р)8 )к ((1 - р)8)
к=1
Формула для вероятности невосстанавлива-емого искажения:
ч8\п-к
р(т > г) =Х ск (1 - (1 - р)8)к ((1 - р)8)
к=г+1
Ниже приведены графики (рис. 2) зависимостей вероятности искажения (Т > г) байтов в кадре длиной п байтов для некоторых значений вероятности р искажения бита.
Как видно из графиков, представленных на рис. 2, вероятность невосстанавливаемого искажения существенным образом определяется вероятностью искажения бита. При вероятности искажения бита, близкой к 1/2, вероятность невосстанав-ливаемого искажения близка к единице даже при болылих кратиостях исправляемых ошибок.
Рис. 1. Графики зависимостей вероятности искажения
ровно к байтов в кадре длиной п = 20 байтов для некоторых значений вероятности р искажения бита
Рис. 2. Графики зависимостей вероятности искажения более £ байтов в кадре длиной п = 20 байтов для некоторых значений вероятности р искажения бита
P -1 -
1 byte 1
V
1 - Г'
2 у
255 256'
Тогда вероятность отсутствия искажений
lim P(T - 0) - 1
p^1/2
Соответственно, ваемого искажения
256"
вероятность восстанавли-
lim P(1 < T < t) -
p^1/2
Zc<
255
1
ч n-h
1
±C! 255
h-1
.256У V256" У 256nh=t+1 Вероятность невосстанавливаемого искажения
lim P(T > t) -
p^1/2
Sc
h-t+1
255
1
v n-h
256 у V 256"
256"
Uch 255
h-t+1
Нетрудно заметить, что вероятность «невосстанавливаемого» искажения Р(Т > г) при вероятности искажения бита р = 1/2 весьма су-
щественная - больше
255
даже при наиболь-ошибок
256
шей кратности исправляемых г = [(п—1)/2] для заданной длины кадра п. Заключение
Практическую ценность кодов Рида - Соломона трудно переоценить. С их помощью можно не только обнаруживать, но и частично восстанавливать практически уничтоженную информацию. К сожалению, коды Рида - Соломона у большинства специалистов ассоциируются только с помехоустойчивым кодированием в каналах передачи данных. В действительности их можно применять
Частный случай. Оценим вероятность отсутствия искажения, вероятность восстанавливаемого искажения и вероятность невосстанавливае-мого искажения при заданной вероятности искажения бита р = 1/2, когда любой бит может с шансами 50 /50 либо исказиться, либо нет. Такой вариант может наблюдаться в сильно зашумлен-ных каналах передачи данных, а также на носителях информации, подвергшихся сильному разрушающему воздействию, например взрыву большой мощности. При р = 1/2 искажения отдельного байта составляет
везде, где необходимо предотвратить модификацию данных:
• обнаружение и коррекция неумышленных ошибок при передаче данных по каналам связи, ошибок в данных на носителях информации при их сбое или отказе, умышленной модификации информационных сообщений с целью дезинформации (при поддержке системы открытых и закрытых ключей);
• обнаружение и коррекция умышленной модификации информации об авторе или исполняемого кода с целью «взлома» программного обеспечения;
• защита программного обеспечения или данных от копирования с лицензионного диска при использовании специальных «настоящих» и «ложных» ошибок в секторах;
• восстановление одного или нескольких томов многотомного архива, искаженных или потерянных при загрузке из сети. Аналогично, восстановление данных одного или нескольких дисков в многодисковых системах RAID;
• Обнаружение и исправление ошибок в цепочках ДНК в генной инженерии.
Были рассмотрены понятие кодов Рида -Соломона и особенности их построения. Отмечены возможности этих кодов в области обнаружения ошибок при передаче данных по каналам связи компьютерной сети. Рассчитаны вероятности появления искажений в пакетах передаваемой информации.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Сагалович Ю.Л. Введение в алгебраические коды. М. : ИППИ РАН, 2011. 320 с.
2. Кузьмин О. В. Дружинин В. И. Коды Боуза-Чоудхури-Хоквингема в системах обнаружения и исправления ошибок при передаче данных // Современные технологии. Системный анализ. Моделирование. 2013. № 3 (39). С. 23-30.
3. Егоров С.И. Коррекция ошибок в информационных каналах периферийных устройств ЭВМ. Курск : КурскГТУ, 2008. 305 с.
4. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М. : Мир, 1986. 576 с.
5. Todd K. Moon. Error correcting coding: mathematical and algorithms. Hoboken, New Jersey: John Wiley & Sons Inc., 2005. 800 p.
6. Питерсон У., Уэлдон Э., Коды, исправляющие ошибки. М. : Мир, 1976. 593 с.
7. Мак-Вильямс Ф. Дж. Теория кодов исправляющих ошибки. М. : Связь 1979. 730 с.
h
h
h
1
h
h
Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М. : Техносфера, 2006. 520 с.
9. Кузьмин О.В. Комбинаторные методы моделирования дискретных распределений. Иркутск : Изд-во Иркут. гос. ун-та, 2006. 138 с.