Parameterization
Some of the functions in the LTE Toolbox™ require a large number of parameters. To simplify the process, the LTE Toolbox groups relevant parameters together into structures.
Parameter Structures
Consider, as an example, the task of generating PCFICH symbols
and mapping indices. For this task, you can call the
functions ltePCFICH
,
and ltePCFICHIndices
. The ltePCFICH
function also requires cw
, an
input bit vector. For this input, you can call the
lteCFI
function. All three functions require a parameter
structure, enb
, that represents
the eNodeB cell-wide settings.
The function ltePCFICH
requires enb
to have at least the
following fields.
NCellID
— Physical layer cell identityCellRefP
— Number of cell-specific reference signal antenna ports. Valid values are 1, 2, and 4.NSubframe
— Subframe number
In comparison, the function ltePCFICHIndices
requires
enb
to have at least the
following fields.
NCellID
— Physical layer cell identityNDLRB
— Number of downlink resource blocks
Finally, the function lteCFI
only requires enb
to have one
field, CFI
. In all cases, if
additional fields are present and not required, the
function ignores them.
Create a Cell-Wide Settings Structure
This example shows how to create a cell-wide settings structure. In particular, you can create a parameter structure, enb
, that has all the fields required by the lteCFI
, ltePCFICH
, and ltePCFICHIndices
functions.
Create a new parameter structure, enb
, with only one field, CFI
.
enb.CFI = 1;
Create a 32-element bit vector, cw
, representing the rate 1/16 block encoding of the control format indicator (CFI) value. To do so, call the lteCFI
function. Provide enb
as an input argument.
cw = lteCFI(enb);
Add additional fields to enb
.
enb.NCellID = 0; enb.CellRefP = 1; enb.NSubframe = 0; enb.NDLRB = 9;
Generate the PCFICH complex symbols by calling the ltePCFICH
function, providing the enb
structure and the cw
bit vector as input arguments.
sym = ltePCFICH(enb,cw);
Although ltePCFICH
does not require that enb
have the NDLRB
field, this does not cause a problem. In this case, the function ignores any non-required fields.
Generate the PCFICH mapping indices by calling the ltePCFICHIndices
function, providing the enb
structure as an input argument.
ind = ltePCFICHIndices(enb);
Although ltePCFICHIndices
does not require the enb.NSubframe
field, it does not cause a problem. The function ignores any fields that it does not require.
You can remove fields from a structure by using the MATLAB® rmfield
function but, as shown, removing the field is not necessary.
Cell-Wide Parameters
Many functions in the LTE Toolbox require a parameter structure called
enb
. This parameter represents
the eNodeB, or cell-wide,
settings which are common to all user equipments
(UEs) in the cell. This structure can include the
following fields, which are among the most common.
NCellID
— Physical layer cell identityCellRefP
— Number of cell-specific reference signal antenna ports. Valid values are 1, 2, and 4.CyclicPrefix
— Length of cyclic prefix. Valid values are'Normal'
and'Extended'
.NSubframe
— Subframe numberNDLRB
— Number of downlink resource blocks
Different functions require different
fields. Not all functions that require the
enb
structure need all the
fields listed above. Some functions require only a
subset of those listed above. In this case, any
non-required fields are ignored.
When optional parameter fields are not specified, a function
in the LTE Toolbox may assume default settings. In this
case, the toolbox produces warning messages to
specify the default values that it is using. You may
control these warnings using the lteWarning
function.
Optional Output Formats
This example shows how to pass optional inputs to certain functions to change the output format provided from the function.
Create a new parameter structure, enb
.
enb.NCellID = 0;
enb.CellRefP = 1;
enb.NSubframe = 0;
enb.NDLRB = 9;
enb.Ng = 'Sixth';
For example, consider the case where a list of indices for a certain physical channel is generated using ltePCFICHIndices
.
The input argument, enb
, is a structure with the appropriate fields. By default, these indices are one-based, as opposed to the zero-based indices specified in the technical specification (TS) documentation.
ind = ltePCFICHIndices(enb); firstIndex = ind(1)
firstIndex = uint32
2
Change the base number used in the index generation by providing an additional optional input argument. Specify '0based'
to generate zero-based indices or '1based'
to generate one-based indices.
ind = ltePCFICHIndices(enb, '0based');
firstIndex_0based = ind(1)
firstIndex_0based = uint32
1
ind = ltePCFICHIndices(enb, '1based');
firstIndex_1based = ind(1)
firstIndex_1based = uint32
2
The first index generated when no optional argument is provided matches the first index when '1based'
is specified. The optional input is not required. If you do not specify an optional input, the function uses the default value.
Specify multiple output format options for a function by providing a cell array input argument, 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
The generated PCFICH indices are in subscript indexing style, one-based, and refer to resource element groups. The cell array of options that you specify indicates the format for the returned indices.
Varying the order of the opts
cell entries produces the same result.
opts = {'1based', 'sub', 'reg'}; pcfichInd = ltePCFICHIndices(enb, opts)
pcfichInd = 4x3 uint32 matrix
1 1 1
25 1 1
55 1 1
79 1 1
The order in which you provide the opts
inputs is not relevant. Both cases produce the same values in the output argument, pcfichInd
.
See Also
ltePCFICH
| ltePCFICHIndices
| lteCFI
| rmfield
| lteWarning