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 row и uth обозначает следующее состояние, когда начальное состояние равно s-1, а входные биты имеют десятичное представление u-1. Чтобы преобразовать входные биты в десятичное значение, используйте первый входной бит в качестве старшего бита (MSB). Например, второй столбец nextStates в матрице сохраняются следующие состояния, когда текущим набором входных значений является {0,..., 0,1}.
Чтобы преобразовать состояние в десятичное значение, используйте это правило: Если k превышает 1, сдвиговый регистр, принимающий первый входной поток в кодере, предоставляет наименьшие значащие биты в номере состояния, а сдвиговый регистр, принимающий последний входной поток в кодере, предоставляет наиболее значащие биты в номере состояния.
В outputs в матрице элемент в sth-строке и в-м столбце обозначает выходной сигнал кодера, когда начальное состояние - 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).