True для допустимой структуры шпалеры
[isok,status] = istrellis(s)
[isok,status] = istrellis(s) проверяет, является ли вход s является допустимой структурой шпалеры. Если вход является допустимой структурой шпалеры, isok равен 1 и status - пустой символьный вектор. В противном случае isok 0 и status указывает, почему s не является допустимой структурой решетки.
Допустимой структурой шпалеры является структура MATLAB, поля которой соответствуют приведенной ниже таблице.
Поля действительной структуры треллиса для кода скорости k/n
| Поле в шпалерной структуре | Размерности | Значение |
|---|---|---|
numInputSymbols | Скаляр | Количество входа символов в энкодер: 2k |
numOutputSymbols | Скаляр | Количество выхода символов от энкодера: 2n |
numStates | Скаляр | Количество состояний в энкодере |
nextStates | numStates-by-2k матрица | Следующие состояния для всех комбинаций текущего состояния и текущего входа |
outputs | numStates-by-2k матрица | Выходы (в восьмерике) для всех комбинаций текущего состояния и текущего входа |
В nextStates матрица, каждая запись является целым числом от 0 до numStates-1. Элемент в строке sth и столбце uth обозначает следующее состояние, когда начальное состояние s-1, и входные биты имеют десятичное представление u-1. Чтобы преобразовать входные биты в десятичное значение, используйте первый входной бит как самый значащий бит (MSB). Например, второй столбец nextStates матрица сохраняет следующие состояния, когда текущий набор значений входа {0,..., 0,1}.
Чтобы преобразовать состояние в десятичное значение, используйте это правило: Если k превышает 1, регистр сдвига, который получает первый входной поток в энкодере, обеспечивает наименее значимые биты в номере состояния, а регистр сдвига, который получает последний входной поток в энкодере, предоставляет самые значимые биты в номере состояния.
В outputs матрица, элемент в строке sth и столбце uth обозначает выход энкодера, когда начальное состояние s-1, и входные биты имеют десятичное представление u-1. Для преобразования в десятичное значение используйте первый выходной бит в качестве MSB.
Эти команды собирают поля в очень простую структуру шпалеры, а затем проверяют валидность структуры шпалеры.
trellis.numInputSymbols = 2; trellis.numOutputSymbols = 2; trellis.numStates = 2; trellis.nextStates = [0 1;0 1]; trellis.outputs = [0 0;1 1]; [isok,status] = istrellis(trellis)
Ниже приведен выход.
isok =
1
status =
''
Другой пример шпалеры - в Trellis Description of a Convolutional Code.