Код Адамара | |
---|---|
Назван в честь | Жака Адамара |
Классификация | |
Тип | Линейный код блока |
Длина блока | |
Длина сообщения | |
Скорость | |
Расстояние | |
Размер алфавита | |
Обозначение | -код |
|
Расширенный код Адамара | |
---|---|
Назван в честь | Жака Адамара |
Классификация | |
Тип | Линейный код блока |
Длина блока | |
Длина сообщения | |
Rate | |
Distance | |
Размер алфавита | |
Обозначение | -c ode |
|
. Код Адамара - это код исправления ошибок, названный в честь Jacques Hadamard, который используется для обнаружения и исправления ошибок при передаче сообщений по очень шумным или ненадежным каналам. В 1971 году этот код использовался для передачи фотографий Марса обратно на Землю с космического зонда НАСА Mariner 9. Из-за своих уникальных математических свойств код Адамара не только используется инженерами, но также интенсивно изучается в теории кодирования, математике и теоретической информатике. Код Адамара также известен под названиями код Уолша, семейство Уолша и код Уолша – Адамара в знак признания американского математика Джозефа Леонарда Уолша.
Код Адамара является примером линейного кода длиной над двоичным алфавитом. К сожалению, этот термин несколько неоднозначен, поскольку некоторые ссылки предполагают длину сообщения , в то время как другие предполагают длину сообщения . В этой статье первый случай называется кодом Адамара, а второй - расширенным кодом Адамара .
. Код Адамара уникален тем, что каждое ненулевое кодовое слово имеет Вес Хэмминга ровно , что означает, что расстояние кода также . В стандартной нотации теории кодирования для блочных кодов код Адамара имеет вид -код, то есть это линейный код над двоичным алфавитом, имеет длину блока , длина сообщения (или размер) , и минимальное расстояние . Длина блока очень велика по сравнению с длиной сообщения, но, с другой стороны, ошибки можно исправить даже в очень шумных условиях.
Расширенный код Адамара - это немного улучшенная версия кода Адамара; это a -код и, следовательно, имеет немного лучшую скорость при сохранении относительного расстояния , и поэтому предпочтительнее на практике Приложения. В теории коммуникации это просто называется кодом Адамара, и он аналогичен первому порядку кода Рида – Маллера в двоичном алфавите.
Обычно коды Адамара основаны на Построение матриц Адамара Сильвестром, но термин «код Адамара» также используется для обозначения кодов, построенных из произвольных матриц Адамара, которые не обязательно относятся к типу Сильвестра. В целом такой код не является линейным. Такие коды впервые были построены Р. К. Бозе и С. С. Шриханде в 1959 году. Если n - размер матрицы Адамара, код имеет параметры , что означает, что это необязательно линейный двоичный код с 2n кодовыми словами длиной блока n и минимальным расстоянием n / 2. Схема построения и декодирования, описанная ниже, применима к общему n, но свойство линейности и отождествление с кодами Рида – Маллера требуют, чтобы n было степенью 2 и чтобы матрица Адамара была эквивалентна матрице, построенной методом Сильвестра.
Код Адамара - это локально декодируемый код, который обеспечивает способ восстановления частей исходного сообщения с высокой вероятностью, глядя только на небольшую часть принятого слова. Это дает начало приложениям в теории сложности вычислений и, в частности, в разработке вероятностно проверяемых доказательств. Так как относительное расстояние кода Адамара равно 1/2, обычно можно только надеяться исправить не более 1/4 доли ошибки. Однако с помощью декодирования списка можно вычислить короткий список возможных сообщений-кандидатов, если их меньше бит в полученном слове повреждены.
В связи множественного доступа с кодовым разделением каналов (CDMA) код Адамара упоминается как код Уолша и используется для определения отдельных каналов связи. В литературе CDMA принято называть кодовые слова «кодами». Каждый пользователь будет использовать другое кодовое слово или «код» для модуляции своего сигнала. Поскольку кодовые слова Уолша математически ортогональны, кодированный Уолш сигнал отображается как случайный шум для мобильного терминала с поддержкой CDMA, если только этот терминал не использует то же кодовое слово, что и один, используемый для кодирования входящего сигнала .
Код Адамара - это название, которое наиболее часто используется для этого кода в литературе. Однако в современном использовании эти коды с исправлением ошибок называют кодами Уолша-Адамара.
Для этого есть причина:
Жак Адамар не изобрел код сам, но он определил матрицы Адамара примерно в 1893 году, задолго до первой ошибки . -корректирующий код, код Хэмминга, был разработан в 1940-х годах.
Код Адамара основан на матрицах Адамара, и хотя здесь можно использовать множество различных матриц Адамара, обычно только построение Сильвестром матриц Адамара используется для получения кодовых слов Код Адамара.
Джеймс Джозеф Сильвестр разработал свою конструкцию матриц Адамара в 1867 году, что на самом деле предшествует работе Адамара по матрицам Адамара. Следовательно, название кода Адамара оспаривается, и иногда код называют кодом Уолша, в честь американского математика Джозефа Леонарда Уолша.
Во время миссии Mariner 9 1971 года использовался расширенный код Адамара для исправления ошибок. ошибки передачи изображения. Слова данных, используемые во время этой миссии, имели длину 6 бит, что представляло 64 значения оттенков серого.
Из-за ограничений качества юстировки передатчика в то время (из-за проблем с доплеровским контуром слежения) максимальная полезная длина данных составляла около 30 бит. Вместо использования кода повторения был использован код Адамара [32, 6, 16].
Ошибки до 7 бит на слово могут быть исправлены с помощью этой схемы. По сравнению с кодом повторения 5- свойства исправления ошибок этого кода Адамара намного лучше, но его скорость сопоставима. Эффективный алгоритм декодирования был важным фактором при принятии решения об использовании этого кода.
Используемая схема была названа «Зеленая машина». Он использовал быстрое преобразование Фурье, которое может увеличить скорость декодирования в три раза. С 1990-х годов использование этого кода космическими программами более или менее прекратилось, и NASA Deep Space Network не поддерживает эту схему исправления ошибок для своих антенн, длина которых превышает 26 метров.
Хотя все коды Адамара основаны на матрицах Адамара, конструкции тонко различаются для разных областей науки, авторов и использования. Инженеры, использующие коды для передачи данных, и теоретики кодирования, анализирующие экстремальные свойства кодов, обычно хотят, чтобы скорость кода была как можно более высокой, даже если это означает, что конструкция становится немного менее элегантной с математической точки зрения.
С другой стороны, для многих приложений кодов Адамара в теоретической информатике не так важно достижение оптимальной скорости, и, следовательно, более простые конструкции кодов Адамара предпочтительны, поскольку они могут анализироваться более элегантно.
При задании двоичного сообщения длины , код Адамара кодирует сообщение в кодовое слово с использованием функции кодирования Эта функция делает использование внутреннего продукта двух векторов , который определяется следующим образом:
Тогда Адамара кодирование определяется как последовательность всех внутренних продуктов с :
Как упоминалось выше, расширенный код Адамара используется на практике, поскольку сам код Адамара несколько расточителен. Это потому, что если первый бит равен нулю, , то внутренний продукт не содержит никакой информации о , и, следовательно, невозможно полностью декодировать только с этих позиций кодового слова. С другой стороны, когда кодовое слово ограничено позициями, где , все еще возможно полностью декодировать . Следовательно, имеет смысл ограничить код Адамара этими позициями, что приводит к расширенному кодированию Адамара ; то есть .
Код Адамара является линейным кодом, и все линейные коды могут быть сгенерированы образующей матрицей . Это матрица такая, что выполняется для всех , где сообщение рассматривается как вектор-строка, а произведение вектор-матрица понимается в векторном пространстве над конечным полем . В частности, эквивалентный способ написания определения внутреннего продукта для кода Адамара возникает с использованием порождающей матрицы, столбцы которой состоят из всех строк длины , то есть
где - это -й двоичный вектор в лексикографическом порядке. Например, порождающая матрица для кода Адамара размерности выглядит так:
Матрица - это a>(k × 2 k) {\ displaystyle (k \ times 2 ^ {k})}-матрица и дает начало линейному оператору .
Образующая матрица расширенного кода Адамара получается ограничением матрицы столбцами, первая запись которых равна единице. Например, порождающая матрица для расширенного кода Адамара размерности выглядит так:
Тогда является линейным отображением с .
для общего , порождающая матрица расширенного кода Адамара представляет собой матрицу проверки на четность для расширенного кода Хэмминга длины и измерение , что делает расширенный Код Адамара - двойной код расширенного кода Хэмминга. Следовательно, альтернативным способом определения кода Адамара является его матрица проверки на четность: матрица проверки на четность кода Адамара равна порождающей матрице кода Хэмминга.
Коды Адамара получаются из n × n матрицы Адамара H. В частности, 2n кодовых слов кода - это строки H и строки −H. Чтобы получить код над алфавитом {0,1}, к элементам матрицы применяется отображение −1 ↦ 1, 1 ↦ 0 или, что то же самое, x ↦ (1 - x) / 2. То, что минимальное расстояние кода равно n / 2, следует из определяющего свойства матриц Адамара, а именно, что их строки взаимно ортогональны. Это означает, что две различные строки матрицы Адамара различаются ровно на n / 2 позиций, и, поскольку отрицание строки не влияет на ортогональность, любая строка H отличается от любой строки −H также на n / 2 позиций, кроме случаев, когда строки соответствуют, и в этом случае они различаются n позициями.
Чтобы получить приведенный выше расширенный код Адамара с , выбранная матрица Адамара H должна быть типа Сильвестра, что дает длину сообщения .
Расстояние кода - это минимальное расстояние Хэмминга между любыми двумя отдельными кодовыми словами, то есть минимальное количество позиций, в которых два различных кодовых слова различаются. Поскольку код Уолша – Адамара является линейным кодом, расстояние равно минимальному весу Хэмминга среди всех его ненулевых кодовых слов. Все ненулевые кодовые слова кода Уолша – Адамара имеют вес Хэмминга ровно следующим образом аргумент.
Пусть ненулевое сообщение. Тогда следующее значение точно равно доле позиций в кодовом слове, равных единице:
Тот факт, что последнее значение равно и называется принципом случайной подсуммы. Чтобы убедиться, что это правда, предположим без ограничения общности, что . Затем, когда обусловлено значениями , событие эквивалентно для некоторых в зависимости от и . Вероятность того, что произойдет , равна точно . Таким образом, фактически все ненулевые кодовые слова кода Адамара имеют относительный вес Хэмминга , и, таким образом, их относительное расстояние составляет .
Относительное расстояние расширенного кода Адамара тоже , но у него больше нет свойства каждое ненулевое кодовое слово имеет вес точно , поскольку все вектор - кодовое слово расширенного кода Адамара. Это потому, что вектор кодируется как . Кроме того, всякий раз, когда отличен от нуля, а не вектор , снова применяется принцип случайной субсуммы, и относительный вес равен точно .
A Локально декодируемый код - это код, который позволяет с высокой вероятностью восстановить один бит исходного сообщения, глядя только на небольшую часть принятого слова.
Код - это -query локально декодируемый, если бит сообщения, , можно восстановить, проверив бит полученного слова. Более формально, код , равно - локально декодируемый, если существует вероятностный декодер, , так что (Примечание: представляет расстояние Хэмминга между векторами и ):
, означает, что
Теорема 1: Код Уолша – Адамара равен - локально декодируемый для всех .
Лемма 1: Для всех кодовых слов в коде Уолша – Адамара, , , где представляют биты в в позициях и соответственно, и представляет бит в позиции .
Пусть быть кодовым словом в , соответствующего сообщению .
Пусть быть образующей матрицей .
По определению, . Отсюда . По построению , . Следовательно, путем подстановки .
Для доказательства теоремы 1 мы построим алгоритм декодирования и докажем его корректность.
Вход: Полученное слово
Для каждого :
Вывод: Сообщение
Для любого сообщения и получено слово такое, что отличается от не более чем на доле битов, может быть декодирован с вероятностью при минимум .
По лемме 1, . Поскольку и выбираются равномерно, вероятность того, что не более . Точно так же вероятность того, что не превышает . По границе объединения вероятность того, что либо , либо не совпадают с соответствующими битами в не более . Если оба и соответствуют , тогда будет применяться лемма 1, и, следовательно, будет вычислено правильное значение . Следовательно, вероятность правильно декодирована, как минимум . Следовательно, и для быть положительным, .
Следовательно, уравнение Уолша – Адамара код локально декодируемый для
Для k ≤ 7 линейные коды Адамара были оптимально в смысле минимального расстояния.