Model CFI and PCFICH

This example shows how to generate a PCFICH with the LTE Toolbox™. First, create a CFI based on the eNodeB configuration and code it. Then, generate a PCFICH using the coded CFI and map it to a resource grid.

Set up the cell-wide settings. Create a structure and specify the cell-wide settings as its fields.

enb.NDLRB = 9;
enb.CyclicPrefix = 'Normal';
enb.PHICHDuration = 'Normal';
enb.CFI = 3;
enb.CellRefP = 4;
enb.NCellID = 1;
enb.NSubframe = 0;

Many of the functions used in this example require a subset of the preceding settings specified.

Create an empty resource grid for one subframe by calling lteDLResourceGrid.

subframe = lteDLResourceGrid(enb);

The resulting subframe is a 3 dimensional matrix. The number of rows represents the number of subcarriers available, 12×(enb.NDLRB), since there are 12 subcarriers per resource block. The number of columns corresponds to the number of OFDM symbols in a subframe, 7×2, since there are 7 OFDM symbols per slot for normal cyclic prefix and there are 2 slots in a subframe. The third dimension of the matrix corresponds to the number of transmit antenna ports used. There are four specified in the example, so enb.CellRefP is 4.

Use lteCFI to code the CFI channel. The result, cfiCodedBits, is a 32 bit long set of coded bits.

cfiCodedBits = lteCFI(enb);

As described earlier, the number of OFDM symbols used to transmit the control information in a subframe is defined by the CFI value. The eNodeB configuration structure assigns the CFI a value of 3. Thus, 4 OFDM symbols are used for the control region because the number of resource blocks used is less than 11, since enb.NDLRB is 9.

Use ltePCFICH to generate PCFICH complex symbols. This function scrambles the CFI coded bits, QPSK modulates the symbols, maps symbols to layers, and precodes to form the PCFICH complex symbols.

pcfichSymbols = ltePCFICH(enb,cfiCodedBits);

The resulting matrix, pcfichSymbols, has 4 columns. Each column contains the PCFICH complex symbols that map to each of the antenna ports.

Use ltePCFICHIndices to generate the PCFICH mapping indices. These indices map the PCFICH complex symbols to the subframe resource grid.

pcfichIndices = ltePCFICHIndices(enb,'1based');

The resulting matrix, pcfichIndices, has 4 columns. Each column contains the indices in linear form for each antenna port. These indices are 1-based, since MATLAB® uses 1-based indices. However, you can also generate 0-based indices.

Map the PCFICH complex symbols to the subframe resource grid using the appropriate mapping indices. The linear indexing style used makes the mapping process straightforward.

subframe(pcfichIndices) = pcfichSymbols;

The resulting matrix, subframe, contains the complex symbols in pcfichSymbols in the locations specified by pcfichIndices.

Use ltePCFICHInfo to view the resource usage. This function returns the number of resource elements, NRE, and the number of resource element groups, NREG, used by the PCFICH within the structure, info.

info = ltePCFICHInfo;

The resulting structure, info, contains the fields NRE, the number of resource elements, and NREG, the number of resource element groups, used by the PHICH.

See Also

| | | | | | | | | | |

Related Topics