zoukankan      html  css  js  c++  java
  • NR / 5G

    Introduction

     In 5G NR, the low-density parity-check (LDPC) coding chain for the downlink and uplink shared transport channels (DL-SCH and UL-SCH).

      

    Shared Channel Parameters

     The parameters for a transport block transmitted on the downlink shared (DL-SCH) channel.

     

    A = 10000;                     % Transport block length, positive integer
    rate = 449/1024;           % Target code rate, 0<R<1
    rv = 0;                            % Redundancy version, 0-3
    modulation = 'QPSK';   % Modulation scheme, QPSK, 16QAM, 64QAM, 256QAM
    nlayers = 1;                   % Number of layers, 1-4 for a transport block

     DL-SCH coding parameters

          CRC: '24A'
          L: 24
          BGN: 1
          C: 2
          Lcb: 24
          F: 244
          Zc: 240
          K: 5280
          N: 15840

     

    DL-SCH supports multi-codeword transmission (i.e. two transport blocks) while UL-SCH supports only a single codeword. UL-SCH also supports pi/2-BPSK modulation in addition to those listed above for DL-SCH.

     

    Transport Block Processing using LDPC Coding

    Data delivered from the MAC layer to the physical layer is termed as a transport block. For the downlink shared channel (DL-SCH), a transport block goes through the processing stages of:

    • CRC attachment,
    • Code block segmentation and code block CRC attachment,
    • Channel coding using LDPC,
    • Rate matching and code block concatenation

     before being passed on to the physical downlink shared channel (PDSCH) for scrambling, modulation, layer mapping and resource/antenna mapping. 

     

    The output number of bits from the rate matching and code block concatenation process must match the bit capacity of the PDSCH, based on the available resources.

    Similar processing applies for the UL-SCH, where the physical uplink shared channel (PUSCH) is the recipient of the UL-SCH codeword. The following schematics depict the processing for the two channels.

     

    % Random transport block data generation
    in = randi([0 1],A,1,'int8');

     % Transport block CRC attachment

    tbIn = nrCRCEncode(in,cbsInfo.CRC);

    % Code block segmentation and CRC attachment
    cbsIn = nrCodeBlockSegmentLDPC(tbIn,cbsInfo.BGN);

    % LDPC encoding
    enc = nrLDPCEncode(cbsIn,cbsInfo.BGN);

    % Rate matching and code block concatenation
    outlen = ceil(A/rate);
    chIn = nrRateMatchLDPC(enc,outlen,rv,modulation,nlayers);

     

    Wireless Channel

    With the full PDSCH or PUSCH processing, one can consider fading channels, AWGN and other RF impairments as well.

     

    Receive Processing using LDPC Decoding

    The receive end processing for the DL-SCH channel comprises of the corresponding dual operations to the transmit end that include

    • Rate recovery
    • LDPC decoding
    • Code block de-segmentation and CRC decoding
    • Transport block CRC decoding

    % Rate recovery
    raterec = nrRateRecoverLDPC(chOut,A,rate,rv,modulation,nlayers);

     

    % LDPC decoding
    decBits = nrLDPCDecode(raterec,cbsInfo.BGN,25);

     

    % Code block de-segmentation and CRC decoding
    [blk,blkErr] = nrCodeBlockDesegmentLDPC(decBits,cbsInfo.BGN,A+cbsInfo.L);

     

    % Transport block CRC decoding
    [out,tbErr] = nrCRCDecode(blk,cbsInfo.CRC);

     

    Note that there are two level of CRC check are performed: One the TB level CRC check, the other is the CB level CRC check.

    CRC error per code-block: [0  0]
    Transport block CRC error: 0

     

    Reference,

      MathWorks

  • 相关阅读:
    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
    总结软连接和硬连接区别,并用实例操作说明
    描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
    Git Shell push_code 脚本
    YDD的铁皮锅——C/C++内存概念
    Linux Shell 常见用法及问题
    MFC 设置鼠标样式(SetSystemCursor函数问题)
    Qt QTableView自定义列表(插入图片)
    Github libinjection库研究总结
    Windows/Linux:VMware虚拟机用内网IP通讯
  • 原文地址:https://www.cnblogs.com/zzyzz/p/12346322.html
Copyright © 2011-2022 走看看