Стандартный массив - Standard array - Wikipedia

В теория кодирования, а стандартный массив (или массив Слепиан) - это к массив, в котором перечислены все элементы определенного векторное пространство. Стандартные массивы используются для расшифровать линейные коды; т.е. найти соответствующий кодовое слово для любого полученного вектора.

Определение

Стандартный массив для [п,k] -код - это к массив где:

  1. В первой строке перечислены все кодовые слова0 кодовое слово в крайнем левом углу)
  2. Каждая строка представляет собой смежный с лидер группы в первом столбце
  3. Запись в i-й строке и j-м столбце представляет собой сумму i-го лидера смежного класса и j-го кодового слова.

Например, [5,2]-код = {0, 01101, 10110, 11011} имеет следующий стандартный массив:

0011011011011011
10000111010011001011
01000001011111010011
00100010011001011111
00010011111010011001
00001011001011111010
11000101010111000011
10001111000011101010

Вышеупомянутое - только одна возможность для стандартного массива; был ли 00011 выбран в качестве первого лидер группы веса два, был бы построен другой стандартный массив, представляющий код.

Первая строка содержит 0 вектор и кодовые слова (0 сам является кодовым словом). Кроме того, крайний левый столбец содержит векторы минимальный вес сначала перечисляя векторы веса 1, а затем используя векторы веса 2. Также каждый возможный вектор в векторном пространстве появляется ровно один раз.

Построение стандартного массива

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

  1. Перечислите кодовые слова , начиная с 0, как первая строка
  2. Выберите любой вектор минимального веса, которого еще нет в массиве. Запишите это как первую запись следующей строки. Этот вектор обозначается как 'лидер группы '.
  3. Заполните строку, добавив лидера смежного класса к кодовому слову вверху каждого столбца. Сумма i-го лидера смежного класса и j-го кодового слова становится записью в строке i, столбце j.
  4. Повторяйте шаги 2 и 3, пока не будут перечислены все строки / смежные классы и каждый вектор не появится ровно один раз.

Добавление векторов выполняется по модулю q. Например, двоичные коды добавляются по модулю 2 (что эквивалентно поразрядному сложению XOR). Например, в , 11000 + 11011 = 00011.

Выбор разных лидеров смежных классов создаст немного другой, но эквивалентный стандартный массив и не повлияет на результаты при декодировании.

Пример конструкции

Позволять быть двоичный [4,2] -код. то есть C = {0000, 1011, 0101, 1110}. Чтобы построить стандартный массив, мы сначала перечисляем кодовые слова в строке.

0000101101011110

Затем мы выбираем вектор минимального веса (в данном случае веса 1), который не использовался. Этот вектор становится лидером смежного класса для второй строки.

0000101101011110
1000

Следуя шагу 3, мы завершаем строку, добавляя лидера смежного класса к каждому кодовому слову.

0000101101011110
1000001111010110

Затем повторяем шаги 2 и 3, пока не закончим все ряды. Мы останавливаемся, когда достигли ряды.

0000101101011110
1000001111010110
0100111100011010
0010100101111100

В этом примере мы не могли выбрать вектор 0001 в качестве лидера смежного класса последней строки, даже если он соответствует критерию минимального веса (1), потому что вектор уже присутствовал в массиве. Однако мы могли бы выбрать его в качестве первого лидера смежного класса и построить другой стандартный массив.

Расшифровка через стандартный массив

Чтобы декодировать вектор с использованием стандартного массива, вычтите вектор ошибки - или лидера смежного класса - из полученного вектора. Результатом будет одно из кодовых слов в . Например, предположим, что мы используем код C = {0000, 1011, 0101, 1110} и создали соответствующий стандартный массив, как показано в примере выше. Если мы получаем вектор 0110 как сообщение, мы находим этот вектор в стандартном массиве. Затем мы вычитаем лидера смежного класса вектора, а именно 1000, чтобы получить результат 1110. Мы получили кодовое слово 1110.

Декодирование с помощью стандартного массива представляет собой форму декодирование ближайшего соседа. На практике для декодирования с помощью стандартного массива требуется большой объем памяти - для кода с 32 кодовыми словами требуется стандартный массив с записи. Другие формы декодирования, такие как расшифровка синдрома, более эффективны.

Декодирование с помощью стандартного массива не гарантирует правильного декодирования всех векторов. Если мы получим вектор 1010, использование стандартного массива выше расшифрует сообщение как 1110, расстояние кодового слова равно 1. Однако 1010 также находится на расстоянии 1 от кодового слова 1011. В таком случае некоторые реализации могут запросить повторную отправку сообщения, или неоднозначный бит может быть помечен как стирание и последующий внешний код может исправить это. Эта неоднозначность - еще одна причина того, что иногда используются разные методы декодирования.

Смотрите также

Рекомендации

  • Хилл, Раймонд (1986). Первый курс теории кодирования. Серия Oxford Applied Mathematics and Computing Science. Oxford University Press. ISBN  978-0-19-853803-5. Cite имеет пустой неизвестный параметр: |1= (помощь)