exponenta event banner

cyclgen

Создание матриц контроля четности и генератора для циклического кода

Синтаксис

h = cyclgen(n,pol)
h = cyclgen(n,pol,opt)
[h,g] = cyclgen(...)
[h,g,k] = cyclgen(...)

Описание

Для всех синтаксисов длина кодового слова равна n и длина сообщения равна k. Полином может генерировать циклический код с длиной кодового слова n и длина сообщения k тогда и только тогда, когда многочлен является дефи- (n-k) делитель x^n-1. (Над двоичным полем GF (2), x^n-1 совпадает с x^n+1.) Это подразумевает, что k равняется n минус степень полинома генератора.

h = cyclgen(n,pol) производит (n-kоколо-n матрица контроля четности для систематического двоичного циклического кода, имеющего длину кодового слова n. Вектор строки pol дает двоичные коэффициенты, в порядке возрастающих степеней, степени - (n-k) генераторный полином. Кроме того, можно указать pol как вектор многочленов. Дополнительные сведения см. в разделе Символьное представление многочленов.

h = cyclgen(n,pol,opt) совпадает с синтаксисом выше, за исключением того, что аргумент opt определяет, должна ли матрица быть связана с систематическим или несистематическим кодом. Значения для opt являются 'system' и 'nonsys'.

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

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

Примеры

свернуть все

Создайте матрицы контроля четности и генератора для двоичного циклического кода, имеющего длину 7 кодового слова и длину 4 сообщения.

Создание полинома генератора с помощью cyclpoly.

pol = cyclpoly(7,4);

Создайте матрицы контроля четности и генератора. Матрица контроля четности parmat имеет единичную матрицу 3 на 3, встроенную в крайние левые столбцы.

[parmat,genmat,k] = cyclgen(7,pol)
parmat = 3×7

     1     0     0     1     1     1     0
     0     1     0     0     1     1     1
     0     0     1     1     1     0     1

genmat = 4×7

     1     0     1     1     0     0     0
     1     1     1     0     1     0     0
     1     1     0     0     0     1     0
     0     1     1     0     0     0     1

k = 4

Создайте матрицу контроля четности, в которой код не является систематическим. Матрица parmatn не имеет встроенной единичной матрицы 3 на 3.

parmatn = cyclgen(7,pol,'nonsys')
parmatn = 3×7

     1     1     1     0     1     0     0
     0     1     1     1     0     1     0
     0     0     1     1     1     0     1

Создайте матрицы контроля четности и генератора для (7,3) двоичного циклического кода. Поскольку это систематический код, существует матрица тождества 4 на 4 в крайних левых столбцах parmat2.

parmat2 = cyclgen(7,'1 + x^2 + x^3 + x^4')
parmat2 = 4×7

     1     0     0     0     1     1     0
     0     1     0     0     0     1     1
     0     0     1     0     1     1     1
     0     0     0     1     1     0     1

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