Некоторые функции в 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, настройки, которые характерны для всего оборудования пользователя (UEs) в ячейке. Эта структура может включать следующие поля, которые являются среди наиболее распространенного.
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