II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
Раздел "Обработка сигналов и изображений\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.

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


О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры