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