Jump to content

Код Рида – Мюллера

Код Рида-Мюллера RM(r,m)
Назван в честь Ирвинг С. Рид и Дэвид Э. Мюллер
Классификация
Тип Линейный блочный код
Длина блока
Длина сообщения
Ставка
Расстояние
Размер алфавита
Обозначения -код

Коды Рида-Мюллера — это коды с исправлением ошибок , которые используются в приложениях беспроводной связи, особенно в связи в дальнем космосе. [ 1 ] Более того, предлагаемый стандарт 5G [ 2 ] опирается на тесно связанные полярные коды [ 3 ] для исправления ошибок в канале управления. Благодаря своим благоприятным теоретическим и математическим свойствам коды Рида – Мюллера также широко изучались в теоретической информатике .

Коды Рида-Мюллера обобщают коды Рида-Соломона и код Уолша-Адамара . Коды Рида-Мюллера — это линейные блочные коды , которые можно локально тестировать , локально декодировать и декодировать списком . Эти свойства делают их особенно полезными при разработке вероятностно проверяемых доказательств .

Традиционные коды Рида-Мюллера представляют собой двоичные коды, а это означает, что сообщения и кодовые слова представляют собой двоичные строки. Когда r и m являются целыми числами с 0 ≤ r m , код Рида–Мюллера с параметрами r и m обозначается как RM( r , m ). Когда его просят закодировать сообщение, состоящее из k бит, где выполняется, код RM( r , m ) создает кодовое слово, состоящее из 2 м биты.

Коды Рида-Мюллера названы в честь Дэвида Э. Мюллера , открывшего эти коды в 1954 году. [ 4 ] и Ирвинг С. Рид , предложивший первый эффективный алгоритм декодирования. [ 5 ]

Описание с использованием полиномов низкой степени

[ редактировать ]

Коды Рида – Мюллера можно описать несколькими разными (но в конечном итоге эквивалентными) способами. Описание, основанное на полиномах низкой степени, весьма элегантно и особенно подходит для их применения в качестве локально проверяемых кодов и локально декодируемых кодов . [ 6 ]

Блочный код может иметь одну или несколько функций кодирования. это отображает сообщения к кодовым словам . Код Рида-Мюллера RM( r , m ) имеет длину сообщения и длина блока . Один из способов определить кодировку для этого кода основан на вычислении полилинейных полиномов с m переменными и общей степенью не более r . Любой полилинейный многочлен над конечным полем из двух элементов можно записать следующим образом: являются переменными полинома, а значения являются коэффициентами многочлена. Обратите внимание, что существуют именно коэффициенты. Учитывая это, входное сообщение состоит из ценности которые используются в качестве этих коэффициентов. Таким образом, каждое сообщение дает уникальный полином в m переменных. Чтобы составить кодовое слово , кодер оценивает полином во всех точках , где полином берется с умножением и сложением по модулю 2 . То есть функция кодирования определяется через

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

Для кода RM( 2 , 4 ) параметры следующие:

Позволять быть только что определенной функцией кодирования. Чтобы закодировать строку x = 1 1010 010101 длины 11, кодер сначала строит полином в 4 переменных: Затем он оценивает этот полином во всех 16 точках оценки (0101 означает :

В результате имеет место C(1 1010 010101) = 1101 1110 0001 0010.

Как уже упоминалось, интерполяцию Лагранжа можно использовать для эффективного извлечения сообщения из кодового слова. Однако декодер должен работать, даже если кодовое слово было повреждено в нескольких позициях, то есть когда полученное слово отличается от любого кодового слова. В этом случае может помочь процедура локального декодирования.

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

Если рассматривать моном высшей степени в и суммируем все точки оценки полинома, где все переменные в имеют значения 0 или 1, а все остальные переменные имеют значение 0, вы получаете значение коэффициента (0 или 1) в (Есть такие моменты). Это связано с тем, что все младшие мономиальные делители появляется в сумме четное количество раз, и только появляется один раз.

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

После вычисления коэффициента, если он равен 1, обновите код, чтобы удалить моном. от входного кода и переходим к следующему моному в порядке, обратном их степени.

Давайте рассмотрим предыдущий пример и начнем с кода. С мы можем исправить максимум 1 ошибку в коде. Рассмотрим входной код как 1101 1110 0001 0110 (это предыдущий код с одной ошибкой).

Мы знаем степень многочлена самое большее , начнем с поиска монома степени 2.

    • мы начинаем с поиска точек оценки с помощью . В коде это: 1101 1110 0001 0110. Первая сумма равна 1 (нечетное число 1).
    • мы ищем оценочные баллы с . В коде это: 1101 1110 0001 0110. Вторая сумма равна 1.
    • мы ищем оценочные баллы с . В коде это: 1101 1110 0001 0110. Третья сумма равна 1.
    • мы ищем оценочные баллы с . В коде это: 1101 1110 0001 0110 . Третья сумма равна 0 (четное число 1).

Четыре суммы не согласуются (поэтому мы знаем, что есть ошибка), но отчет меньшинства не превышает максимально допустимое количество ошибок (1), поэтому мы берем большинство и коэффициент это 1.

Мы удаляем из кода перед продолжением: код: 1101 1110 0001 0110, оценка 0001000100010001, новый код 1100 1111 0000 0111.

    • 11 00 11 11 0000 0111. Сумма равна 0.
    • 11 00 11 11 0000 0111. Сумма равна 0.
    • 1100 1111 00 00 01 11. Сумма равна 1.
    • 1100 1111 00 00 01 11 . Сумма равна 0

Обнаружена одна ошибка, коэффициент равен 0, текущий код не изменяется.

    • 11 00 1111 00 00 0111. Сумма равна 0.
    • 11 00 1111 00 00 0111. Сумма равна 0.
    • 1100 11 11 0000 01 11. Сумма равна 1.
    • 1100 11 11 0000 01 11 . Сумма равна 0

Обнаружена одна ошибка, коэффициент равен 0, текущий код не изменяется.

    • 1 1 0 0 1 1 1 1 0000 0111. Сумма равна 1.
    • 1 1 0 0 1 1 1 1 0000 0111. Сумма равна 1.
    • 1100 1111 0 0 0 0 0 1 1 1. Сумма равна 1.
    • 1100 1111 0 0 0 0 0 1 1 1 . Сумма равна 0

Обнаружена одна ошибка, коэффициент 1, оценка 0000 0011 0000 0011, текущий код теперь 1100 1100 0000 0100.

    • 1 1 0 0 1100 0 0 0 0 0100. Сумма равна 1.
    • 1 1 0 0 1100 0 0 0 0 0100. Сумма равна 1.
    • 1100 1 1 0 0 0000 0 1 0 0. Сумма равна 1.
    • 1100 1 1 0 0 0000 0 1 0 0 . Сумма равна 0

Обнаружена одна ошибка, коэффициент 1, оценка 0000 0000 0011 0011, текущий код сейчас 1100 1100 0011 0111.

    • 1 100 1 100 0 011 0 111. Сумма равна 0.
    • 1 1 00 1 1 00 0 0 11 0 1 11. Сумма равна 1.
    • 11 0 0 11 0 0 00 1 1 01 1 1. Сумма равна 0
    • 110 0 110 0 001 1 011 1 . Сумма равна 0

Обнаружена одна ошибка, коэффициент равен 0, текущий код не изменяется. Теперь мы знаем все коэффициенты степени 2 для многочлена, можем начать монониалы степени 1. Обратите внимание, что для каждой следующей степени сумм в два раза больше, и каждая сумма вдвое меньше.

    • 11 00 1100 0011 0111. Сумма равна 0.
    • 11 00 1100 0011 0111. Сумма равна 0.
    • 1100 11 00 0011 0111. Сумма равна 0.
    • 1100 11 00 0011 0111. Сумма равна 0.
    • 1100 1100 00 11 0111. Сумма равна 0.
    • 1100 1100 00 11 0111. Сумма равна 0.
    • 1100 1100 0011 01 11. Сумма равна 1.
    • 1100 1100 0011 01 11 . Сумма равна 0

Обнаружена одна ошибка, коэффициент равен 0, текущий код не изменяется.

    • 1 1 0 0 1100 0011 0111. Сумма равна 1.
    • 1 1 0 0 1100 0011 0111. Сумма равна 1.
    • 1100 1 1 0 0 0011 0111. Сумма равна 1.
    • 1100 1 1 0 0 0011 0111. Сумма равна 1.
    • 1100 1100 0 0 1 1 0111. Сумма равна 1.
    • 1100 1100 0 0 1 1 0111. Сумма равна 1.
    • 1100 1100 0011 0 1 1 1. Сумма равна 1.
    • 1100 1100 0011 0 1 1 1 . Сумма равна 0

Обнаружена одна ошибка, коэффициент 1, оценка 0011 0011 0011 0011, текущий код сейчас 1111 1111 0000 0100.

Тогда мы найдем 0 для , 1 для и текущий код станет 1111 1111 1111 1011.

Для степени 0 у нас есть 16 сумм всего по 1 биту. Меньшинство по-прежнему имеет размер 1, и мы обнаружили и соответствующее начальное слово 1 1010 010101

Обобщение на более крупные алфавиты с помощью полиномов низкой степени

[ редактировать ]

Использование полиномов низкой степени над конечным полем размера , можно распространить определение кодов Рида–Мюллера на алфавиты размера . Позволять и — целые положительные числа, где следует рассматривать как нечто большее, чем . Чтобы закодировать сообщение ширины , сообщение снова интерпретируется как -вариативный полином общей степени не более и с коэффициентом от . Такой полином действительно имеет коэффициенты. Кодировка Рида-Мюллера список всех оценок общий . Таким образом, длина блока равна .

Описание с помощью порождающей матрицы

[ редактировать ]

Матрица -генератор для кода Рида – Маллера RM( r , m ) длины N = 2 м можно построить следующим образом. Запишем набор всех m -мерных двоичных векторов как:

Определим в N -мерном пространстве векторы индикаторов

на подмножествах к:

вместе с, также в , бинарная операция

называется клиновым произведением (не путать с клиновым произведением, определенным во внешней алгебре). Здесь, и являются точками в ( N -мерные двоичные векторы) и операция — обычное умножение в поле .

представляет собой m -мерное векторное пространство над полем , поэтому можно написать

Определим в N -мерном пространстве следующие векторы длиной и

где 1 ≤ i ≤ m и H i гиперплоскости в (размерностью m − 1 ):

Генераторная матрица

[ редактировать ]

код Рида–Мюллера RM( r , m ) порядка r и длины N = 2. м - это код, сгенерированный v 0 и секционными произведениями до r из v i , 1 ≤ i m (где по соглашению клиновое произведение менее одного вектора является идентификатором операции). Другими словами, мы можем построить матрицу-генератор для кода RM( r , m ) , используя векторы и их перестановки клиновых произведений до r за раз. , как строки порождающей матрицы, где 1 ≤ i k m .

Пусть m = 3. Тогда N = 8 и

и

Код RM(1,3) генерируется набором

или более явно по строкам матрицы:

Код RM(2,3) генерируется набором:

или более явно по строкам матрицы:

Характеристики

[ редактировать ]

Имеются следующие свойства:

  1. Набор всех возможных клиновых произведений размером до m из vi образует основу для .
  2. Код RM ( r , m ) имеет ранг
  3. РМ ( р , м ) знак равно РМ ( р , м - 1) | RM ( r − 1, m − 1) , где '|' обозначает штриховое произведение двух кодов.
  4. RM ( r , m ) имеет минимальный вес Хэмминга 2. м - р .

Доказательство

[ редактировать ]
  1. Есть

    такие векторы и имеют размерность N, поэтому достаточно проверить, что N векторов охватывают; эквивалентно, достаточно проверить, что .

    Пусть x двоичный вектор длины m , элемент X. — Пусть ( x ) i обозначает i й элемент х . Определять

    где 1 ≤ я м .

    Затем

    Разложение за счет распределительности клинового произведения дает . Тогда, поскольку векторы охватывать у нас есть .
  2. По значению 1 все такие клиновые произведения должны быть линейно независимыми, поэтому ранг RM( r, m ) должен быть просто количеством таких векторов.
  3. Опущено.
  4. По индукции.
    Код RM(0, m ) представляет собой код повторения длины N =2. м и вес N = 2 м −0 = 2 м - р . на 1 и имеет вес 1 = 2 0 = 2 м - р .
    В статье « Стержневое произведение (теория кодирования)» доказано, что вес штрихового произведения двух кодов C 1 , C 2 определяется выражением
    Если 0 < r < m и если
    1. RM( r , m − 1) имеет вес 2 м −1− р
    2. RM( r − 1, m − 1) имеет вес 2 м −1−( r −1) = 2 м - р
    тогда батончик имеет вес

Расшифровка кодов РМ

[ редактировать ]

Коды RM( r , m ) могут быть декодированы с использованием мажоритарного логического декодирования . Основная идея мажоритарного логического декодирования заключается в следующем. построить несколько контрольных сумм для каждого полученного элемента кодового слова. Поскольку каждая из различных контрольных сумм должна быть имеют одинаковое значение (т. е. значение веса элемента слова сообщения), мы можем использовать мажоритарное логическое декодирование для расшифровки значение элемента слова сообщения. После декодирования каждого порядка полинома полученное слово модифицируется. соответственно, путем удаления соответствующих кодовых слов, взвешенных по вкладам декодированного сообщения, до настоящего этапа. Таким образом, для RM-кода r- го порядка нам придется итеративно декодировать r+1 раз, прежде чем мы придем к окончательному результату. получено кодовое слово. Кроме того, значения битов сообщения рассчитываются по этой схеме; наконец-то мы можем рассчитать кодовое слово путем умножения слова сообщения (только что декодированного) на матрицу генератора.

Одним из признаков успешного декодирования является наличие модифицированного полученного слова, состоящего из всех нулей, в конце ( r + 1)-этапа декодирования. посредством мажоритарного логического декодирования. Этот метод был предложен Ирвингом С. Ридом и является более общим при применении. другим кодам конечной геометрии.

Описание с использованием рекурсивной конструкции

[ редактировать ]

Код Рида – Мюллера RM( r,m ) существует для любых целых чисел. и . RM( m , m ) определяется как вселенная ( ) код. RM(−1,m) определяется как тривиальный код ( ). Остальные коды RM могут быть построены из этих элементарных кодов с использованием конструкции удвоения длины.

Из этой конструкции RM( r,m ) представляет собой двоичный линейный блочный код ( n , k , d ) длины n = 2. м , измерение и минимальное расстояние для . Двойственный код к RM( r,m ) — это RM( m - r -1, m ). Это показывает, что повторение и SPC-коды двойственны, биортогональные и расширенные коды Хэмминга двойственны и что коды с k = n /2 самодуальны.

Особые случаи кодов Рида – Мюллера.

[ редактировать ]

Таблица всех кодов RM(r,m) для m≤5

[ редактировать ]

Все коды RM( r , m ) с и размер алфавита 2 отображаются здесь с аннотациями стандартной теории кодирования [n,k,d] для блочных кодов . Код RM( r , m ) представляет собой -код, то есть линейный код в двоичном алфавите , имеет длину блока , сообщения длина (или размерность) k и минимальное расстояние .

0 1 2 3 4 5 м
РМ( м,м )
( 2 м , 2 м , 1)
коды вселенной
РМ(5,5)
(32,32,1)
РМ(4,4)
(16,16,1)
RM( м - 1, м )
(2 м , 2 м −1, 2)
SPC Коды
РМ(3,3)
(8,8,1)
РМ(4,5)
(32,31,2)
РМ(2,2)
(4,4,1)
РМ(3,4)
(16,15,2)
RM( м - 2, м )
(2 м , 2 м м −1, 4)
расширенные коды Хэмминга
РМ(1,1)
(2,2,1)
РМ(2,3)
(8,7,2)
РМ(3,5)
(32,26,4)
РМ(0,0)
(1,1,1)
РМ(1,2)
(4,3,2)
РМ(2,4)
(16,11,4)
РМ(0,1)
(2,1,2)
РМ(1,3)
(8,4,4)
РМ(2,5)
(32,16,8)
RM( р , м =2 р +1)
(2 2 р +1 , 2 2 р , 2 р +1 )
самодвойственные коды
РМ(-1,0)
(1,0, )
РМ(0,2)
(4,1,4)
РМ(1,4)
(16,5,8)
РМ(-1,1)
(2,0, )
РМ(0,3)
(8,1,8)
РМ(1,5)
(32,6,16)
РМ(-1,2)
(4,0, )
РМ(0,4)
(16,1,16)
RM(1, м )
(2 м , м +1, 2 м −1 )
проколотые коды Адамара
РМ(-1,3)
(8,0, )
РМ(0,5)
(32,1,32)
РМ(-1,4)
(16,0, )
RM(0, м )
(2 м , 1, 2 м )
коды повторения
РМ(-1,5)
(32,0, )
RM(−1, м )
(2 м , 0, ∞)
тривиальные коды

Свойства кодов RM(r,m) при r≤1 или r≥m-1

[ редактировать ]
  1. ^ Мэсси, Джеймс Л. (1992), «Связь и кодирование в дальнем космосе: брак, заключенный на небесах», Передовые методы спутниковой и дальней космической связи , Конспекты лекций по управлению и информатике, том. 182, Springer-Verlag, стр. 1–17, CiteSeerX   10.1.1.36.4265 , doi : 10.1007/bfb0036046 , ISBN  978-3540558514 PDF
  2. ^ «Итоговый отчет заседания №87 3GPP РАН1» . 3ГПП . Проверено 31 августа 2017 г.
  3. ^ Арикан, Эрдал (2009). «Поляризация канала: метод построения кодов достижения пропускной способности для симметричных каналов без памяти с двоичным вводом - журналы и журналы IEEE». Транзакции IEEE по теории информации . 55 (7): 3051–3073. arXiv : 0807.3917 . дои : 10.1109/TIT.2009.2021379 . hdl : 11693/11695 . S2CID   889822 .
  4. ^ Мюллер, Дэвид Э. (1954). «Применение булевой алгебры к проектированию коммутационных схем и обнаружению ошибок». Труды профессиональной группы IRE по электронным компьютерам . ИК-3 (3): 6–12. дои : 10.1109/irepgelc.1954.6499441 . ISSN   2168-1740 .
  5. ^ Рид, Ирвинг С. (1954). «Класс кодов, исправляющих множественные ошибки, и схема декодирования». Труды профессиональной группы IRE по теории информации . 4 (4): 38–49. дои : 10.1109/тит.1954.1057465 . hdl : 10338.dmlcz/143797 . ISSN   2168-2690 .
  6. ^ Прахлад Харша и др., Пределы алгоритмов аппроксимации: PCP и уникальные игры (Конспекты лекций учебного пособия DIMACS) , Раздел 5.2.1.
  7. ^ Треллис и турбокодирование, К. Шлегель и Л. Перес, Wiley Interscience, 2004, стр. 149.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c27cb33bd56cba1f63fd3b991abbcdbe__1720736820
URL1:https://arc.ask3.ru/arc/aa/c2/be/c27cb33bd56cba1f63fd3b991abbcdbe.html
Заголовок, (Title) документа по адресу, URL1:
Reed–Muller code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)