CRC码是线性分组码的一个重要子集,它是为了保证通信系统中-Read.docVIP

CRC码是线性分组码的一个重要子集,它是为了保证通信系统中-Read.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CRC码是线性分组码的一个重要子集,它是为了保证通信系统中-Read.doc

CRC码是线性分组码的一个重要子集,它是为了保证通信系统中的数据传输可靠性而采取的信道编码技术。CRC码除了具有分组码的线性外,还具有循环性,其码字结构一般用符号(n,k)表示,其中,n是该码组中的码元数,k是信息码位数,r=n-k是监督码元位数。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并能相应地简化译码算法。目前应用的CRC编码器主要由硬件电路实现,可以保证编码的快速性和实时性,但其缺点是系统复杂,可维护性差。本文介绍了一种以EDA设计工具MAX+PLUSII软件为基础,利用VHDL语言设计一个CRC(7,3)编码器的方法,采用此方法实现的编码器具有编码速度快,可靠性高以及易于大规模集成等优点。 1 编码原理 ??? 在CRC(7,3)编码过程中,要将任意的三位信息码转换为CRC码,实施编码时的主要决定因素有两个:信息码多项式m(x)和生成多项式g(x)。 ??? 信息码多项式就是以待转换信息码字为系数所构成的多项式,一旦信息码确定,则该多项式就是唯一的。信息码多项式只是编码器处理的对象,在整个编码过程中起决定作用的是生成多项式。 ??? 以CRC(7,3)码构成来说明生成多项式在编码中的作用,如表一所示。 ? 表一 CRC(7,3)码构成过程 ??? 由表一所示的构成2k-1=7个非全0码字多项式的过程与结果看,编码时从x4+x3+x2+x=T(x)开始进行逐一循环,并以模x7+1进行运算,该码字正是信码组中最低位为1,对应码字多项式T(x),在全部非全0码字中,它的最高位阶次也最低,并等于n-k=4,即最高次项为x4。随后一系列码字都源于它的移i位(i=1,2,1,6)而形成,因此称其为生成多项式g(x),即生成多项式是(x7+1)的一个最高阶次为 (n-k)即4的因子,再将x7+1分解如下: x7+1=(x+1)(x3+x+1)(x3+x2+1) ??? 从该分解式中可以看到其中可以组合为二因式中包含最高次为4次的情况有两种,即 g1(x)=(x+1)(x3+x+1)=x4+x3+x2+x g2(x)=(x+1)(x3+x2+1)=x4+x2+x+1 ??? 这两个式子都可以作为生成多项式,所不同的是选用不同的生成多项式所生成的CRC码组不同。 ??? 当信息码多项式m(x)(次数小于k)和生成多项式g(x)确定以后,用xn-k乘m(x),得到xn-k(x)的次数必然小于n。用g(x)除xn-km(x),得到余式r(x),r(x)的次数必小于g(x)的次数,即小于(n-k)。将此余式加与xn-km(x)之后作为监督位。得到的多项式就是CRC码多项式,通过CRC码多项式的系数即可得到所编的CRC码字。 2 编码器设计 2.1编码框图 ??? CRC编码器的主体是由移位寄存器和模2除法器构成的除法电路,通过逻辑开关的控制实施信息码的输入和CRC码的输出,编码电路框图如图一所示。 ? 2.2 VHDL实现 ? ??? 本次设计的CRC编码器,利用MAXPLUS II软件平台,据CRC编码原理,采用VHDL文本输入法。为了提高编码的速度,在设计时采用信息位并行输入,CRC码并行输出的算法。程序经编辑调试通过后所生成的编码模块如图二所示。具体程序代码如下: LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity yancrc4 is port(sdata : in STD_LOGIC_VECTOR(2 DOWNTO 0); ???? datacrco :out STD_LOGIC_VECTOR(6 DOWNT 0); ???? hsend :out std_logic; ???? clk,datald:IN_STD_LOGIC ); END yancrc4; ARCHITECTURE rtl OF yancrc4 IS constant multi_coef : STD_LOGIC_VECTOR(4 DOWNTO 0) :=10111; SIGNAL cnt,rcnt,ttemp :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL dtemp :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL sdatam,rdtemp:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL rdatarcr:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL st,rt:STD_LOGIC; BEGIN process(clk) variable

文档评论(0)

wendang_12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档