MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Утилиты

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

POLY2TRELLIS
Преобразование представления сверточного кода из полиномиальной формы в таблицу переходов

Синтаксис

trellis = poly2trellis(ConstraintLength,CodeGenerator);
trellis = poly2trellis(ConstraintLength,CodeGenerator,...
                                                FeedbackConnection);

Описание

Функция poly2trellis принимает на входе полиномиальное описание сверточного кода и возвращает структуру, содержащую соответствующую таблицу переходов. Эта структура может использоваться для описания кода при вызове функций convenc и vitdec.

     trellis = poly2trellis(ConstraintLength,CodeGenerator)

Выполняет преобразование для кода со скоростью k/n без обратных связей. Входной параметр ConstraintLength должен быть вектором-строкой длиной k, указывающим число элементов памяти, используемых для каждого из k входных битов. Входной параметр CodeGenerator должен быть матрицей, имеющей k строк и n столбцов и содержащей восьмеричные числа, описывающие полиномиальную связь между каждым из n бит выходного символа и каждым из k бит входного символа.

     trellis = poly2trellis(ConstraintLength,CodeGenerator,...FeedbackConnection)

То же, что предыдущий вариант синтаксиса, но для случая кодера с обратной связью. Входной параметр FeedbackConnection должен быть вектором-строкой длиной k, содержащим восьмеричные числа, описывающие обратные связи для каждого из k бит входного символа.

Для обоих вариантов синтаксиса результатом работы функции является MATLAB-структура, поля которой описаны в следующей таблице.

Таблица. Поля структуры описания сверточного кода, имеющего скорость k/n

Имя поля структуры Размерность Назначение
numInputSymbols Скаляр Число возможных входных символов: 2k
numOutputsymbols Скаляр Число возможных выходных символов: 2n
numStates Скаляр Число внутренних состояний кодера
nextStates Матрица: numStates строк, 2k столбцов Таблица переходов, указывающая состояния кодера, в которые осуществляется переход, для всех комбинаций текущего состояния и входного символа
outputs Матрица: numStates строк, 2k столбцов Таблица формирования выходного сигнала, содержащая значения выходных символов для всех комбинаций текущего состояния и входного символа

Более подробные комментарии о заполнении полей структуры имеются на странице с описанием функции istrellis.

Примеры

Рассмотрим сверточный кодер со скоростью 2/3 без обратных связей, структурная схема которого приведена на рисунке. Пример использования этого кодера имеется на странице с описанием функции convenc.

Для данного кода вектор ConstraintLength имеет вид [5, 4], а матрица CodeGenerator равна [27,33,0; 0,5,13]. Ниже показано формирование таблицы переходов для данного кода.

trellis = poly2trellis([5 4],[27 33 0; 0 5 13])

trellis =

      numInputSymbols: 4
    numOutputSymbols: 8
                 numStates: 128
                 nextStates: [128x4 double]
                      outputs: [128x4 double]

Скалярное поле trellis.numInputSymbols равно 4, поскольку входные символы являются двухбитовыми, что дает 4 возможных значения. Аналогично, поле trellis.numOutputSymbols равно 8, поскольку три бита выходного символа дают 8 возможных комбинаций.

Скалярное поле trellis.numStates равно 128 (то есть 27), поскольку каждый из семи элементов памяти кодера может находиться в одном из двух состояний (0 или 1).

Чтобы получить информацию о содержимом матричных полей trellis.nextStates и trellis.outputs, необходимо запросить ее в явном виде. Например, выведем первые пять строк матрицы trellis.nextStates, имеющей 128 строк и 4 столбца.

trellis.nextStates(1:5,:)

ans =

    0    64    8    72
    0    64    8    72
    1    65    9    73
    1    65    9    73
    2    66   10    74

Первая строка показывает, что если кодер находится в нулевом состоянии и получает входные символы 00, 01, 10 или 11, то будет осуществлен переход соответственно в состояние 0, 64, 8 или 72. Номер состояния 64 означает, что нижний левый элемент памяти на структурной схеме хранит значение 1, а остальные шесть элементов памяти находятся в нулевом состоянии.

Сопутствующие функции: istrellis, convenc, vitdec.

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


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


Система Orphus