hammgen

Проверка четности и матрицы генератора для Кода Хемминга

Описание

пример

h = hammgen(m) возвращает m- n матрица проверки четности, h, для Кода Хемминга длины кодовой комбинации n = 2m–1. Длиной сообщения Кода Хемминга является nm. Бинарный примитивный полином, что функциональное использование, чтобы создать Код Хемминга является примитивным полиномом по умолчанию в GF (2^m). Для получения дополнительной информации этого полинома по умолчанию, смотрите gfprimdf функция.

пример

h = hammgen(m,poly) задает poly, бинарный примитивный полином для GF (2 м). Функция использует poly создать Код Хемминга.

пример

[h,g] = hammgen(___) дополнительно возвращает k-by-n порождающая матрица, g, это соответствует матрице проверки четности h. Задайте любую из комбинаций входных аргументов от предыдущих синтаксисов.

пример

[h,g,n,k] = hammgen(___) также возвращает n, длина кодовой комбинации и k, длина сообщения, для Кода Хемминга.

Примеры

свернуть все

Сгенерируйте матрицу проверки четности, h, для Кода Хемминга длины кодовой комбинации 7. Функция использует примитивный полином по умолчанию в GF (8), чтобы создать Код Хемминга.

h = hammgen(3)
h = 3×7

     1     0     0     1     0     1     1
     0     1     0     1     1     1     0
     0     0     1     0     1     1     1

Сгенерируйте матрицы проверки четности для Кода Хемминга длины кодовой комбинации 15, задав примитивные полиномы 1+D+D4 и 1+D3+D4 в GF (16).

h1 = hammgen(4,'1+D+D^4')
h1 = 4×15

     1     0     0     0     1     0     0     1     1     0     1     0     1     1     1
     0     1     0     0     1     1     0     1     0     1     1     1     1     0     0
     0     0     1     0     0     1     1     0     1     0     1     1     1     1     0
     0     0     0     1     0     0     1     1     0     1     0     1     1     1     1

h2 = hammgen(4,'1+D^3+D^4')
h2 = 4×15

     1     0     0     0     1     1     1     1     0     1     0     1     1     0     0
     0     1     0     0     0     1     1     1     1     0     1     0     1     1     0
     0     0     1     0     0     0     1     1     1     1     0     1     0     1     1
     0     0     0     1     1     1     1     0     1     0     1     1     0     0     1

Удалите встроенные единичные матрицы 4 на 4 то есть, крайние левые четыре столбца в каждой матрице проверки четности.

h1 = h1(:,5:end)
h1 = 4×11

     1     0     0     1     1     0     1     0     1     1     1
     1     1     0     1     0     1     1     1     1     0     0
     0     1     1     0     1     0     1     1     1     1     0
     0     0     1     1     0     1     0     1     1     1     1

h2 = h2(:,5:end)
h2 = 4×11

     1     1     1     1     0     1     0     1     1     0     0
     0     1     1     1     1     0     1     0     1     1     0
     0     0     1     1     1     1     0     1     0     1     1
     1     1     1     0     1     0     1     1     0     0     1

Проверьте, что две получившихся матрицы отличаются.

isequal(h1,h2)
ans = logical
   0

Сгенерируйте матрицу проверки четности, h и порождающая матрица, g для Кода Хемминга длины кодовой комбинации 7. Также возвратите длину кодовой комбинации, n, и длина сообщения, k для Кода Хемминга. Функция использует примитивный полином по умолчанию в GF (8), чтобы создать Код Хемминга.

[h,g,n,k] = hammgen(3)
h = 3×7

     1     0     0     1     0     1     1
     0     1     0     1     1     1     0
     0     0     1     0     1     1     1

g = 4×7

     1     1     0     1     0     0     0
     0     1     1     0     1     0     0
     1     1     1     0     0     1     0
     1     0     1     0     0     0     1

n = 7
k = 4

Входные параметры

свернуть все

Количество строк в матрице проверки четности в виде целого числа, больше, чем или равный два. Функция использует это значение, чтобы вычислить длину кодовой комбинации и длину сообщения Кода Хемминга.

Типы данных: double

Бинарный примитивный полином в GF (2 м) в виде одного из этих значений:

  • Вектор строки двоичных знаков полиномиальных коэффициентов в порядке возрастающих степеней

  • Символьный вектор

  • Скаляр строки

Если poly задан как непримитивный полином, затем функциональный hammgen отображает ошибку.

Типы данных: double | char | string

Выходные аргументы

свернуть все

Матрица проверки четности для Кода Хемминга, возвращенного как m- n матрица двоичных значений для Кода Хемминга.

Типы данных: single | double

Порождающая матрица для Кода Хемминга, возвращенного как k- n матрица двоичных значений, соответствующих матрице проверки четности h.

Типы данных: single | double

Длина кодовой комбинации Кода Хемминга, возвращенного как положительное целое число. Это значение вычисляется как 2m–1.

Типы данных: single | double

Передайте длину Кода Хемминга, возвращенного как положительное целое число. Это значение вычисляется как nM.

Типы данных: single | double

Алгоритмы

hammgen использует функциональный gftuple создать матрицу проверки четности путем преобразования каждого элемента в Поле Галуа (GF) к его полиномиальному представлению. В отличие от gftuple, который выполняет расчеты в GF (2m) и процессы один m- кортеж за один раз, hammgen функция генерирует целую последовательность от 0 до 2m–1. Алгоритм расчета использует все ранее вычисленные значения, чтобы сгенерировать результат расчета. Если значение m меньше 25, и примитивный полином является примитивным полиномом по умолчанию для GF (2m), синтаксис hammgen (m) может быть быстрее, чем синтаксис hammgen (mpoly).

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

Функции

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте