天天看点

基于matlab的crc编码与译码,CRC校验码的MATLAB和FPGA实现+源程序.doc

CRC校验码的MATLAB和FPGA实现源程序

CRC校验码的MATLAB和FPGA实现+源程序

摘要:本设计首先介绍了CRC校验码工作的基本原理和生成原理,并利用Matlab软件对其进行了程序编程和编译仿真。重点分析了CRC校验码的FPGA具体实现方案,将硬件电路设计分成了两部分:一部分是CRC校验码的生成校验模块,另一部分是CRC校验码的显示模块。并在此基础上基于FPGA用VHDL语言进行了程序设计和波形仿真。11361

关键词: CRC校验码;Matlab软件; FPGA

MATLAB and the FPGA Implementation of CRC Check Code

Abstract: This design introduced the basic principle of CRC check code, and using the Matlab software to programming and compile the simulation. It also analyzed a hardware implementation of CRC on FPGA with the VHDL language. The realization module pides into two parts: a part is the CRC code decoding module, and another part is the demonstration and verification module. And On the basis of FPGA, Completed the writing of the program and the simulation waveform.

Key words: Cyclical Redundancy Checking; Matlab;FPGA

目录

摘要1

引言1

1.CRC码原理及生成2

1.1CRC介绍2

1.2CRC码产生原理3

1.3CRC码的工作流程图4

1.4CRC确定的码集原则4

1.5CRC码的生成步骤5

2.CRC的MATLAB程序的编写6

2.1程序流程图6

2.2MATLAB程序7

3.MATLAB仿真结果及其分析8

3.1仿真的结果8

3.2结果分析9

本次研究使用的是Matlab软件进行设计与仿真。Matlab是一种科学计算软件,主要适用于矩阵运算及控制和信息处理领域的分析设计。它使用方便,输入简捷,运算高效,内容丰富,并且很容易由用户自行扩展,因此,当前已成为教学和科研中必不可少的工具。在CRC的FPGA实现模块中将硬件电路分成了两部分一部分是CRC的生成及校验模块另一部分是显示模块,这样我们就能比较直观的观察CRC校验码的工作过程,使我们进一步掌握CRC码。除了使用MATLAB软件外我们还用到了Quartus II软件。Quartus II软件的功能很长强大,本设计的VHDL语言编写、原理图、波形仿真等都是通过Quartus II软件实现的。

1.CRC码原理及生成

1.1CRC介绍

CRC(Cyclic Redundancy Check)全称是循环冗余校验码,是一种被数字通信领域广泛使用的一种常用的差错控制方法[3]。其特点是可以任意确定检验码元和信息码元的长度。它的应用很广,一般常见的说法都是用于通信。其实,在压缩、解压文件的时候,也普遍用到了它。

CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k bit,就称为(n,k)码。校验码(监督码) r就是CRC的后(n-k)bit[4]。

线性编码理论是CRC校验编码的主要思想依据,根据要发送的k位二进制信息码序列,从发送端按一定的步骤规则生成一个r位的校验码,再将产生的r位校验码附加到信息码后面,得到一个新的制序列码一共(k+r)位,然后将这个新的序列码传送出去。再在接收端接收,将接收的CRC码根据编码时所符合的规则进行校验,判断传送过程中是否误码。

1.2CRC码产生原理

CRC码又称多项式码。这是因为,任意一个二进制序列数都可以用一个系数仅为0和1的多项式与之一一对应。比如:二进制序列1100101对应的多项式为 ,而多项式 对应的二进制序列为101111。

---------------------------------------------------------------范文最新推荐------------------------------------------------------

1 / 1