在实际的项目过程中用运到CRC校验,利用Matlab的函数、脚本和对象分别实现了CRC24A校验,其中Matlab的脚本代码可以指导FPGA代码的实现。
1.什么是CRC
2.LTE中的CRC
LTE TDD系统采用了4种格式的CRC:CRC24A、CRC24B、CRC16、CRC8。其生成多项式如下:
CRC-24A:g(x)=x24+x23+x18+x17+x14+x11+x10+x7+x6+x5+x4+x3+x+1;
CRC-24B: g(x)=x24+x23+x6+x5+x+1;
CRC-16: g(x)=x16+x12+x5+1;
CRC-8: g(x)=x8+x7+x4+x3+x+1;
其中长度为24的CRC24A和CRC24B主要用于共享信道数据传输,长度为16的CRCl6主要用于下行控制信道和广播信道数据传输,长度为8的CRC8主要用于CQI(Control quality information)信息的传输。
3.CRC16编码器结构
4.CRC24A编码器结构
5.基于Matlab的CRC24A的实现
Matlab实现CRC校验方法有以下三种方法:
1.h = crc.generator(‘Polynomial’, polynomial, ‘param1’, val1, etc.);
2.blkcrc = lteCRCEncode(blk,poly,mask);
3.根据编码器结构编写脚本文件
本文分别使用这3中方法进行了CRC24的实现,结果正确。其中Matlab的脚本代码可以指导FPGA代码的实现。
仿真Matlab代码链接地址:https://download.csdn.net/download/flypassion/11867412