Некоторые функции в LTE Toolbox™ требовать большого количества параметров. Для упрощения процесса LTE Toolbox группирует соответствующие параметры в структуры.
Рассмотрим, в качестве примера, задачу генерации символов PCFICH и индексов отображения. Для этой задачи можно вызвать функцию ltePCFICH
, и ltePCFICHIndices
. ltePCFICH
функция также требует cw
, вектор с входом битами. Для этого входов можно вызвать lteCFI
функция. Все три функции требуют структуры параметра enb
, который представляет параметры eNodeB для всей ячейки.
Функция ltePCFICH
требует enb
иметь, по крайней мере, следующие поля.
NCellID
- тождества камер физического слоя
CellRefP
- Количество портов антенны опорного сигнала для конкретной ячейки. Допустимые значения: 1, 2 и 4.
NSubframe
- Номер субкадра
Для сравнения, функция ltePCFICHIndices
требует enb
иметь, по крайней мере, следующие поля.
NCellID
- тождества камер физического слоя
NDLRB
- Количество нисходящих ресурсных блоков
Наконец, функция lteCFI
требует только enb
иметь одно поле, CFI
. Во всех случаях, если дополнительные поля присутствуют и не требуются, функция игнорирует их.
В этом примере показано, как создать структуру параметров всей ячейки. В частности, можно создать структуру параметра, enb
, который имеет все поля, необходимые lteCFI
, ltePCFICH
, и ltePCFICHIndices
функций.
Создайте новую структуру параметров, enb
, только с одним полем, CFI
.
enb.CFI = 1;
Создайте 32-элементный вектор, cw
, представляющего скорость 1/16 блоков кодирования значения индикатора формата управления (CFI). Для этого вызовите lteCFI
функция. Обеспечивайте enb
как входной параметр.
cw = lteCFI(enb);
Добавьте дополнительные поля к enb
.
enb.NCellID = 0; enb.CellRefP = 1; enb.NSubframe = 0; enb.NDLRB = 9;
Сгенерируйте комплексные символы PCFICH путем вызова ltePCFICH
функция, обеспечивающая enb
структура и cw
вектор битов как входные параметры.
sym = ltePCFICH(enb,cw);
Хотя ltePCFICH
не требует этого enb
иметь NDLRB
поле, это не вызывает проблемы. В этом случае функция игнорирует любые необязательные поля.
Сгенерируйте индексы отображения PCFICH путем вызова ltePCFICHIndices
функция, обеспечивающая enb
структура как входной параметр.
ind = ltePCFICHIndices(enb);
Хотя ltePCFICHIndices
не требует enb.NSubframe
поле, оно не вызывает проблемы. Функция игнорирует все поля, которые ей не требуются.
Вы можете удалить поля из структуры с помощью MATLAB ® rmfield
но, как показано, удаление поля не требуется.
Многие функции в LTE Toolbox требуют структуры параметра, называемой enb
. Этот параметр представляет настройки eNodeB или cell-wide, которые являются общими для всех пользовательских аппаратов (UE) в камере. Эта структура может включать следующие поля, которые являются одними из наиболее распространенных.
NCellID
- тождества камер физического слоя
CellRefP
- Количество портов антенны опорного сигнала для конкретной ячейки. Допустимые значения: 1, 2 и 4.
CyclicPrefix
- Длина циклического префикса. Допустимые значения 'Normal'
и 'Extended'
.
NSubframe
- Номер субкадра
NDLRB
- Количество нисходящих ресурсных блоков
Различные функции требуют различных полей. Не все функции, которые требуют enb
структуре нужны все перечисленные выше поля. Некоторые функции требуют только подмножества из перечисленных выше. В этом случае все необязательные поля игнорируются.
Когда необязательные поля параметров не заданы, функция в LTE Toolbox может принимать настройки по умолчанию. В этом случае тулбокс выдает предупреждающие сообщения, чтобы задать значения по умолчанию, которые он использует. Вы можете управлять этими предупреждениями, используя lteWarning
функция.
В этом примере показано, как передать дополнительные входы определенным функциям, чтобы изменить выход, предоставленный функцией.
Создайте новую структуру параметров, enb
.
enb.NCellID = 0;
enb.CellRefP = 1;
enb.NSubframe = 0;
enb.NDLRB = 9;
enb.Ng = 'Sixth';
Например, рассмотрим случай, когда список индексов для определенного физического канала генерируется с помощью ltePCFICHIndices
.
Входной параметр, enb
, является структурой с соответствующими полями. По умолчанию эти индексы основаны на одном, в отличие от нулевых индексов, заданных в документации технической спецификации (TS).
ind = ltePCFICHIndices(enb); firstIndex = ind(1)
firstIndex = uint32
2
Измените базовое число, используемое в генерации индекса, предоставив дополнительный необязательный входной параметр. Задайте '0based'
для генерации нулевых индексов или '1based'
чтобы сгенерировать индексы на основе одного.
ind = ltePCFICHIndices(enb, '0based');
firstIndex_0based = ind(1)
firstIndex_0based = uint32
1
ind = ltePCFICHIndices(enb, '1based');
firstIndex_1based = ind(1)
firstIndex_1based = uint32
2
Первый индекс, сгенерированный, когда необязательный аргумент не предоставляется, соответствует первому индексу при '1based'
задан. Необязательный вход не требуется. Если вы не задаете необязательный вход, функция использует значение по умолчанию.
Задайте несколько опций выходного формата для функции путем предоставления входного параметра массива ячеек, opts
.
opts = {'sub', '1based', 'reg'}; pcfichInd = ltePCFICHIndices(enb, opts)
pcfichInd = 4x3 uint32 matrix
1 1 1
25 1 1
55 1 1
79 1 1
Сгенерированные индексы PCFICH указаны в стиле индексации под индексами, на одной основе и относятся к группам ресурсных элементов. Заданный массив опций указывает формат возвращаемых индексов.
Изменение порядка opts
записи в камере дают тот же результат.
opts = {'1based', 'sub', 'reg'}; pcfichInd = ltePCFICHIndices(enb, opts)
pcfichInd = 4x3 uint32 matrix
1 1 1
25 1 1
55 1 1
79 1 1
Порядок предоставления opts
входы не релевантны. Оба случая приводят к одинаковым значениям в выходном аргументе, pcfichInd
.
lteCFI
| ltePCFICH
| ltePCFICHIndices
| lteWarning
| rmfield