exponenta event banner

cyclpoly

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

Синтаксис

pol = cyclpoly(n,k)
pol = cyclpoly(n,k,opt)

Описание

Для всех синтаксисов многочлен представляется в виде строки, содержащей коэффициенты в порядке возрастающих степеней.

pol = cyclpoly(n,k) возвращает вектор строки, представляющий один нетривиальный полином генератора для циклического кода, имеющего длину кодового слова n и длина сообщения k.

pol = cyclpoly(n,k,opt) ищет один или несколько нетривиальных полиномов генератора для циклических кодов, имеющих длину кодового слова n и длина сообщения k. Продукция pol зависит от аргумента opt как показано в таблице ниже.

выбратьЗначение polФормат pol
'min'Один генераторный многочлен, имеющий наименьший возможный вес Вектор строки, представляющий многочлен
'max'Один генераторный многочлен, имеющий максимально возможный вес Вектор строки, представляющий многочлен
'all'Все полиномы генератораМатрица, каждая строка которой представляет один такой многочлен
положительное целое число, L Все генераторные многочлены, имеющие вес L Матрица, каждая строка которой представляет один такой многочлен

Вес двоичного многочлена - это число ненулевых членов, которое он имеет. Если ни один полином генератора не удовлетворяет заданным условиям, выходной сигнал pol пуст и отображается предупреждающее сообщение.

Примеры

свернуть все

Создайте [15,4] полиномы генератора циклического кода.

Использовать входные данные 'all' показать все возможные генераторные полиномы для [15,4] циклического кода. Использовать входные данные 'max' показать, что 1 + x + x2 + x3 + x5 + x7 + x8 + x11 является одним из таких многочленов, которые имеют наибольшее число ненулевых членов.

c1 = cyclpoly(15,4,'all')
c1 = 3×12

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

c2 = cyclpoly(15,4,'max')
c2 = 1×12

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

Эта команда показывает, что ни один полином генератора для [15,4] циклического кода не имеет ровно трех ненулевых членов.

c3 = cyclpoly(15,4,3)
Warning: No cyclic generator polynomial satisfies the given constraints.
c3 =

     []

Алгоритмы

Если opt является 'min', 'max'многочлены строятся путем преобразования десятичных чисел в базовые p. На основе десятичного порядка gfprimfd возвращает первый полином, который удовлетворяет соответствующим условиям. Этот алгоритм аналогичен алгоритму, используемому в gfprimfd.

См. также

|

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