CRC解码(解码并删除循环冗余校验)

1.语法

(1)[blk,err] = nrCRCDecode(blkcrc,poly)

[blk,err] = nrCRCDecode(blkcrc,poly)检查输入数据blkcrc中是否存在CRC错误。该函数假定输入数据包括与多项式poly相关的CRC奇偶校验位。该函数返回blk,这是输入blkcrc的数据部分。该函数还返回err,它是输入中包含的CRC与跨输入的数据部分重新计算的CRC之间的逻辑差(XOR)。如果err不等于0,则说明发生了错误或输入CRC被屏蔽。有关相关多项式的详细信息,请参见TS 38.212第5.1节[1]。

(2)[blk,err] = nrCRCDecode(blkcrc,poly,mask)

[blk,err] = nrCRCDecode(blkcrc,poly,mask)在使用err返回之前,用mask对CRC差异进行XOR屏蔽。将掩码值应用于CRC差,最高有效位(MSB)在前,最低有效位(LSB)在后。

例:检查数据块是否存在CRC错误

使用和不使用掩码检查CRC解码的效果

(1)定义与等于12的无线网络临时标识符(RNTI)对应的掩码。将RNTI掩码的CRC奇偶校验位附加到一个数据块的全1矩阵。

rnti = 12;
blkCrc = nrCRCEncode(ones(100,1),‘24C’,rnti);

(2)当执行不带掩码的CRC解码时,err1等于RNTI,因为CRC在编码过程中被掩码了。原始CRC与重新计算的CRC之间的逻辑差异是CRC掩码。

[blk,err1] = nrCRCDecode(blkCrc,‘24C’);
err1

(3)使用RNTI值作为掩码执行CRC解码时,err等于0。

[blk,err2] = nrCRCDecode(blkCrc,‘24C’,err1);
err2

2.输入参数

(1)blkcrc — CRC编码的数据

CRC编码的数据,指定为实数矩阵。矩阵的每一列均视为单独的CRC编码数据块。

数据类型:双精度/8位整型/逻辑型

(2)poly — CRC多项式

CRC多项式,指定为“ 6”,“ 11”,“ 16”,“ 24A”,“ 24B”或“ 24C”。有关相关多项式的详细信息,请参见TS 38.212第5.1节。

数据类型:字符/字符串

(3)掩码—XOR掩码

XOR掩码,指定为非负整数。该掩码通常是无线电网络临时标识符(RNTI)。

数据类型:双精度

3.输出参数

(1)blk — CRC解码的数据

CRC解码数据,以实数矩阵形式返回。 blk是输入blkcrc的仅数据部分。

数据类型:双精度/8位整型/逻辑型

(2)err —逻辑CRC差

逻辑CRC差,以整数形式返回。 err是输入blkcrc中包含的CRC与跨输入数据部分重新计算的CRC之间的逻辑差。如果指定了掩码,则函数XOR使用mask对err-masks进行掩码,然后再返回它。

数据类型:无符号32位整型

4.参考文献

[1] 3GPP TS 38.212. “NR; Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值