MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
Обработка сигналов и изображений\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.

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


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

Система Orphus

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