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