Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 28 июня 2016 г.)

Наука: Математика

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Дмитриев Е.А., Танаев И.В., Швейкин В.В. [и др.] ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ. КОД РИДА – СОЛОМОНА // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XLIII междунар. студ. науч.-практ. конф. № 6(42). URL: https://sibac.info/archive/technic/6(42).pdf (дата обращения: 29.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ. КОД РИДА – СОЛОМОНА

Дмитриев Егор Андреевич

студент 3 курса, факультет информатики Самарский университет,

г. Самара

Танаев Иван Владимирович

студент 3 курса, факультет информатики Самарский университет,

г. Самара

Швейкин Владислав Витальевич

студент 3 курса, факультет информатики Самарский университет,

г. Самара

Завгородний Станислав Дмитриевич

студент 3 курса, факультет информатики Самарский университет,

г. Самара

Тишин Владимир Викторович

научный руководитель,

доцент, кафедра прикладной математики, Самарский университет,

г. Самара

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

Основные определения

Определение 1 Поле – алгебра над множеством F, образующая коммутативную группу по сложению над F и коммутативную группу по умножению над F/{0}, при выполняющемся свойстве дистрибутивности умножения относительно сложения.

Определение 2 Поле Галуа – поле, состоящее из конечного числа элементов. Обозначение –GF(pm), где pm– количество элементов в поле или индекс поля, p – характеристика поля, причем p – простое число.

Определение 3 Примитивный элемент конечного поля – генератор мультипликативной группы, первообразный корень степени pm-1.

Определение 4 Расстояние Хэмминга – число позиций, в которых соответствующие символы слов одинаковой длины различны.

Определение 5 Кольцо – это алгебра над множеством F, образующая коммутативную группу по сложению над F и полугруппу по умножению, при свойстве дистрибутивности умножения относительно сложения.

Определение 6 Кольцо многочленов – кольцо, образованное многочленами с коэффициентами из другого кольца.

Определение 7 Неприводимый многочлен – многочлен, который не раскладывается на простые множители в кольце многочленов.

Определение 8 Факторизация – разбиение множества на непересекающиеся непустые множества или классы эквивалентности.

Введение

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

Постановка проблемы

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

Помехоустойчивое кодирование

Основным принципом помехоустойчивого кодирования является избыточность. При кодировании у нас есть определенный набор символов, с помощью которых мы образуем слова или кодовые комбинации. Мы работаем только с определенными словами, по-другому они называются разрешенные кодовые комбинации. Если произошла ошибка, наши разрешенные кодовые комбинации переходят в разряд запрещенных кодовых комбинаций. Получив такие слова, мы понимаем, что где-то произошла ошибка, и пытаемся исправить ее. Допустим мы используем kсимволов и составляем слово, которое мы хотим отправить. Затем, дополняя до n символов, по определенному алгоритму получаем разрешенную кодовую комбинацию, которую и передаём по каналу связи. При передаче произошла ошибка, и мы получили запрещенную кодовую комбинацию, которую по алгоритму распознаем, что она является запрещенной и исправляем ошибку.

На практике чаще всего используются линейные коды. Код Рида – Соломона – один из представителей линейных кодов. Количество ошибок, которое мы можем обнаружить, используя линейный код, можно выразить через минимальное расстояние Хэмминга, то есть минимальное расстояние среди всех кодовых комбинаций. Минимальное расстояние для линейного кода d=n-k+1. Тогда максимальное количество ошибок, которое можно обнаружить f=d-1. Другая важная характеристика это – корректирующая способность кода, то есть количество ошибок, которые возможно исправить. Корректирующая способность определяется как t=(d-1)/2, где t округляется в меньшую сторону. Линейный код обозначается как (n,k). Все комбинации линейного кода образуют линейное пространство над полем. Для кода Рида – Соломона используется поле Галуа.

Поле Галуа

Рассмотрим, как образуется поле Галуа GF(pm). Пусть m=1, тогда GF(p) – простое поле. Пример GF(7) на Рис.1.

Рисунок 1. Поле Галуа GF(7)

 

Красным выделены примитивные элементы. Как видно из рисунка, степени этих чисел образует мультипликативную группу. При работе с кодом Рида – Соломона на практике используется поле Галуа с характеристикой 2. Рассмотрим GF(23) на Рис. 2.

 

Рисунок 2. Поле Галуа GF(23)

 

Характеристика поля Галуа влияет на то, какое кольцо многочленов мы используем для построения поля. В данном случаем мы находимся в кольце многочленов с коэффициентами 0 и 1, так как характеристика поля равна 2. Чтобы получить элементы поля, факторизуем наше кольцо по неприводимому многочлену x3 +x2 +1, старшая степень зависит от степени характеристики поля. Получим класс эквивалентности с различными остатками при делении на x3 +x2 +1.

Код Рида–Соломона

Перейдем непосредственно к самому коду Рида – Соломона. Существуют два способа кодирования: систематический и несистематический. При несистематическом кодировании информационное слово умножается на неприводимый порождающий многочлен поля Галуа. При систематическом кодировании процедура кодирования состоит из нескольких шагов. Во-первых, к нашему информационному слову мы должны до писать 2t нулей, получая новый многочлен. Полученный полином делится на порождающий многочлен, остаток приписывается к делителю, то есть просто складывается. Существует еще одна процедура кодирования – дискретное преобразование Фурье (ДПФ).

Рассмотрим подробнее несистематическое кодирование. Для получения кодовой комбинации, нам необходимо получить порождающий многочлен. Общая формула для порождающий многочлена: g(x)=(x-αl)( x- αl+1 )…(x-αl+d-1).α-примитивный элемент поле Галуа, l–число, на практике применяют равное 1 или количество проверочных символов кода.

 Пусть дан код (7,3). Данный код может распознать 4 ошибки и исправить 2 ошибки. Порождающий многочлен для данного кода равен g(x)=(x- α)( x- α2)(x- α3)(x- α4). Пусть информационный многочлен имеет вид m(x)= α4x2 +x+α3 . Кодовое слово несистематического кода будет выглядеть следующим образом: c(x) = m(x)g(x) =α4x6 + αx5 + α6 x4+ α5 x+α4.

Перейдем к операции декодирования. Пусть мы приняли полином r(x) = v(x)+e(x), где v(x) – переданный полином, e(x) – полином ошибок.e(x) =ej1xj1+…ejnxjn, где nt (максимальное количество ошибок, которое может исправить код). Множество { ej1…ejn} – значения ошибок, ejпринадлежитGF(pm), а {αj1… αjn} – локаторы ошибок.

Синдромы ошибок будут равны:

Многочлен локаторов ошибок:

Получаем ключевую систему уравнений относительно коэффициентов.

Вся задача сводится к решению данной системы. Существуют несколько алгоритмов решения системы: алгоритм Берлекемпа – Мэсси, алгоритм Евклида и прямое решение. Рассмотрим алгоритм Евклида.

Пусть получен многочлен r(x) = αx2+α5x4. При кодировании начальный многочлен выбирается равным r0(x)=xd. В коде (7,3) d=7-3+1=5, тогда начальный многочлен равен x5 . Синдром будет равен S(x) = 1+ α6x+ α5x2 +αx3 +αx4 . Многочлен b0(x) = 0, b1 (x) = 1. На 1 шаге при делении r0(x) на S(x) в остатке получаем многочлен r1(x) = α5x3+x2+αx+α6, q2(x) = α6x+ α6, b2(x) = b0(x)+q2(x)b1(x). На 2 шаге r2(x) = α6x2+ αx+ α3 . Алгоритм остановится, когда степень остаточного многочлена, равна количеству ошибок, которые может исправить код. В данном случае, когда степень будет равна 2. Многочлен b3(x)= σ(x) = α3+ α4x+ α2x2 , решая полным перебором мы находим j1 = 2, j2 = 4.

Заключение

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

 

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

  1. Арнольд В. И Динамика, статистика и проективная геометрия полей Галуа. Москва, издательство МЦНМО, 2005
  2. Берлекэмп Э. Алгебраическая теория кодирования = AlgebraicCodingTheory. — М.: Мир, 1971. — С. 478.
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий