>
Об исследовании реальной корректирующей способности линейных
кодов
С.В. Каменский, Д.Н. Катасонов Novosibirsk State Technical University (NSTU)
Аннотация: В статье осуществлены исслдования реальной корректирующей способности линейных кодов. 5
Ключевые слова: кодирование,
исправление ошибок, информатика
1. ПОСТАНОВКА ЗАДАЧИ
Одним из методов борьбы с искажениями при передаче и хранении информации является применение помехоустойчивых кодов. На сегодняшний день наибольшее распространение получили линейные коды, и интерес к таким кодам постоянно увеличивается с развитием систем передачи и хранения данных.
В связи с широким распространением данных кодов работать с ними приходится не только узким специалистам в области теории кодирования, но и разработчикам электронных систем, программистам, проектировщикам систем управления и специалистам из других областей. Например, принципы контроля ошибок на основе циклических кодов используются, при чтении штрих-кодов, информации с биометрических заграничных паспортов, в различных протоколах обмена данными, программах-архиваторах и т. д.
Процедуры построения таких кодов являются достаточно трудоёмкими и не всегда дают однозначный результат. Так ряд требований, которые должны быть выполнены при построении кодов, являются необходимыми, но недостаточными, что может привести даже при их выполнении к отклонению параметров построенного кода от заданных как в лучшую, так и в худшую сторону. Кроме того существуют и применяются на практике коды, для которых достоверных данных по их параметрам нет, также в ряде источников приводятся коды, для которых приведены лишь оценочные значения параметров. Также в литературе по линейным кодам встречаются данные только о кодовом расстоянии (или числе обнаруживаемых и исправляемых независимых ошибок), а данных о длине исправляемых пакетов ошибок нет.
Работа выполнена по заданию Министерства образования и науки РФ, проект №7.599.2011, Темплан, НИР № 01201255056.
Исходя из вышесказанного, в качестве актуальных можно определить две задачи: построение линейного кода с заданными свойствами и определение параметров построенного или существующего кода.
Для решения этих задач необходимо разработать программное обеспечение, позволяющее проводить построение и исследование линейных кодов, доступное для пользователя, не являющегося специалистом в области теории кодирования и программирования.
2. ЦИКЛИЧЕСКИЕ КОДЫ. ТЕОРЕТИЧЕСКИЕ СВЕДЕНЬЯ
Циклический код относится к классу линейных кодов. Это означает, что все математические операции используемые, при построении и работе с кодом являются линейными. Для обеспечения контроля ошибок к последовательности содержащей информацию (информационным символам) добавляется ряд дополнительных символов называемых контрольными. Значения контрольных разрядов напрямую зависит от значений информационных разрядов. Для каждого разрешенного слова некоторого кода существует единственный набор контрольных разрядов. На Рис. 1 представлен классический вид сообщения закодированного циклическим кодом (стандартная компоновка). Обозначим общую длину кода, как п, а число информационных разрядов, как k.
L
Информационные
Контрольные
J
Сообщение
Рис.1. Классический вид сообщения закодированного циклическим кодом
Циклический код обладает следующими свойствами:
• Циклический код задается т. н. порождающим полиномом, обозначаемым, как g(x). В общем случае g(x) является неприводимым полиномом.
• Каждая разрешенная кодовая комбинация, принадлежащая циклическому 62
коду, делится без остатка на g(x). На данном свойстве построен механизм контроля ошибок.
• Кодовая комбинация, полученная путем циклического сдвига разрешенной комбинации, так же является разрешенной кодовой комбинацией и принадлежит данному коду.
• Ошибки на одних позициях и их синдромы могут быть приведены к ошибкам на других позициях и их синдромам благодаря предыдущему свойству.
Второе свойство используется как при декодировании сообщений, так и их формировании (кодировании).
Третье свойство позволяет упросить процедуру декодирования кодов, а также определило их название - циклические.
Четвертое свойство позволило резко сократить объем селектора синдромов и упростить реализацию декодирующих устройств.
В общем случае порождающий полином g(x) должен быть неприводимым - это означает, что он не должен делиться без остатка на полиномы меньших степеней (не должен раскладывается на сомножители). Степень порождающего полинома должна быть равна числу контрольных разрядов кода п-к, при этом число ненулевых элементов порождающего полинома также влияет на количество исправляемых кодом ошибок. Данные особенности накладывают ограничения на «кандидатов» в порождающие полиномы циклических кодов. В результате ограниченного количества неприводимых полиномов необходимого веса и степени, требование «неприводимости» удается выполнить не всегда, и в ряде случаев оно может быть снято. Отыскать требуемый порождающий полином можно при помощи таблиц, предложенных в литературе по теории кодирования, или используя некоторые пакеты программ (например, МЛТЬЛБ), получить так называемый БЧХ-код. Рассмотрим данные подходы.
Коды БЧХ (Боуза, Чоудхури, Хоквингема) являются разновидностью циклических кодов и обладают их всеми основными свойствами, но порождающий полином данных кодов формируется как результат произведения некоторых полиномов меньших степеней, чем степень требуемого порождающего полинома. Следовательно, полученный порождающий полином не будет являться неприводимым. Процедура построения БЧХ-кода позволяет построить код с требуемыми характеристиками, исходя из длины кодового слова и числа исправляемых ошибок без учета числа информационных разрядов. Кроме того, применение БЧХ-кодов позволяет упростить процедуру поиска и коррекции ошибок.
Пакет МЛТЬЛБ позволяет отыскать
требуемый порождающий полином
циклического кода, а также построить БЧХ код, но является достаточно дорогим и сложным инструментом. Кроме того, в ряде случаев построение порождающего полинома может занимать значительное время (для кодов определенной длины), что при отсутствии отображения прогресса выполнения задачи может ввести пользователя в заблуждение о работоспособности программы.
Поиск порождающего полинома по готовым таблицам также сопряжен с рядом проблем:
а) не всегда удается отыскать полином требуемой степени и веса, а представленные готовые коды не всегда имеют полное описание по части реальной корректирующей способности кода по независимым ошибкам;
б) по пакетным кдоам данные приводятся крайне редко. Одна из наиболее обширных таблиц циклических кодов содержится в [1], но использование её затруднительно, т. к. порождающие полиномы кодов заданы в виде своих корней. Получение порождающего полинома по заданным корням аналогично процедуре построения БЧХ-кода, с той разницей, что число информационных разрядов известно заранее. Таким образом, по реализации процедуры построения БЧХ-кода в виде программного модуля становится возможным использовать данные из [1]. Рассмотрим данные таблицы подробнее.
3. ПРОЦЕДУРА ПОСТРОЕНИЯ ЦИКЛИЧЕСКОГО КОДА С ИСПОЛЬЗОВАНИЕМ ТАБЛИЦ ПИТЕРСОНА
Далее кратко представлен способ построения порождающего полинома циклического кода с использованием данных из таблиц Питерсона.
1. Рассчитать п, к, ё, определить старшую степень полинома g(x).
2. Выбрать код из таблицы.
3. Исходя из длины выбранного кода, найти т для расширения поля ОЕ(2т). Степень т находится из следующего соотношения:
п = 2т — 1 /с, где с - наименьшее положительное число, при котором выполняется данное соотношение. Для тривиальной длины с = 1.
4. Найти неприводимый полином для построения элементов поля. Для этого необходимо использовать таблицу неприводимых полиномов над 0¥(2) из «Приложения В» [1].
5. Для каждого корня из таблицы «Приложения Г» найти сопряженные элементы.
6. Найти элементы поля, соответствующие всем элементам, полученным в пункте 5.
7. Для каждого корня из таблицы «Приложения Г» найти минимальный полином.
8. Перемножить полученные минимальные полиномы по правилам для GF(2) и получить
g(x).
Более подробную инструкцию по построению порождающего полинома, содержащую методику построения конечного поля можно найти в [2].
4. ОЦЕНКА РЕАЛЬНОЙ КОРРЕКТИРУЮЩЕЙ СПОСОБНОСТИ ЛИНЕЙНЫХ КОДОВ ДЛЯ НЕЗАВИСИМЫХ ОШИБОК
При определении реальной корректирующей способности кода можно выделить два основных подхода:
• Определение истинного кодового расстояния.
• Определение реальной кратности обнаруживаемых и корректируемых ошибок.
Истинное кодовое расстояние может быть определено одним из следующих способов:
• Перебор всех разрешенных кодовых комбинаций.
• Анализ проверочной матрицы кода.
• Получение нулевого синдрома.
Перебор разрешенных кодовых комбинаций
Пусть V - множество всех разрешенных кодовых комбинаций для некоторого кода Между каждой парой слов из V необходимо определить кодовое расстояние. Минимальное расстояние, полученное при анализе всех пар разрешенных слов, будет равно истинному кодовому расстоянию кода Трудоемкость данного способа зависит только от мощности кода и не зависит от его длины и кодового расстояния.
Анализ проверочной матрицы кода
Если для ГСК проверочная матрица является результатом выполнения одного из этапов построения кода, то для ЦК её необходимо специально получить, используя порождающий или проверочный полином. Минимальное число столбцов проверочной матрицы, результат поразрядного суммирования по модулю два которых даст нулевой столбец, будет равно гарантированному кодовому расстоянию данного кода. Этот способ дает граничное нижнее значение кодового расстояния (нижнюю оценку), а реальное кодовое расстояние может быть больше.
Ещё одним вариантом оценки кодового расстояния на основе анализа проверочной матрицы является способ с формированием
целевой функции и последующей её минимизацией. В этом случае поразрядно суммируются столбцы приписной части проверочной матрицы во всех возможных сочетаниях. Общее число вариантов сочетаний столбцов приписной части будет определяться
как C + Q2 +.. + С, где к - число информационных разрядов кода. В результате каждого сложения будет получаться вектор длины n-k. После каждого сложения необходимо фиксировать вес полученного вектора и число столбцов необходимых для его получения (число операндов в операции сложения). При выполнении сложения всех по
всем вариантам (С\ + Ck +.. + C'k), получится
таблица, содержащая вес векторов-результатов и число операндов необходимое для получения этих векторов. Кодовое расстояние по такому результату определяется, при помощи целевой функции: L = W + N ^ min. Где W - вес вектора-результата, N - число операндов необходимое для получения данного вектора-результата. Если для каждого результата суммирования сложить вес и число необходимых операндов (столбцов), то минимальная сумма будет являться гарантированным кодовым расстоянием. Данный способ позволяет сократить число сложений, следовательно, увеличить скорость выполнения анализа.
Получение нулевого синдрома
Рассчитываются синдромы для векторов ошибок, начиная с кратности один, и с постепенным увеличением. Полученные синдромы анализируются. Кратность ошибки, при которой будет получен нулевой синдром, определит истинное кодовое расстояния кода Z. Для циклического кода верхняя граница d будет определяться весом порождающего полинома кода wg. Трудоемкость данного способа напрямую зависит от общей длины кода, и его корректирующей способности.
Сравнение синдромов ошибок
Реальная кратность обнаруживаемых и исправляемых ошибок определяется путем анализа множества их синдромов. Обозначим s - число исправляемых ошибок. Далее представлен алгоритм определения кратности исправляемой ошибки.
1. Составляется таблица синдромов для ошибок заданной кратности от s = 1 до заданной. Первоначально принимаем заданное s = 1.
2. Все синдромы сравниваются между собой.
3. Если совпадений не найдено, то кратность ошибки 5 увеличивается на единицу, пункт 1.
4. Если совпадение найдено, то кратность исправляемой ошибки равна 5-1.
Число исправляемых ошибок 5 связано с кодовым расстоянием ё соотношениями
5 = (ё - 1) / 2 - для нечетного ё,
5 = (ё - 2) / 2 - для четного ё.
Во втором случае кодовое расстояние больше, чем необходимо для коррекции ошибки кратности 5. «Лишнее» кодовое расстояние позволяет дополнительно к числу корректируемых ошибок обнаружить ошибки без возможности их коррекции. Таким образом, возникает необходимость определения кратности обнаруживаемой ошибки г при полученной кратности исправляемой ошибки 5.
Пусть 5 - кратность исправляемой ошибки, О - множество синдромов для ошибок кратности 5 и менее, О' - множество синдромов, соответствующие ошибкам кратности 5+а. В таком случае, все синдромы множества О различные, а в множестве синдромов О' будут присутствовать одинаковые синдромы. Если ни один синдром из О' не совпадает с синдромами из О, то такой код обнаруживает 5+а ошибок, и исправляет 5 ошибок. Если при некотором а' = а +1 синдромы из О' совпадают с синдромами из О, то такой код обнаруживает а' ошибок, а исправляет ошибки кратности 5 - 1 и менее. Следовательно, можно увеличить кратность обнаруживаемой ошибки за счет уменьшения кратности исправляемой ошибки. Исходя из вышесказанного, можно определить границу кратности обнаруживаемой ошибки без ущерба для кратности исправляемой ошибки.
В случае если необходимо определить кратность обнаруживаемой ошибки без возможности коррекции, применим нижеследующий подход.
Обозначим кратность обнаруживаемой ошибки, как г. Перебираются векторы ошибок с увеличением их веса, и для них рассчитываются синдромы, процесс продолжается до появления первого нулевого синдрома. Кратность обнаруживаемой ошибки равна г=м>-1,
где V - вес вектора ошибки, при котором был получен нулевой синдром.
Трудоемкость данных методов зависит только от корректирующей способности кода и
не зависит от его мощности.
5. О СПОСОБЕ ОПРЕДЕЛЕНИЯ РЕАЛЬНОГО КОДОВОГО РАССТОЯНИЯ
В качестве критерия при выборе способа определения реального кодового расстояния будем использовать объем обрабатываемых данных. При переборе разрешенных кодовых комбинаций это - мощность кода (число комбинаций), для «матричного» метода это -количество вариантов комбинаций столбцов приписной части проверочной матрицы, для метода нулевого синдрома это - максимально возможное кодовое расстояние. В последнем случае необходимо использовать оценку кодового расстояния по числу ненулевых элементов порождающего полинома (для ЦК) или одну из оценок верхних границ, например, Хэмминга, (для ГСК). Трудоемкость первых двух способов зависит от мощности кода, а трудоемкость последнего только от веса порождающего полинома или структуры строк порождающей матрицы. Для корректного сравнения описанных способов фиксируем длину кода, при фиксированной длине трудоемкость определения реального кодового расстояния будет напрямую зависеть от числа информационных разрядов для всех трех способов.
При сравнении перечисленных способов рассмотрим коды длины 31 с различным числом информационных разрядов, получим зависимость объема обрабатываемых данных для разных способов оценки от числа информационных разрядов. Для удобства точки соответствующие числу информационных разрядов и объема обрабатываемых данных соединены линиями, объем обрабатываемых данных представлен в логарифмическом масштабе.
Как видно из графика, объем обрабатываемых данных для способа перебора комбинаций и матричного способа совпадают. Но при этом следует учесть, что реализация способа перебора комбинаций проще, чем реализация матричного способа: нет необходимости перебора возможных сочетаний столбцов приписной части, анализа целевой функции, получения проверочной матрицы кода.
Рис. 2. Зависимость объема обрабатываемых данных от числа информационных разрядов.
Рис. 3. Зависимость объема обрабатываемых данных от числа информационных разрядов.
Следует отметить, что способ поиска нулевого синдрома в отличие от двух других способов не требует большого объема памяти: нет необходимости хранения синдромов, разрешенных комбинаций, результатов анализа сочетаний столбцов приписной части. Способ поиска нулевого синдрома целесообразно использовать для кодов с высокой корректирующей способностью и при ограничениях на хранимый объем обрабатываемых данных.
С учетом описанного выше подхода все способы определения корректирующей способности кода для независимых ошибок можно разделить на две группы:
- способы, трудоемкость которых зависит от мощности кода;
- способы, трудоемкость которых зависит от корректирующей способности кода.
К первой группе относится «матричный» способ и способ перебора разрешенных комбинаций, для данной группы верхняя граница объема обрабатываемых данных это 2* (для «матричных» способов определения корректирующей способности объем данных приближается к 2*).
Ко второй группе относятся способ поиска совпадений синдромов и способ поиска нулевого синдрома, для данных способов
верхняя граница объема данных связана с весом порождающего полинома (для ЦК). Как и ранее, фиксируем длину кода, принимаем ее равной 31 и получаем графики зависимостей объема обрабатываемых данных от числа информационных разрядов.
Анализируя области пересечения подобных кривых, можно определить число информационных разрядов, до и после которого целесообразно использовать приведенные выше методы определения корректирующей способности.
6. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ПОСТРОЕНИЯ И ИССЛЕДОВАНИЯ ЛИНЕЙНЫХ КОДОВ. ОСНОВНЫЕ ТРЕБОВАНИЯ
1. Процедура построения циклического кода тесно связана с алгебраической структурой кодов, которую инженеру, при проектировании системы, где необходимо помехоустойчивое кодирование, знать не нужно. Исходя из этого, необходимо разработать интерфейс, позволяющий построить код, используя минимальное количество исходной информации - мощность и корректирующую способность.
2. При любом способе построения, параметры полученного кода могут существенно отличаться от требуемого, как в лучшую, так и в худшую сторону, поэтому необходимо обеспечить возможность исследования параметров полученного кода.
3. При использовании таблиц из [1] необходимо обеспечить механизм построения циклического кода, используя только данные из «Приложения Г» [1]
4. Так как в [1] нет данных о длине исправляемой пакетной ошибки, необходимо обеспечить оценку возможностей построенного кода на предмет длины корректируемой пакетной ошибки.
5. Обеспечить возможность кодирования и декодирования полученным (введенным) кодом. Обеспечить ввод сообщения и представление закодированного сообщения в различных видах: полиномиальном, двоичном, десятичном, в систематической и несистематической форме (для ЦК). Также обеспечить ввод сообщения из файла и экранной формы.
6. Обеспечить построение ГСК по заданным параметрам.
Рассмотрим случай, если порождающий полином (матрица) известен:
1. Необходимо обеспечить возможность ввода известного порождающего полинома или порождающей матрицы.
2. Необходимо обеспечить возможность исследования параметров введенного кода.
3. При вводе готового кода предусмотреть ввод кода из файла или с экранной формы, при этом обеспечить ввод кода по матрице или полиному.
Было разработано ПО, удовлетворяющее данным требованиям: обеспечено построение порождающего полинома кодов из таблиц Питерсона, получение порождающей матрицы ГСК. Обеспечена проверка параметров полученного кода, проверка параметров уже известного кода, заданного порождающим полиномом (ЦК) или порождающей матрицей (ГСК).
7. РЕЗУЛЬТАТЫ ПОЛУЧЕННЫЕ, ПРИ ПОМОЩИ РАЗРАБОТАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7.1 Расхождение оценочных и реальных параметров
Рассмотрим расхождение между реальным кодовым расстоянием и кодовым расстоянием, полученным при помощи оценок Хэмминга, Плоткина, Варшамова-Гилберта. Для практической реализации определения реальной корректирующей способности важнее верхние оценки, так как, при их помощи можно определить «худший случай» - максимальный объем обрабатываемого массива, число переборов и т. д. Следовательно, при помощи верхней оценки можно прогнозировать общее количество синдромов, которые необходимо обработать, а также прогнозировать границы кратности ошибок, с которыми будет работать алгоритм определения корректирующей способности. Сравним верхние оценки кодового расстояния.
Оценка Плоткина и оценка Хэмминга дают верхнюю границу кодового расстояния - код с параметрами п, к точно будет иметь кодовое расстояние не выше полученного, на практике оценка Плоткина зачастую дает завышенные значения кодового расстояния. Далее представлен график зависимостей кодового расстояния, полученного, при помощи оценок Хэмминга и Плоткина от числа информационных разрядов, длина кода принята как параметр и равна 31, кодовое расстояние и число информационных разрядов величины дискретные, но для удобства представления точки на графике соединены между собой. В оценке Плоткина примем предельный случай - случай равенства.
Рис. 4. Зависимость кодового расстояния получен
Как видно из графика, оценка Плоткина действительно завышает значение кодового расстояния, в данном случае зависимость выродилась в прямую линию. На практике при определении кодового расстояния целесообразно использовать границу Хэмминга. Далее представлен график, на котором показана
разными оценками, от числа информационных разрядов
кривая изменения кодового расстояния, полученного при помощи оценки Хэмминга, и кривая, полученная способом поиска нулевого синдрома. Длина кода, как и в предыдущем случае, принята равной 31, а точки на графики для наглядности соединены.
Рис. 5. Зависимость кодового расстояния от числа информационных разрядов, полученная при помощи оценки Хэмминга и способом поиска нулевого синдрома
7.2 Сравнение оценки кодового расстояния по виду порождающего полинома и реального кодового расстояния
Исследование кодового расстояния при помощи оценочных формул не учитывает некоторых свойств реального кода, например, при фиксированном значении (п, к) можно получить различные значения кодового расстояния.
Как говорилось ранее, точно определить кодовое расстояние можно, используя метод поиска нулевого синдрома, метод поиска одинаковых синдромов и по перебору кодовых
комбинаций. Все эти способы имеют высокую трудоемкость, в силу большого объема обрабатываемых данных. Оценка кодового расстояния при помощи порождающего полинома учитывает требование к числу ненулевых элементов порождающего полинома, в результате также может оказаться, что такие оценки ближе к истинному кодовому расстоянию, чем результаты оценок Хэмминга и Плоткина.
При использовании данной оценки при определении реального значения кодового расстояния возможно снижение объема обрабатываемого массива за счет того, что в
некоторых случаях данная оценка точнее оценки Хэмминга.
Рассмотрим два кода длины 31 и длины 15.
Код (31, 10, 12) (в терминах п, к, ё). Его порождающий полином:
g(x) = х21 + х 20 + х19 + х17 + х14 + х13 + х11 + х9 + х8 + х6 + х5 + х4 + х3 + х2 + х + 1.
По оценке Хэмминга такой код имеет кодовое расстояние, равное 15, по оценке Плоткина кодовое расстояние также равно 15. Число ненулевых элементов порождающего полинома равно 16. При проверке данного кода путем поиска нулевого синдрома, кодовое расстояние оказалось равным 12.
Таким образом, в данном случае использование границы Хэмминга позволит определить истинное кодовое расстояние верно. По сравнению с оценкой кодового расстояние путем анализа порождающего полинома использование оценки Хэмминга дает выигрыш по числу переборов, при определении истинного кодового расстояния.
Код (15, 5, 3). Его порождающий полином g(x) = х10 + х5 + 1.
Оценка Хэмминга для данного кода дает кодовое расстояние равное 9. Число ненулевых элементов равно трем. Но, при определении кодового расстояния путем поиска нулевого синдрома кодовое расстояние равно трем. Таким образом, если исследовать данный код, начиная с кодового расстояния, по оценке Хэмминга, понадобится лишнее число сравнений синдромов. Исходя из этого, целесообразно, перед началом определения реального кодового расстояния ЦК определить, дает ли оценка Хэмминга кодовое расстояние выше, чем оценка по количеству ненулевых элементов порождающего полинома. Далее представлено сравнение оценки Хэмминга, оценки по виду порождающего полинома и реального кодового расстояния для некоторых циклических кодов длины 31. Реальное кодовое расстояния было получено путем поиска нулевого синдрома или перебором разрешенных кодовых комбинаций.
Значения кодового расстояния и значения числа информационных разрядов величины дискретные, для наглядности точки на графике соединены между собой.
Рис. 6. Сравнение реального кодового расстояния некоторых кодов длины 31, с оценочным кодовым расстоянием
Как видно из графика на рисунке 6, оценка Хэмминга дает постоянное расхождение с истинным кодовым расстоянием. При некотором числе информационных разрядов оценка по порождающему полиному дает истинный результат, с учетом более простой программной реализации данной оценки и учетом данной оценкой некоторых свойств ЦК ее применение является более целесообразным.
8. НЕКОТОРЫЕ РЕЗУЛЬТАТЫ ОПРЕДЕЛЕНИЯ КОРРЕКТИРУЮЩЕЙ СПОСОБНОСТИ ДЛЯ ЦК
В таблицах Питерсона нет данных по длине исправляемой пакетной ошибки. Ниже представлены некоторые результаты исследований кодов из таблиц Питерсона по коррекции пакетных ошибок. Видно, что корректирующие способности по пакетным и независимым ошибкам в ряде случаев различаются весьма существенно, что представляет несомненный интерес.
Таблица 1. Некоторые результаты по длине исправляемых ошибок для кодов из [1, «Приложение Г»].
Параметры кода (n,k,d) Порождающий полином Независимая ошибка 1 Пакетная ошибка
15,3,5 x12+ xy+ x6+x3+1 2 6
15,4,8 xu+x10+ x9+ x8+ x6+ x4+ x3+1 3,4 5
15,6,6 x9+ x7+ x6+ xJ+ x2+1 2,3 5
15,7,5 x8 +x7+ x6+ x4+ x+1 2 -
21,3,12 x18+ x16+ x15+ x14+ xu+x9+x8+ x'+ x4+ x2+ x+1 5,6 9
21,4,9 x17 + x16+ x14+ xlu+ x9+x8+ x'+ x3+ x2+1 4,5 8
21,5,10 x16+ x15+ x14+ x13+ x12+ x10+x8+ x5+ x4+1 4,5 6
21,6,7 x15+ x1J+ x1'+ x10+ x'+x6+x5+ xJ+ x2+ x+1 3 7
21,9,8 x12+ xu+ x10+ x9+ x"+ xJ+x+1 3,4 4
21,10,5 xu+ x9+ x4+ x3+1 2 4
21,12,4 x9+ x8+ x'+ x2+x+1 1,2 -
31,10,12 x21 +x20+ x18+ x16+ x14+ x10+ x8+ x'+ x6+ x4+ x+1 5 7
31,10,12 x21 + x18+ x16+ x1J+ x10+ x9+x8+ x7+ x"+ xJ+ x+1 5 8
31,10,12 x21+ x20+ x19+ x"+ x14+ x13+xu+ xy+ x8+ x6+ xJ+ x4+ x3+ x2+ x+1 5 8
31,11,11 x20+ x18+ x1'+ x13+xlu+ xy+ x'+ x6+ x^+1 5 8
31,11,11 x20+ x19+ x18+ x15+ x14+ x13+ x9+ x'+ x4+ x"+1 5 7
31,21,5 x10+x9+ x3+x+1 2 3
31,21,5 x10+ x8+ x6+x5+ x4+x +1 2 3
31,16,7 x15+ xu+ x10+ x9+ x8+ x'+ x5+ xJ+ x2+ x+1 3 5
63,51,5 x12+x10+ x8+x5+x4+x3+1 2 3
Примечания: 1 - Через запятую, указано число обнаруживаемых ошибок в случае, если оно отличается от числа исправляемых.
ЛИТЕРАТУРА
[1] У. Питерсон, Э. Уэлдон. Коды, исправляющие ошибки. Москва. Мир. 1976.
[2] С.В. Каменский Д.Н. Катасонов. Оценка реальной корректирующей способности циклических кодов из таблиц Питерсона // Сборник научных трудов НГТУ. Новосибирск : НГТУ, 2011 г. - 2(64). -стр. 53-61.
[3] Р. Блейхут. Теория и практика кодов, контроллирующих ошибки. : М.: Мир. 1986. - стр. 576.
Каменский Сергей Вениаминович - доцент кафедры Автоматики НГТУ, автор более 50 публикаций, в том числе имеет 24 авторских свидетельства на изобретения. Область научных интересов - теория кодирования. E-mail: kamensky@sintez.nstu.ru
Катасонов Денис Н. -аспирант кафедра Автоматики НГТУ, является автор 6 публикаций. Область научных интересов - кодирование и передача данных. E-mail: katasonovdenis@ya.ru