基于MATLAB的CRC编码与译码的设计与仿真毕业论文

 2022-10-14 16:21:55

论文总字数:13770字

摘 要

通信是信息远距离的传送,是人类生产和生活的主要支撑。通信的目的是要把信息及时可靠地传送给对方,在衰损、失真和噪声会使通信线路上的信号发生错误。差错控制可以减少错误、提高通信质量,使误码率达到设计要求。CRC循环冗余校验码是一种重要的线性分组码,通过多项式除法检测错误[5],是在数据通信和数据检测中广泛应用的检错校验的循环码[1]。

CRC码是现有的较为新进的加密,及校验形式,通过在数据后加入对应的CRC码值可有效地加密,校验传输数据,防止出错。是传输数据的安全与准确性得以提高。对于CRC码求值问题用手算相对复杂,如用程序对数据的CRC码计算并列表则之后就可通过查表来得知相应数据的CRC码从而简化了工作流程在数字通信领域,为保证数据的正确传输,数据校验是必不可少的,而循环冗余校验 (CyclicRedundancy Check,简称CRC)在其中得到广泛的应用。该文首先对CRC8/16/32编码的基本原理作了简要的介绍,然后对CRC8/16/32 编码校验的具体MATLAB程序及GUI界面设计步骤进行了详尽的阐述。并以crc16为例阐述了crc电路的原理利用verilog软件工具及硬件电路对该设计进行了较为全面的仿真验证并给出仿真波型。另外本次设计中还扩展设计了关于LDPC的代码。

关键词:CRC;LDPC;MATLAB; Verilog

MATLAB - based coding module and Verilog simulation

Abrstract

Communication is the long-distance transmission of information and the main support of human production and life. The purpose of communication is to transmit information to the other party in a timely and reliable manner. Error control can reduce errors, improve communication quality, and achieve the design requirements of bit error rate. CRC cyclic redundancy check code is an important linear block code, which is widely used in data communication and data detection.

CRC code is an existing relatively new form of encryption and verification. By adding the corresponding CRC code value after the data, it can effectively encrypt, verify the transmitted data and prevent errors. It improves the security and accuracy of data transmission. For CRC code is evaluated by hand is relatively complicated, such as the application of the data list after the CRC code and can be learned by look-up table corresponding data CRC code to simplify the procedure of work in the field of digital communications, in order to guarantee the correct data transmission, data validation is indispensable, and the cyclic redundancy Check (CyclicRedundancy Check, or CRC) has been widely used in it. In this paper, the basic principle of crc8/16/32 coding is briefly introduced, and then the specific MATLAB program and GUI interface design steps of crc8/16/32 coding are described in detail. Taking crc16 as an example, the principle of CRC circuit was illustrated. Verilog software tool and hardware circuit were used to verify the design comprehensively and the simulation waveform was given. In addition this design also extended the design of LDPC code.e.

Keywords:CRC;LDPC;MATLAB;Verilog

引言

CRC是一种常用信道编码技术,其常作为信息码传输过程中的差错校验方式被使用,CRC码的信息字长可以自由的选定,而其对应的校验位字长也随之相应变动,这对其编码器的设计来说是十分方便的,CRC码虽然不是最新被提出的编码新方案,但是在如今,CRC码依然是作为一种流行的编码方式,在如今火热的物联网业务中[5]CRC码的应用十分的广泛,在对于超高频的协议EPC 与C1G2中所规定的读写器与电子标签数据通信的准确性就需要用到CRC-16以及CRC-5,CRC的校验原理是通过信息码后附加的效验码与标准的码字进行比对,故而在使用CRC码时就需要发送方将包括完整的信息码以及其对应的效验码进行完整的传输,这样,接收方才能 这就要求发送方首先根据要发送的数据产生相应的CRC 码,并与有效数据一起传输出去;接收方才能对整个码字进行差错校验,从而发现信息码是否出错。

为了将CRC在应用中,为了实现有效通信,发送接收双方都必须 有相应的 CRC 编码和校验模块。 在目前,根据网上查找资料时发现,目前许多的CRC编码程序都是通过存入完整的CRC码,通过查表法来进行,这种做法十分的消耗存储空间,而且在设计上实在谈不上是一种高明的做法。本设计通过对CRC编码算法的理解,直接通过单位比特的计算操作来生成与信息码对应的校验码,并设计了GUI可操作界面,又通过Verilog进行了波形仿真。CRC在Matlab中的设计思路主要是通过矩阵和数组见的转换与计算,移位完成,具体的我会在下文中设计步骤中介绍。为了仿真我也基于Verilog对CRC编码器进行了设计,在该设计中根据CRC编码的计算原理,我主要使用了移位寄存器和亦或(XOR)门来将其实现。这样的设计可以使整个编码器以比特流的形式工作,这样流水线式的工作方式能大大提高编码的速度。

目录

1 信道编码 1

2 使用软件及语言相关介绍 4

3 编码计算原理 5

4 基于MATLAB的CRC编码程序 12

5 编码的硬件电路思想与Verilog程序编写 22

6 仿真波形图展示 25

7 致 谢 29

8 参考文献 30

信道编码

    1. 信道编码发展史

在1949年,是信道编码的起点,由R.Hamming、]M.Golay所提出的“汉明码”成为了人类史上第一个实用的用于检测信息码错误与否的信道编码。但是,而汉明码较低的编码效率成为了其一大缺点。且在一个码组中只能纠正单个的比特错误。在汉明码中每4个比特码就需要3个比特的冗余校验比特位。在此之后,由M.Golay继续对汉明码进行研究,为了规避以上提出的这些不足,继汉明码之后,又出现了格雷(Golay)码,这以优秀的编码方案于1979至1981年间的美国被频频用于航天探索的项目中M.Golay先生研究了汉明码的缺点,并且在汉明码之后又提出了格雷(Golay)码。Golay码出现后被频繁的使用在人类的航天探索项目中。当时由航天器传输的数百张木星照片。都是通过Golay码进行差错控制。Golay码之后又诞生了RM码。RM码是线性分组码,是一种十分适合光纤通信的编码,他的高速译码算法特性充分体现了这一点。与格雷(Golay)码相同的是RM码也被广泛应用在航天项目中,在1969年到1977年之间的火星探测项目中,RM码被频繁的使用,为人类的航天事业做出了卓越的贡献,。之后便是我们本次设计的主角,循环码。循环码是一种线性分组码,其总码字长度为N,信息码字长度为K故而也称其为一种NK码,他可以通过代数方法构造,硬件实现主要就是使用移位寄存器,实现难度比较低。由于循环码具有循环移位的特性,编译码的结构则被大大的简化了。但是上述编码均属于分组码类之中,而分组码所具有的缺点有二:

1、在其译码过程中必须首先等待完整码字的接收完成后才能继续;

剩余内容已隐藏,请支付后下载全文,论文总字数:13770字

您需要先支付 80元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。