• LTE


    This example shows how to model the control region used in an LTE downlink subframe and its channel structure.

    It demonstrates how to create a DCI message, encode it, create the PDCCH, and map it to a resource grid.

    Specify the cell-wide settings as fields in the structure enb

    enb.NDLRB = 9;
    enb.CyclicPrefix = 'Normal';
    enb.PHICHDuration = 'Normal';
    enb.CFI = 3;
    enb.Ng = 'Sixth';
    enb.CellRefP = 1;
    enb.NCellID = 1;
    enb.NSubframe = 0;
    enb.DuplexMode = 'FDD';

    Set up the DCI message structure.

    dci.NDLRB = enb.NDLRB;               % Set up the DCI message structure
    dci.DCIFormat = 'Format1A'; % DCI format
    dci.Allocation.RIV = 26;             % resource indication value (RIV)
    dci.DuplexMode = 'FDD';
    dci.NTxAnts = 1;
    
    

    The RIV indicates the contiguous RB allocations for a UE. The UE uses the RIV to determine the first virtual RB and the length of contiguous allocation of RBs. In this example, an RIV setting of 26 corresponds to full bandwidth assignment.

    Generate a DCI message by calling the lteDCI function. You can map this generated message to the PDCCH.

    [dciMessage,dciMessageBits] = lteDCI(enb,dci);

    The lteDCI function returns a structure, dciMessage, and a vector containing the DCI message bits, dciMessageBits. Both outputs contain the same information, but are best suited for different purposes. The output structure is more readable, while the serialized DCI message is in a more suitable format to send to the channel coding stage.

    Set up the PDCCH configuration structure. The channel coding stages require these parameters:

    • number of downlink resource blocks (RBs)

    • UE-specific mask (16-bit C-RNTI value)

    • PDCCH format

    pdcch.RNTI = 100;
    pdcch.PDCCHFormat = 0;

    Channel encode the DCI message bits. This process consists of the addition of a CRC attachment, convolutional coding, and rate matching according to the PDCCH format capacity.

    codedDciBits = lteDCIEncode(pdcch,dciMessageBits);

    The resulting vector, codedDciBits, has 72 elements.

    Generate PDCCH bits. The encoded DCI messages are then assigned to CCEs. The capacity of the control region depends on the bandwidth, the CFI, the number of antenna ports and the HICH groups. 

    pdcchInfo = ltePDCCHInfo(enb);

    This function returns a structure, pdcchInfo, which contains the resources available to the PDCCH in different units (one per field): bits, CCEs, REs and REGs.

    The total number of bits available in the PDCCH region can be found in the field pdcchInfo.MTot. This allows a vector to be built with the appropriate number of elements.

    pdcchBits = -1*ones(1,pdcchInfo.MTot);

    Not all the available bits in the PDCCH region are necessarily used. Therefore, following the convention in the LTE Toolbox™ product, set unused bits to −1. Since all elements have been initialized in pdcchBits to −1, this indicates that initially all the bits are unused. Now elements of codedDciBits can be mapped to the appropriate locations in pdcchBits.

    Calculate indices of candidate bits by calling the ltePDCCHSpace function. Only a subset of all the bits in pdcchBits may be used, which are called the candidate bits.

    candidates = ltePDCCHSpace(enb,pdcch,{'bits','1based'});

    This function returns a two-column matrix. Each row contains an available candidate location for the cell-wide settings provided by enb and the PDCCH configuration structure pdcch. The first and second columns contain the indices of the first and last locations of each candidate. In this example, the indices are 1-based and refer to bits. Hence, they can be used to access locations in pdcchBits.

    Use the first available candidate to map the coded DCI bits.

    pdcchBits (candidates(1,1):candidates(1,2)) = codedDciBits;

    To generate the PDCCH symbols, use the ltePDCCH function. You can generate the PDCCH complex symbols from the set of bits used in pdcchBits, values not set to −1. The function performs the required scrambling, QPSK modulation, layer mapping, and precoding operations. Since there are two bits per QPSK symbol, 368 symbols are generated. The occupied bits result in 36 non-zero QPSK symbols.

    pdcchSymbols = ltePDCCH(enb, pdcchBits);
    size(pdcchSymbols)
    ans = 1×2
    
       368     1
    
    
    size(find(pdcchSymbols))
    ans = 1×2
    
        36     1

    To generate PDCCH mapping indices, use the ltePDCCHIndices function. You can use these indices to map the complex values in pdcchSymbols to the subframe resource grid.

    pdcchIndices = ltePDCCHIndices(enb,{'1based'});
    size(pdcchIndices)
    ans = 1×2
    
       368     1


    This function returns a column vector. The rows contain the 1-based indices in linear form for mapping the PDCCH symbols to the subframe resource grid.

    Map the PDCCH to the resource grid. You can easily map the complex PDCCH symbols to the resource grid for each antenna port.

    • Create an empty resource grid with the lteDLResourceGrid function.

    • Map the pdcchSymbols to the pdcchIndices index locations of the subframe resource grid.

    subframe = lteDLResourceGrid(enb);
    subframe(pdcchIndices) = pdcchSymbols;


    Reference,
      1. MathWorks
     
  • 相关阅读:
    开源控件PullToRefreshGridView的使用(三)
    JS中的运算符 以及变量和输入输出
    HTML中表格
    JS中 事件冒泡与事件捕获
    JS中的循环结构
    UML类图详解
    一步一步生成图片水印
    快速生成缩略图
    ==和Equal()的区别
    屌丝程序人生(下)
  • 原文地址:https://www.cnblogs.com/zzyzz/p/13472351.html
Copyright © 2020-2023  润新知