hammgen

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

Синтаксис

h = hammgen(m)
h = hammgen(m,pol)
[h,g] = hammgen(...)
[h,g,n,k] = hammgen(...)

Описание

Для всех синтаксисов длиной кодовой комбинации является n. n имеет форму 2 м - 1 для некоторого положительного целочисленного m, больше, чем или равный 2. Длина сообщения, k, имеет форму nm.

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

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

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

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

Примечание

Если ваше значение m будет меньше чем 25 и если ваш примитивный полином будет примитивным полиномом по умолчанию для GF (2^m), синтаксис, то hammgen(m), вероятно, будет быстрее, чем синтаксис hammgen(m,pol).

Примеры

свернуть все

Сгенерируйте матрицы Кода Хемминга, данные длину кодовой комбинации.

Сгенерируйте матрицу проверки четности h, порождающая матрица g, длина кодовой комбинации n и длина сообщения k для Кода Хемминга с m=3.

[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

Сгенерируйте матрицы проверки четности для m=4 для примитивных полиномов D4+D+1 и D4+D3+1.

h1 = hammgen(4,'D^4+D+1');
h2 = hammgen(4,'D^4+D^3+1');

Удалите встроенные единичные матрицы 4 на 4 (крайние левые столбцы и h1 и h2) и проверьте, что эти две матрицы отличаются.

h1(:,5:end)
ans = 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(:,5:end)
ans = 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

Алгоритмы

В отличие от gftuple, который обрабатывает один m - кортеж за один раз, hammgen генерирует целую последовательность от 0 до 2^m-1. Алгоритм вычисления использует все ранее вычисленные значения, чтобы привести к результату вычисления.

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

| |

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