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

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

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

CYCLGEN
Генерация проверочной и порождающей матриц для циклического кода

Синтаксис:

parmat = cyclgen(n,pol);
parmat = cyclgen(n,pol,opt);
[parmat,genmat] = cyclgen(...);
[parmat,genmat,k] = cyclgen(...);

Описание:

Для всех вариантов синтаксиса длина кодового слова обозначается как n, а размер блока исходного сообщения — как k. Полином может породить циклический код с длиной кодового слова n и размером блока исходного сообщения k тогда и только тогда, когда этот полином имеет степень (n – k) и является делителем полинома xn – 1. (В двоичном конечном поле GF(2) xn – 1 — это то же самое, что и xn + 1.) Отсюда следует, что k равняется n минус степень порождающего полинома.

  • parmat = cyclgen(n,pol)

Возвращает содержащую (n – k) строк и n столбцов проверочную матрицу для систематического двоичного циклического кода с длиной кодового слова n. Вектор-строка pol содержит двоичные коэффициенты порождающего полинома степени (n – k) в порядке возрастания степеней.

  • parmat = cyclgen(n,pol,opt)

То же, что предыдущий вариант синтаксиса, но входной параметр opt определяет, должна итоговая матрица соответствовать систематическому или несистематическому коду. Возможные значения для параметра opt — 'system' (систематический код) и 'nonsys' (несистематический код).

  • [parmat,genmat] = cyclgen(...)

То же, что parmat = cyclgen(...), но дополнительно возвращает порождающую матрицу genmat, содержащую k строк и n столбцов и соответствующую проверочной матрице parmat.

  • [parmat,genmat,k] = cyclgen(...)

То же, что [parmat,genmat] = cyclgen(...), но дополнительно возвращает размер блока исходного сообщения k.

Примеры.

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

pol = cyclpoly(7,4);
[parmat,genmat,k] = cyclgen(7,pol)

parmat =
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1

genmat =
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

Рассматривая результат работы приведенной ниже команды, обратите внимание на то, что полученная проверочная матрица отличается от рассчитанной ранее матрицы parmat, поскольку теперь она соответствует несистематическому циклическому коду. Иными словами, новая матрица parmatn, в отличие от матрицы parmat, не содержит в своей левой части блока в виде единичной матрицы размером 3 на 3.

parmatn = cyclgen(7,cyclpoly(7,4),'nonsys')

parmatn =
1 1 1 0 1 0 0
0 1 1 1 0 1 0
0 0 1 1 1 0 1

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

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


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