CRC校验-lte系统级模拟仿真器说明书

时间:2024-06-23 12:02:48
【文件属性】:

文件名称:CRC校验-lte系统级模拟仿真器说明书

文件大小:2.67MB

文件格式:PDF

更新时间:2024-06-23 12:02:48

Delphi 网络 高级编程

13.2 CRC校验 本节将讨论循环冗余校验(CRC,Cyclic Redundancy Check)的方法,即如何检验数据 传送过程中是完好无缺的。这是一种高效又可靠的方法。 CRC 是一种通过多项式除法检测错误的巧妙方法。“多项式除法”将每个比特串看作一 个多项式。通常,它将比特串 Bn-1Bn- 2Bn-3.B2B1B0 视为:Bn-1Xn-1+Bn-2Xn-2+Bn-3Xn- 3+.B2X2+B1X1+B0。 比如,比特串 100 1010 1110被解释成 X10+X7+X5+X3+X2+X1 每个 bit或者是 0,或者是 1,这里只需写出 bit为 1的项,而不必写出为 0的项。 下面介绍 CRC的概况,同时假设所有的运算都是模 2。 (1) 给定一个比特串,在其尾部追加几个 0。 一个突发错误并不一定改变每一个比特位。传输中的比特位可能被损坏,也可 能不被损坏。在本例中,有些 0出现,有些 0不出现在原数据帧中。问题在于 接收方无从知道哪些比特位是正确的。 (2) 将 B(x)除以一事先约定的生成多项式 G(x)(Generator Polynomial),求出余式 R(x)。 (3) 定义 T(x)=B(x)-R(x)。后面会说明 T(x) /G(x)的余数为 0,并且减法运算可以通过用 与 R(x)对应的比特串替换成以前追加 0的串而完成。 (4) 传输与 T(x)对应的比特串 T。 (5) 让 T代表接收方收到的比特流,T(x)为相应的多项式。接收方将 T(x)除以 G(x)。若 余数为 0,则接收方认为 T=T,(传输)未发生错误。否则,接收方认为(传输) 发生了错误并要求重新传输。 (6) 程序的代码参见光盘目录\ch12\API\PSPCRC32\,在\ch12\API\PSPCRC32\demo下有 详细例程。 procedure Tfrm_main.Button2Click(Sender: TObject);


网友评论