Открыть сервис

Недвоичные циклические коды

Недвоичные циклические коды — это класс корректирующих кодов, алфавит которых состоит не из двух символов (0 и 1), а из элементов конечного поля — поля Галуа GF(q), где q — степень простого числа (q = p^m, p — простое). Как и двоичные циклические коды, они обладают свойством цикличности: любой циклический сдвиг кодового слова, рассматриваемый как последовательность символов из GF(q), также является кодовым словом. Недвоичные коды применяются для обнаружения и исправления ошибок в цифровых системах передачи и хранения данных, особенно при работе с многомодульными сигналами (например, в каналах с многопозиционной модуляцией) или при кодировании недвоичных данных, таких как байты или символы в памяти современных процессоров (ECC-память). Наиболее известными представителями являются коды Рида — Соломона, нашедшие широкое применение в оптических дисках, спутниковой связи и системах массового хранения.

История

Теория недвоичных циклических кодов начала развиваться в конце 1950-х — начале 1960-х годов как обобщение двоичных кодов, впервые систематически описанных У. У. Петерсоном (W. W. Peterson) в 1961 году. Важнейший этап связан с работами И. С. Рида (Irving S. Reed) и Г. Соломона (Gustave Solomon), которые в 1960 году представили код, ныне носящий их имя — код Рида — Соломона. Этот код является недвоичным циклическим, поскольку алфавит кодовых слов состоит из элементов поля GF(q). В 1960-х годах Р. Блют (R. Blahut) и Э. Берлекэмп (E. Berlekamp) разработали эффективные алгоритмы декодирования, такие как алгоритм Берлекэмпа — Месси, что сделало коды Рида — Соломона практически применимыми. К 1970-м годам недвоичные циклические коды стали стандартом в системах хранения данных (CD, DVD, Blu-ray) и спутниковой связи (например, в системе «Вояджер»). В России теория развивалась в работах А. А. Марковникова, В. Д. Колесника, Е. Т. Мирочникова, а также в рамках советской школы теории помехоустойчивого кодирования.

Определение и алгебраическая структура

Недвоичный циклический код над полем GF(q) длины n определяется как идеал факторкольца многочленов GF(q)[x]/(xⁿ — 1). Формально код является идеалом, порождённым порождающим многочленом g(x) степени r = n — k, где k — размерность кода (число информационных символов). Многочлен g(x) делит xⁿ — 1 без остатка. Все кодовые слова представляют собой многочлены степени не выше n-1, кратные g(x). Длина кода n должна удовлетворять условию n | q^m — 1, где m — минимальное целое, такое что n делит q^m — 1. Это связано с тем, что многочлен xⁿ — 1 разлагается на множители в поле GF(q^m).

Порождающий и проверочный многочлены

Порождающий многочлен g(x) имеет степень r = n — k. Его корни являются элементами поля GF(q^m) — это некоторые степени примитивного элемента α поля. Проверочный многочлен h(x) = (xⁿ — 1) / g(x) имеет степень k. Каждое кодовое слово c(x) удовлетворяет уравнению c(x) h(x) ≡ 0 mod (xⁿ — 1), что эквивалентно ортогональности проверочной матрице.

Виды и классификация

Недвоичные циклические коды делятся на несколько основных типов:

Параметры и характеристики

Основными параметрами недвоичного циклического кода являются:

Для недвоичных кодов важна способность исправлять не только отдельные ошибочные символы, но и их пакеты (burst errors), так как искажение одного символа в поле GF(2^m) эквивалентно искажению m бит.

Применение

Недвоичные циклические коды, особенно коды Рида — Соломона, находят применение в следующих областях:

Пример: код Рида — Соломона RS(255, 223)

Рассмотрим код Рида — Соломона RS(255, 223) над полем GF(2^8). Параметры:

Декодирование

Основные алгоритмы декодирования недвоичных циклических кодов, особенно кодов Рида — Соломона, включают:

Преимущества и недостатки

Преимущества:

Недостатки:

Интересные факты

См. также

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →