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) -by- n матрица проверки четности для систематического двоичного циклического кода, имеющего длину кодового слова n. Область вектора-строки pol приводит двоичные коэффициенты, в порядке возрастающих степеней, degree- (n- k) полином генератора. Также можно задать pol как полиномиальный вектор символов. Для получения дополнительной информации смотрите Представление символов полиномов.

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

[h,g] = cyclgen(...) то же, что и h = cyclgen(...), за исключением того, что он также производит k-by- 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) двоичного циклического кода. Поскольку это систематический код, в крайних левых столбцах parmat2 существует матрица тождеств 4 на 4.

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