MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Помехоустойчивое кодирование и декодирование

  В оглавление \ К следующему разделу \ К предыдущему разделу

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, как показано в следующей таблице.

Opt

Смысл результата pol

Формат результата pol

'min' Один порождающий полином, имеющий минимально возможный вес Вектор-строка, представляющий полином
'max' Один порождающий полином, имеющий максимально возможный вес Вектор-строка, представляющий полином
'all' Все порождающие полиномы Матрица, каждая строка которой представляет один из полиномов
Положительное целое число Все порождающие полиномы, имеющие вес opt Матрица, каждая строка которой представляет один из полиномов

Вес полинома с двоичными коэффициентами — это число членов в нем (то есть число ненулевых коэффициентов). Если нет ни одного полинома, удовлетворяющего заданным при вызове функции условиям, то выводится сообщение об ошибке, а результат pol представляет собой пустую матрицу.

Примеры.

Первая из приведенных ниже команд дает представления для трех порождающих полиномов циклического кода (15, 4).

Вторая команда показывает, что порождающим полиномом с максимальным весом (числом ненулевых коэффициентов) является 1 + x + x2 + x3x5x7x8x11.

Третья команда демонстрирует, что для циклического кода (15, 4) не существует порождающих полиномов с весом (числом ненулевых коэффициентов), равным трем.

c1 = cyclpoly(15,4,'all')
c1 =
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 1 1 1 0 1 0 1 1 0 0 1

c3 = cyclpoly(15,4,3)
No generator polynomial satisfies the given constraints.
c3 = []

Алгоритм:

Порождающий полином циклического кода с длиной кодового слова n является делителем полинома xn – 1. Степень порождающего полинома для кода с длиной блока исходного сообщения k составляет n – k. Функция производит перебор всех возможных полиномов нужной степени и выбирает делители xn – 1, удовлетворяющие заданным условиям.

Сопутствующие функции: cyclgen, encode.

  В оглавление \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика