hammgen

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

Синтаксис

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

Описание

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

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

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

[h,g] = hammgen(...) совпадает с h = hammgen(...) за исключением того, что это также производит k- n порождающая матрица g это соответствует матрице проверки четности hK, длина сообщения, равняется 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