Код Адамара
![]() | этой статьи Начальный раздел может оказаться слишком длинным . ( май 2020 г. ) |
Код Адамара | |
---|---|
Названный в честь | Жак Адамар |
Классификация | |
Тип | Линейный блочный код |
Длина блока | |
Длина сообщения | |
Ставка | |
Расстояние | |
Размер алфавита | |
Обозначения | -код |
Расширенный код Адамара | |
---|---|
Названный в честь | Жак Адамар |
Классификация | |
Тип | Линейный блочный код |
Длина блока | |
Длина сообщения | |
Ставка | |
Расстояние | |
Размер алфавита | |
Обозначения | -код |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Hadamard-Code.svg/250px-Hadamard-Code.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Variadic_logical_XOR.svg/250px-Variadic_logical_XOR.svg.png)
Здесь белые поля означают 0
и красные поля для 1
Код Адамара — это код исправления ошибок , названный в честь Жака Адамара , который используется для обнаружения и исправления ошибок при передаче сообщений по очень шумным или ненадежным каналам. В 1971 году код использовался для передачи фотографий Марса обратно на Землю с космического зонда НАСА « Маринер-9» . [1] Благодаря своим уникальным математическим свойствам код Адамара не только используется инженерами, но и интенсивно изучается в теории кодирования , математике и теоретической информатике . Код Адамара известен также под названиями код Уолша , семейство Уолша , [2] и код Уолша – Адамара [3] в знак признания американского математика Джозефа Леонарда Уолша .
Код Адамара является примером линейного кода длины над двоичным алфавитом . К сожалению, этот термин несколько двусмысленен, поскольку в некоторых ссылках предполагается длина сообщения. в то время как другие предполагают длину сообщения . В этой статье первый случай называется кодом Адамара , а второй — расширенным кодом Адамара .
Код Адамара уникален тем, что каждое ненулевое кодовое слово имеет вес Хэмминга , равный ровно , из чего следует, что расстояние кода также равно . В стандартных обозначениях теории кодирования для блочных кодов код Адамара представляет собой -код, то есть линейный код в двоичном алфавите , имеет длину блока , длина сообщения (или размер) , и минимальное расстояние . Длина блока очень велика по сравнению с длиной сообщения, но с другой стороны, ошибки можно исправить даже в очень зашумленных условиях.
Расширенный код Адамара — это немного улучшенная версия кода Адамара; это -code и, таким образом, имеет немного лучшую скорость , сохраняя при этом относительное расстояние , и поэтому является предпочтительным в практических приложениях. В теории связи это просто называется кодом Адамара и он аналогичен коду Рида – Мюллера первого порядка в двоичном алфавите. [4]
Обычно коды Адамара основаны на построении матриц Адамара Сильвестром , но термин «код Адамара» также используется для обозначения кодов, построенных из произвольных матриц Адамара , которые не обязательно относятся к типу Сильвестра. В общем случае такой код не является линейным. Такие коды были впервые созданы Раджем Чандрой Босом и Шарадчандрой Шанкаром Шрикханде в 1959 году. [5] Если n — размер матрицы Адамара, код имеет параметры , что означает, что это необязательно линейный двоичный код с 2 n кодовыми словами длины блока n и минимальным расстоянием n /2. Описанная ниже схема построения и декодирования применима для общего n , но свойство линейности и идентификация с кодами Рида – Мюллера требуют, чтобы n было степенью 2 и чтобы матрица Адамара была эквивалентна матрице, построенной методом Сильвестра.
Код Адамара — это локально декодируемый код, который позволяет с высокой вероятностью восстановить части исходного сообщения, просматривая при этом лишь небольшую часть полученного слова. Это дает начало приложениям в теории сложности вычислений и, в частности, в разработке вероятностно проверяемых доказательств . Поскольку относительное расстояние кода Адамара составляет 1/2, обычно можно надеяться только на исправление ошибки, составляющей не более 1/4. Однако, используя декодирование списка , можно вычислить короткий список возможных сообщений-кандидатов длиной менее часть битов полученного слова повреждены.
В связи множественного доступа с кодовым разделением каналов (CDMA) код Адамара называется кодом Уолша и используется для определения отдельных каналов связи . В литературе по CDMA обычно кодовые слова называют «кодами». Каждый пользователь будет использовать другое кодовое слово или «код» для модуляции своего сигнала. Поскольку кодовые слова Уолша математически ортогональны , сигнал, закодированный Уолшем, отображается как случайный шум с поддержкой CDMA для мобильного терминала , если только этот терминал не использует то же самое кодовое слово, что и то, которое использовалось для кодирования входящего сигнала . [6]
История [ править ]
Код Адамара — это название, которое чаще всего используется для этого кода в литературе. Однако в современном использовании эти коды с исправлением ошибок называются кодами Уолша – Адамара.
Для этого есть причина:
Жак Адамар не изобрел код сам, но он определил матрицы Адамара первый код исправления ошибок — код Хэмминга примерно в 1893 году, задолго до того, как в 1940-х годах был разработан .
Код Адамара основан на матрицах Адамара, и хотя здесь можно использовать множество различных матриц Адамара, обычно только конструкция матриц Адамара Сильвестра для получения кодовых слов кода Адамара используется .
Джеймс Джозеф Сильвестр разработал свою конструкцию матриц Адамара в 1867 году, что фактически предшествует работе Адамара над матрицами Адамара. Поэтому название кода Адамара является спорным, и иногда этот код называют кодом Уолша , в честь американского математика Джозефа Леонарда Уолша .
Расширенный код Адамара использовался во время миссии Mariner 9 в 1971 году для исправления ошибок передачи изображения. Двоичные значения, использованные во время этой миссии, имели длину 6 бит, что представляло 64 значения в оттенках серого .
Из-за ограничений качества настройки передатчика в то время (из-за проблем с доплеровским контуром слежения) максимальная полезная длина данных составляла около 30 бит. Вместо использования кода повторения использовался код Адамара [32, 6, 16].
С помощью этой схемы можно исправить ошибки размером до 7 бит на 32-битное слово. По сравнению с кодом с 5 повторениями , свойства исправления ошибок этого кода Адамара намного лучше, но его скорость сопоставима. Эффективный алгоритм декодирования стал важным фактором при решении использовать этот код.
Используемая схема получила название «Зеленая машина». Он использовал быстрое преобразование Фурье , которое может увеличить скорость декодирования в три раза. С 1990-х годов использование этого кода космическими программами более или менее прекратилось, а сеть дальнего космоса НАСА не поддерживает эту схему исправления ошибок для своих антенн, размер которых превышает 26 м.
Конструкции [ править ]
Хотя все коды Адамара основаны на матрицах Адамара, их конструкции слегка различаются для разных научных областей, авторов и применений. Инженеры, использующие коды для передачи данных, и теоретики кодирования , анализирующие экстремальные свойства кодов, обычно хотят, чтобы скорость кода была как можно выше, даже если это означает, что конструкция становится математически несколько менее элегантной.
С другой стороны, для многих приложений кодов Адамара в теоретической информатике не так важно достичь оптимальной скорости, и, следовательно, более простые конструкции кодов Адамара являются предпочтительными, поскольку их можно анализировать более элегантно.
внутренних продуктов Строительство с использованием
Когда дано двоичное сообщение длины код Адамара кодирует сообщение в кодовое слово используя функцию кодирования Эта функция использует внутренний продукт из двух векторов , который определяется следующим образом:
Тогда кодирование Адамара определяется как последовательность всех внутренних продуктов с :
Как упоминалось выше, расширенный на практике используется код Адамара, поскольку сам код Адамара несколько расточителен. Это происходит потому, что если первый бит равен нулю, , то внутренний продукт не содержит никакой информации о , и, следовательно, невозможно полностью декодировать только с этих позиций кодового слова. С другой стороны, когда кодовое слово ограничено позициями, где , все еще возможно полностью декодировать . Следовательно, имеет смысл ограничить код Адамара этими позициями, что приводит к расширенному кодированию Адамара ; то есть, .
Построение с использованием порождающей матрицы [ править ]
Код Адамара является линейным кодом, и все линейные коды могут быть сгенерированы с помощью порождающей матрицы. . Это матрица такая, что держится для всех , где сообщение рассматривается как вектор-строка, а векторно-матричное произведение понимается в векторном пространстве над конечным полем . В частности, эквивалентный способ записи определения внутреннего произведения для кода Адамара возникает при использовании порождающей матрицы, столбцы которой состоят из всех строк. длины , то есть,
где это -й бинарный вектор в лексикографическом порядке . Например, порождающая матрица для кода Адамара размерности является:
Матрица это -матрица и порождает линейный оператор .
Генераторная матрица расширенного кода Адамара получается ограничением матрицы к столбцам, первая запись которых равна единице. Например, порождающая матрица расширенного кода Адамара размерности является:
Затем является линейным отображением с .
Для общего , порождающая матрица расширенного кода Адамара является матрицей проверки четности расширенного кода Хэмминга длины и размер , что делает расширенный код Адамара двойным кодом расширенного кода Хэмминга. Следовательно, альтернативный способ определения кода Адамара - через его матрицу проверки четности: матрица проверки четности кода Адамара равна порождающей матрице кода Хэмминга.
Построение с использованием общих матриц Адамара [ править ]
Коды Адамара получаются из n - n матрицы Адамара H . В частности, 2 n кодовых слов кода — это строки H и строки − H . Чтобы получить код в алфавите {0,1}, отображение −1 ↦ 1, 1 ↦ 0 или, что то же самое, x ↦ (1 − x к элементам матрицы применяется )/2. То, что минимальное расстояние кода равно n /2, следует из определяющего свойства матриц Адамара, а именно из того, что их строки взаимно ортогональны. Это означает, что две различные строки матрицы Адамара различаются ровно в n /2 позициях, и, поскольку отрицание строки не влияет на ортогональность, любая строка H отличается от любой строки - H в n также /2 позициях, за исключением случаев, когда строки совпадают, и в этом случае они различаются по n позициям.
Чтобы получить расширенный код Адамара выше с помощью выбранная матрица Адамара H должна быть типа Сильвестра, что приводит к длине сообщения .
Расстояние [ править ]
Расстояние кода — это минимальное расстояние Хэмминга между любыми двумя различными кодовыми словами, т. е. минимальное количество позиций, в которых различаются два различных кодовых слова. Поскольку код Уолша-Адамара является линейным кодом , расстояние равно минимальному весу Хэмминга среди всех его ненулевых кодовых слов. Все ненулевые кодовые слова кода Уолша – Адамара имеют вес Хэмминга ровно по следующему аргументу.
Позволять быть ненулевым сообщением. Тогда следующее значение в точности равно доле позиций в кодовом слове, равных единице:
Тот факт, что последнее значение в точности называется принципом случайной суммы . Чтобы убедиться в этом, предположим без ограничения общности, что . Тогда, при условии, что значения , событие эквивалентно для некоторых в зависимости от и . Вероятность того, что случается, это точно . Таким образом, фактически все ненулевые кодовые слова кода Адамара имеют относительный вес Хэмминга. , и, таким образом, его относительное расстояние равно .
Относительное расстояние расширенного кода Адамара равно также, но у него больше нет того свойства, что каждое ненулевое кодовое слово имеет точный вес. поскольку все вектор s — кодовое слово расширенного кода Адамара. Это потому, что вектор кодирует в . Более того, всякий раз, когда ненулевое значение и не является вектором снова применяется принцип случайной суммы, и относительный вес это точно .
Локальная декодируемость [ править ]
код Локально декодируемый — это код, который позволяет с высокой вероятностью восстановить один бит исходного сообщения, просмотрев лишь небольшую часть полученного слова.
Код -запрос локально декодируемый, если бит сообщения, , можно восстановить, проверив бит полученного слова. Более формально, код, , является -локально декодируемый, если существует вероятностный декодер, , такой, что (Примечание: представляет собой расстояние Хэмминга между векторами и ) :
, подразумевает, что
Теорема 1: Код Уолша–Адамара -локально декодируемый для всех .
Лемма 1: Для всех кодовых слов в коде Уолша-Адамара, , , где представлять биты в на позициях и соответственно, и представляет бит в позиции .
Доказательство леммы 1 [ править ]
Позволять быть кодовым словом в соответствующий сообщению .
Позволять быть порождающей матрицей .
По определению, . Из этого, . По строительству , . Следовательно, путем замены .
Доказательство теоремы 1 [ править ]
Для доказательства теоремы 1 построим алгоритм декодирования и докажем его корректность.
Алгоритм [ править ]
Ввод: полученное слово.
Для каждого :
- Выбирать равномерно случайным образом.
- Выбирать такой, что , где это -й стандартный базисный вектор и это побитовое ИЛИ исключающее и .
- .
Выход: Сообщение
Доказательство правильности [ править ]
Для любого сообщения и получил слово такой, что отличается от максимум доля битов, может быть декодировано с вероятностью не менее .
По лемме 1 . С и выбираются равномерно, вероятность того, что самое большее . Аналогично, вероятность того, что самое большее . Согласно объединению , вероятность того, что либо или не совпадают с соответствующими битами в самое большее . Если оба и соответствуют , то будет применяться лемма 1 и, следовательно, правильное значение будет вычислено. Следовательно, вероятность декодируется правильно, по крайней мере . Поэтому, и для быть позитивным, .
Следовательно, код Уолша–Адамара имеет вид локально декодируемый для .
Оптимальность [ править ]
Для k ≤ 7 линейные коды Адамара оказались оптимальными в смысле минимального расстояния. [7]
См. также [ править ]
- Последовательность Задова – Чу - улучшение по сравнению с кодами Уолша – Адамара.
Ссылки [ править ]
- ^ Малек, Масуд (2006). «Коды хадармарков». Теория кодирования (PDF) . Архивировано из оригинала (PDF) 9 января 2020 г.
- ^ Амадей, М.; Манзоли, Умберто; Мерани, Мария Луиза (17 ноября 2002 г.). «О назначении кодов Уолша и квазиортогональных кодов в системе DS-CDMA с несколькими несущими и несколькими классами пользователей». Глобальная конференция по телекоммуникациям, 2002. GLOBECOM'02. ИИЭЭ . Том. 1. ИИЭР . стр. 841–845. дои : 10.1109/GLOCOM.2002.1188196 . ISBN 0-7803-7632-3 .
- ^ Арора, Санджив ; Барак, Вооз (2009). «Раздел 19.2.2». Вычислительная сложность: современный подход . Издательство Кембриджского университета . ISBN 978-0-521-42426-4 .
- ^ Гурусвами, Венкатесан (2009). Список расшифровок двоичных кодов (PDF) . п. 3.
- ^ Бозе, Радж Чандра ; Шрикханде, Шарадчандра Шанкар (июнь 1959 г.). «Заметка об одном результате теории построения кодов». Информация и контроль . 2 (2): 183–194. CiteSeerX 10.1.1.154.2879 . дои : 10.1016/S0019-9958(59)90376-6 .
- ^ Лэнгтон, Чаран [в Викиданных] (2002). «Учебное пособие по CDMA: интуитивное руководство по принципам связи» (PDF) . От сложного к реальному. Архивировано (PDF) из оригинала 20 июля 2011 г. Проверено 10 ноября 2017 г.
- ^ Яффе, Дэвид Б.; Буюклиев, Илья. «Оптимальные двоичные линейные коды размерностью не выше семи» . Архивировано из оригинала 8 августа 2007 г. Проверено 21 августа 2007 г.
Дальнейшее чтение [ править ]
- Рудра, Атри. «Код Хэмминга и граница Хэмминга» (PDF) . Конспект лекций .
- Рудольф, Дитмар; Рудольф, Матиас (12 апреля 2011 г.). «46.4. Коды Адамара – или Уолша». Modulationsverfahren (PDF) (на немецком языке). Котбус, Германия: Бранденбургский технологический университет (BTU). п. 214. Архивировано (PDF) из оригинала 16 июня 2021 г. Проверено 14 июня 2021 г. (xiv+225 страниц)