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.