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
Для просмотра документации необходимо авторизоваться на сайте