hammgen

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

Описание

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

Сгенерируйте матрицу проверки четности, h, для кода Hamming с длиной кодового слова 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 в ГФ (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

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

свернуть все

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

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

Двоичный примитивный полином в GF (2m), заданное как одно из следующих значений:

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

  • Вектор символов

  • Строковый скаляр

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

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

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

свернуть все

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

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

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

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

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

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

Длина сообщения кода Hamming, возвращенная как положительное целое число. Это значение вычисляется как nm.

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

Алгоритмы

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

См. также

Функции

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