(13_9)CRC冗余校验码的编译码仿真实现

合集下载

CRC校验的设计与实现

CRC校验的设计与实现

5.3.4 循环冗余校验的设计与实现本系统中数据通信技术占据重要地位,是保证数据采集准确性的关键。

客户端与称重仪表进行通信时,为减小产量信息在传输过程中由于电磁干扰等因素导致的错误,需进行数据校验。

数据校验方法有很多,比较传统的有:行列冗余校验、重复码校验、奇偶校验、循环冗余校验等。

本系统采用循环冗余校验(CRC )进行通信过程中的数据校验。

CRC 是一种检错能力很强的循环码,利用模2取余的原理对数据进行循环校验,计算效率高且误判概率极低,几乎为零。

从性能和开销上考虑,CRC 远优于传统的算术和校验及奇偶校验。

1.CRC 编码原理CRC 校验通常采用多项式编码的方式,参与校验的数据信息(以下简称“待校验数”)可看作一个n 阶的二进制形式的多项式,即121210...n n n n a x a x a x a ----++++。

例如,一个6位二进制数101101可表示为:54325321011011x x x x x x x x +++++=+++(为方便下文描述,把该类型的多项式称为“转换多项式()x g ”)。

CRC 的编码方式是把待校验数转变成二进制数()x t ,然后再将()x t 转变为转换多项式()x g ,令()()()R e t x R x g x ⎡⎤=⎢⎥⎣⎦(式中的[]Re 表示对中括号内的式子进行取余运算),将余数()R x 做为待校验数的CRC 校验码。

CRC 校验码具体求解步骤如下:①假设待校验数是n 位二进制形式的多项式()x t ,把()x t 转变为转换多项式()x g ,位数为n 。

在待校验数的末尾附加r 个零,则待校验数的长度变为n r +位,其对应的二进制形式的多项式变成()x t x r 。

②把()x g 和()x t x r 进行取余运算,设余数为()x y ,则()()()R e r x t x y x g x ⎡⎤=⎢⎥⎣⎦,()x y 位数为1-r 。

CRC编码的Simulink仿真实现

CRC编码的Simulink仿真实现

目录第一章设计要求求 (2)1.1基本要求 (2)1.2提高要求 (2)1.3功能需求 (2)第二章系统的组成及工作原理 (3)2.1系统组成 (3)2.2 CRC编码原理 (3)2.3 通用CRC编码器 (3)2.4 CRC—N编码器 (3)2.5 CRC检测器(CRC—N检测器) (4)第三章概要设计 (5)3.1 系统层次结构图 (5)3.2 方案的比较 (5)第四章详细设计 (6)4.1 仿真模型图 (6)4.2 各个模块的功能及参数设置 (6)第五章调试及测试结果与分析 (12)5.1功能调试 (12)5.2、问题发现及解决 (13)第六章设计总结 (14)参考文献 (15)附录1 (16)附录2 (17)第一章设计要求1.1、设计要求(1)对输入数据帧,进行CRC编码。

根据数据帧长度,选择适当长度的CRC编码器。

观察编码前后的波形。

(2)掌握CRC生成多项式、系统码等概念。

(3)掌握SIMULINK仿真参数的设置方法。

1.2提高要求从误码率的角度考虑如何根据数据帧长度选择合适的长度的CRC编码器。

1.3功能需求实现CRC编码以及检测过程,并且在示波器上显示波形。

第二章系统组成及设计原理2.1、系统组成本系统由信源编码部分,信道部分,信宿检测部分组只要组成2.2、CRC编码原理在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。

对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R 的多项式G(x)。

根据G(x)可以生成K位信息的校验码,而G(X)叫做这个CRC码的生成多项式。

校验码的具体生成过程为:假设发送信息用信息多项式M(X)表示,将C(x)左移R位,则可表示成M(x)*2R,这样C(x)的右边就会空出R位,这就是校验码的位置。

通过M(x)*2R除以生成多项式G(x)得到的余数就是校验码。

2.3、通用CRC编码器通用CRC编码器根据输入的一帧数据计算得到这帧数据的循环冗余码,并且把这个循环冗余码附加到帧数据后面,形成输出数据流。

CRC冗余校验编码与解码的FPGA实现

CRC冗余校验编码与解码的FPGA实现

CRC冗余校验编码与解码的FPGA实现CRC(Cyclic Redundancy Check)冗余校验编码是一种常用的错误检测技术,它通过对数据进行多项式除法运算,生成一个校验码。

接收方可以利用这个校验码来检测数据传输是否出现错误或损坏。

在FPGA中实现CRC的编码和解码功能可以提供硬件级别的实时性能和效率,并且可以与其他模块轻松集成在一起。

首先,我们需要准备FPGA开发板、软件开发工具和一个CRC多项式。

CRC多项式的选择取决于所使用的CRC标准和数据宽度。

编码的FPGA实现主要包含以下步骤:1.数据输入:将待编码的数据通过输入端口输入到FPGA中。

2.除数寄存器初始化:初始化一个与CRC多项式位数相等的寄存器,初始值为0。

3.循环除法:采用循环除法算法,将输入数据和除数寄存器中的值进行除法运算。

每次计算结果都更新除数寄存器。

4.生成校验码:当所有输入数据都被除尽后,生成最终的校验码。

5.输出校验码:将生成的校验码通过输出端口输出到外部。

解码的FPGA实现主要包含以下步骤:1.接收数据:将接收到的数据通过输入端口输入到FPGA中。

2.除数寄存器初始化:与编码过程相同,初始化一个与CRC多项式位数相等的寄存器。

3.循环除法:采用同样的循环除法算法进行运算,将输入数据和除数寄存器中的值进行除法运算。

4.判断错误:当除数寄存器的值为零,说明数据没有出现错误。

否则,数据出现错误。

通过使用FPGA来实现CRC冗余校验编码和解码,可以获得高速、高效的数据传输,尤其适用于在低延迟和高吞吐量的系统中。

此外,FPGA的可编程性使得我们可以灵活地配置不同标准和多种数据宽度的CRC。

需要注意的是,在实现CRC编码和解码时,需要根据具体的CRC标准和数据宽度来确定多项式的选择以及对应的除法算法。

此外,合理的硬件设计和时序控制对于FPGA实现CRC的性能和正确性也至关重要。

综上所述,CRC冗余校验编码与解码的FPGA实现可以提供高效的数据传输和错误检测功能,适用于各种应用场景。

循环冗余校验编解码电路设计实验报告

循环冗余校验编解码电路设计实验报告

循环冗余校验编解码电路设计实验报告一、引言循环冗余校验(CRC)是一种常用于检测和校正数据传输错误的技术。

在通信领域,CRC编解码电路是一种重要的硬件设计,用于验证数据传输的准确性。

本实验旨在通过设计循环冗余校验编解码电路,探索其工作原理和实际应用。

二、背景知识1.循环冗余校验原理循环冗余校验利用多项式除法的性质来实现数据校验。

发送端将数据和校验值进行运算得到余数,并将余数附加到数据后一起发送。

接收端通过对接收到的数据进行除法运算,得到的余数判断数据是否正确。

2.CRC编码过程–发送端:将数据进行扩展,加上用于校验的位数,并使用预定的生成多项式进行除法运算得到余数,将余数附加在数据后面发送出去。

–接收端:接收到数据后,再次进行除法运算,得到的余数为0则说明数据传输正确,否则说明存在错误。

3.CRC解码过程–发送端:发送数据和余数。

–接收端:接收数据和余数,使用与发送端一样的生成多项式进行除法运算,得到的余数判断数据是否正确。

三、实验设计与实现1. 实验目的了解循环冗余校验的原理,并通过设计和实现循环冗余校验编解码电路加深对其理解。

2. 实验器材与材料•FPGA开发板:用于搭建实验电路•Vivado软件:用于设计和验证电路•扁平电缆:用于连接FPGA开发板和外部设备3. 实验步骤1.了解所用的生成多项式,确定校验位数和除法运算方式。

2.使用Vivado软件创建工程,选择适合的FPGA开发板型号。

3.设计循环冗余校验编码模块,并使用Verilog语言进行描述。

4.设计循环冗余校验解码模块,并使用Verilog语言进行描述。

5.设计测试模块,用于生成测试数据和验证结果。

6.进行RTL级仿真,验证电路设计的正确性。

7.将设计文件综合、实现和下载到FPGA开发板。

8.在FPGA开发板上测试编解码电路的功能和性能。

9.分析实验结果,总结经验和教训。

四、实验结果与分析1. RTL级仿真结果在RTL级仿真中,我们生成了不同的输入数据,并通过编解码电路计算得到校验值和余数。

crc循环冗余校验 matlab 实现-概述说明以及解释

crc循环冗余校验 matlab 实现-概述说明以及解释

crc循环冗余校验matlab 实现-概述说明以及解释1.引言1.1 概述概述部分的内容:CRC(循环冗余校验)是一种在数据通信中常用的差错检测方法。

它通过对发送数据进行一系列的计算和校验,以判断接收数据是否出现了错误或被篡改。

CRC技术广泛应用于各种数据传输系统,包括计算机网络、无线通信、存储设备等。

CRC算法的原理是将发送数据看作一个多项式,并利用这个多项式进行一系列的运算。

通过对多项式进行除法运算,得到一个余数。

发送方将这个余数附加在数据后面发送给接收方。

接收方同样利用CRC算法对接收到的数据进行一系列的运算,得到一个余数。

如果发送方和接收方的余数一致,则可以认为数据传输没有出现错误;反之,如果余数不一致,则说明数据发生了错误或被篡改。

Matlab是一种功能强大的科学计算软件,也是进行CRC算法实现的优秀工具。

通过Matlab的计算和编程能力,我们可以方便地编写CRC算法的相关代码,实现CRC校验的过程。

Matlab提供了各种函数和工具箱,可以帮助我们进行多项式的运算、二进制数据的转换以及CRC校验码的计算等操作。

本篇文章将详细介绍如何在Matlab中实现CRC循环冗余校验。

首先,我们将介绍CRC算法的基本原理和步骤。

然后,我们将详细讲解如何使用Matlab进行CRC校验的编程实现,包括数据的转换、多项式的计算和余数的检验。

最后,我们将通过实际的案例来展示Matlab实现CRC的应用场景和效果。

通过阅读本文,读者将能够了解CRC循环冗余校验的基本原理和应用场景,并能够使用Matlab进行CRC算法的实现和应用。

本文的内容将有助于读者提高对CRC技术的理解和掌握,在进行数据通信和差错检测的相关工作中发挥更好的作用。

文章结构部分应该涵盖关于整篇文章章节的简要说明,以下是一种可能的编写方式:1.2 文章结构本文共分为三个主要部分:引言、正文和结论。

每个部分的内容如下所述:1. 引言在引言部分,我们将首先对文章所涉及到的主题进行概述,包括简要介绍循环冗余校验(CRC)的概念和应用领域。

CRC冗余校验编码与解码的FPGA实现

CRC冗余校验编码与解码的FPGA实现

郑州轻工业学院课程设计说明书题目:CRC冗余校验编码与解码的FPGA实现姓名:院(系):电子信息工程学院专业班级:学号:指导教师:成绩:时间:年月日至年月日郑州轻工业学院课程设计任务书题目 CRC冗余校验编码与解码的FPGA实现专业、班级学号姓名主要内容、基本要求、主要参考资料等:利用所学过的通信原理中的纠错码的基础知识,利用硬件编程语言VHDL或者Verilog-HDL实现CRC冗余校验编码与解码的FPGA的设计。

给出完成控制电路所需要的设计模块;给出硬件编程语言的实现,并进行仿真;给出下载电路的设计,设计为2种下载方法,其中一种必须为JTAG;6个人可选择3组不同的校验码来进行编解码的设计,同时设计者报告不允许雷同。

参考资料:1、潘松、黄继业《EDA技术及其应用》(第四版)科学出版社 20092、樊昌信《通信原理》电子出版社完成期限:指导教师签名:课程负责人签名:年月日在通信系统中,数据在传输过程中,由于通道传输特性不理想,并且受到干扰或噪声的影响。

循环冗余校验(CRC) 是一种最常用的信道编码方法,广泛应用于通信领域以提高数据传输的可靠性。

随着半导体技术的迅速发展,在现代数字系统设计中,FPGA和CPLD的使用越来越广泛。

与此同时,基于大规模可编程逻辑器件的EDA硬件解决方案也被广泛采用。

本文在上述背景下提出了基于FPGA的CRC并行处理算法。

采用VHDL语言实现了CRC码的生成模块和校验模块,并以Altera公司开发的EDA工具QuartusⅡ8.0作为编译、仿真平台进行了仿真,最后将程序下载到CycloneⅢ芯片进行了验证测试。

测试结果表明,算法的实验结果与理论分析结果完全相符。

论文介绍了CRC的编码、解码算法的工作原理以及FPGA技术、VHDL语言的基本知识,在此基础上详细介绍了在QuartusⅡ8.0中利用VHDL语言实现CRC 的过程。

关键词:通信系统 CRC FPGA VHDL摘要 (I)1 绪论 (1)1.1 课题研究背景和意义 (1)1.2 课题研究现状 (1)2 CRC的特征和基本工作原理 (2)2.1 CRC的特征和码集选择的原则 (2)2.2 CRC生成原理 (2)2.3 CRC模块结构图 (3)3 FPGA和VHDL语言 (4)3.1 概述 (4)3.2 VHDL语言特点 (5)3.2.1 常用硬件描述语言简介 (5)3.2.3 VHDL程序的基本结构 (6)3.3 Quartus II 简介 (6)4 程序实现及结果分析 (8)4.1 设计方案论证 (8)4.2 生成模块设计 (8)4.2.1 设计原理 (8)4.2.2 仿真波形 (9)4.3 校验模块设计 (9)4.3.1 设计原理 (9)4.3.2 仿真波形 (10)4.4 顶层设计 (10)4.4.1 顶层设计原理 (10)4.4.2 顶层设计仿真波形 (11)参考文献 (12)附录 (13)致谢 (16)1 绪论1.1 课题研究背景和意义在近年来,随着微电子学和计算机科学的迅速发展,给EDA(电子设计自动化)行业带来了巨大的变化,特别是近代,电子系统已经从电路板级系统集成发展成为包括ASIC、FPGA和嵌入系统的多种模式。

循环冗余校验码的仿真与实现1..

循环冗余校验码的仿真与实现1..

******************实践教学*******************兰州理工大学计算机与通信学院2013年秋季学期《计算机通信与网络》课程设计题目:(15,11)CRC冗余校验码的编译码仿真实现专业班级:通信工程(4)班姓名:王强学号:10250424指导教师:彭清斌成绩:摘要现代社会的生产和生活都需要借助计算机网络来完成,在计算机网络日益发达的今天,人们对数据传输的准确性和传输的速度要求越来越高,数据传输不仅要保证实时,还要保证准确。

因此,数据通信技术是计算机通信网络技术发展的基础,已经为现代生活中不可缺少的一部分。

但是通过通信信道传输的数据往往会有差错的产生,而且差错的产生是不可避免的,因此我们的任务是分析循环码算法的实现原理及研究检查是否出现差错及如何纠正差错。

循环冗余校验码(CRC)是目前应用最广的纠错编码之一。

本次课设论述了循环冗余码的算法及其在数据通信中的作用,研究了纠错码及循环冗余校验码的原理,以及利用MATLAB对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是否一致。

关键词:检错码 CRC循环冗余校验码 MATLAB 计算机通信目录前言 (1)一、基本原理 (2)1.1计算机通信与纠错码 (2)1.1.1 计算机通信 (2)1.1.2 纠错码 (2)1.1.3 纠错原理 (3)1.2 CRC循环冗余校验码 (4)1.2.1 CRC的介绍 (4)1.2.2 CRC的基本原理 (5)二、推导过程 (9)三、MATLAB语言编程与运行 (11)3.1 MATLAB语言的介绍 (11)3.2 程序流程图 (13)3.3 MATLAB程序 (14)设计总结 (17)致谢 (18)参考文献 (19)前言通信技术的发展和新业务的不断出现对计算机网络通信系统的服务质量和数据的传输速度提出了更高的要求,数据交换量的迅速增加也加重了计算机网络的通信负担,网络很难对所有的数据进行完全正确的传输,网络通信中的实时差错控制技术显得尤为重要。

模拟实现crc校验算法课程设计

模拟实现crc校验算法课程设计

课程设计:模拟实现CRC 校验算法1. 实验目的:通过本课程设计,学生将掌握CRC 校验算法的基本原理和实现方法,并能够使用程序模拟实现CRC 算法对给定数据进行校验。

2. 实验内容:(1)了解CRC 校验算法的工作原理和基本概念。

(2)设计一个模拟实现CRC 校验算法的程序。

(3)编写程序,实现CRC 校验算法对给定数据进行校验。

(4)测试和验证程序的正确性和有效性。

3. 实验步骤:(1)理解CRC 校验算法的原理和相关术语,包括生成多项式、除数、余数等概念。

(2)设计并实现一个模拟实验环境,包括输入数据、生成多项式、除法运算等功能。

(3)编写程序,按照CRC 校验算法的步骤对输入数据进行处理和计算。

(4)根据计算结果判断校验是否通过,并输出相应的提示信息。

(5)设计合适的测试用例,对程序进行测试,验证其正确性和可靠性。

(6)分析并总结实验结果,讨论CRC 校验算法的优缺点及应用场景。

4. 实验要求:(1)编程语言:可以选择任意合适的编程语言实现,如C、C++、Python等。

(2)程序设计:程序应具备良好的模块化结构和易于理解、修改的代码风格。

(3)用户界面:程序应提供简单直观的用户界面,方便输入数据和显示校验结果。

(4)错误处理:程序应能够处理输入数据非法或异常情况,并给出相应的错误提示。

5. 实验报告:学生需撰写一份实验报告,包括实验目的、原理分析、程序设计与实现、测试结果及分析等内容。

报告应具备清晰、准确、完整的结构,并附上关键代码片段和运行截图。

6. 参考资源:(1)CRC 校验算法的相关教材和学术论文。

(2)编程语言的官方文档和参考资料。

(3)其他开源项目或例子代码。

通过本课程设计的实践过程,学生将加深对CRC 校验算法的理解和掌握,提高编程能力和问题解决能力,在计算机网络、数据传输等领域具有一定的应用价值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

******************实践教学*******************兰州理工大学计算机与通信学院2013年秋季学期计算机通信课程设计题目:(13,9)CRC冗余校验码的编译码仿真实现专业班级:姓名:学号:指导教师:成绩:摘要在实际的通信系统中,由于信道传输特性不理想以及加性噪声的影响,传输的信息中不可避免地会发生错误,影响通信系统的传输可靠性。

随着数字通信技术的发展,各种业务对系统误码率的要求也逐渐提高,采用差错控制编码技术是提高数字通信可靠性的有效方法之一。

差错控制编码就是在发送端的信息码元序列中,以某种确定的编码规则加入一些监督码元,使信息码元与监督码元之间具有某种相关性。

接收端通过检验这种相关性是否存在来判断在传输过程中是否出现了误码。

本设计研究了CRC循环冗余校验码的原理,以及利用MATLAB对其进行了编程和编译仿真,实现了CRC循环冗余校验码的编码及校验,在接收端收到通过校验的码,从而确定传输过程是否出错,得到的结论和理论上是一致的。

关键词:检错码 CRC循环冗余校验码 MATLAB目录前言 (3)一、基本原理 (4)1.1循环码的概念 (4)1.2循环码333数学特征 (4)1.2.1.线性分组码的封闭型 (4)1.2.2.循环性 (4)1.3循环冗余校验码CRC (5)1.3.1循环冗余校验码CRC的定义 (5)1.3.2编码规则 (5)1.4 CRC校验码的性质 (5)1.5 差错编码的基本概念 (5)1.6差错编码的基本原理 (6)1.7 差错控制编码的方式 (7)1.7.1 前向纠错控制(FEC)方式 (7)1.7.2 自动请求重发(ARQ)方式 (7)1.7.3 混合纠错(HEC)方式 (7)1.8 差错编码的特性和能力 (8)1.8.1 海明距离 (8)1.8.2 最小距离 (8)1.8.3最小距离与抗干扰能力之间的关系 (8)1.9 循环冗余校验码(CRC)原理 (8)二、系统分析 (10)2.1 循环码(13,9)算法设定 (10)2.2 循环码(13,9)编码算法分析 (10)2.2.1编码规则 (10)2.2.2 编码算法 (10)2.3 循环码(13,9)译码算法分析 (10)2.4 CRC冗余校验码的实现方法 (11)2.4.1 CRC校验的硬件实现 (11)2.4.2 CRC校验的软件实现 (11)三、MATLAB语言介绍 (12)3.1 MATLAB概述 (12)3.2 MATLAB系统组成 (13)四、仿真过程及结果 (14)4.1程序流程图 (14)4.2 MATLAB的CRC编程 (15)4.3 结果分析 (18)五、心得体会 (19)参考文献 (20)前言在数据通信过程中,衰损,失真和噪声会使通信线路上的信号发生错误。

为了减少错误,提高通信质量,使得误码率达到要求,通常采用纠错,检错技术,即差错控制技术。

差错控错控制的主要方法是将数据以某种形式进行编码。

以前经常采用的电子线路进行编码和差错控制,既复杂又麻烦,而且可靠性又比较低。

在计算机通信网中,采用计算机技术进行编码和控制,既简单又方便,而且可靠性还比较高。

因此,计算机的应用,使得通信技术得到了很大提升。

不仅如此,随着计算机的应用,差错控制技术本身也得到了相应的发展。

一、基本原理1.1循环码的概念循环码:无权码,每位代码无固定权值,任何相邻的两个码组中,仅有一位代码不同。

循环码是线性分组码中一个重要的分支。

它的检、纠错能力较强,编码和译码设备并不复杂,而且性能较好,不仅能纠随机错误,也能纠突发错误。

循环码是目前研究得最成熟的一类码,并且有严密的代数理论基础,故有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现,所以循环码受到人们的高度重视,在FEC系统中得到了广泛应用。

1.2循环码333数学特征1.2.1.线性分组码的封闭型即如果c1,c2,是与消息m1,m2对应的码字,则c1+c2必定是与m1+m2对应的码字。

1.2.2.循环性即任一许用码组经过循环移位后所得到的码组仍为该许用码组集合中的一个码组。

以3号码组(0010111)为例,左移循环一位变成6号码组(0101110),依次左移一位构成的状态图如图1-1所示。

图1-1循环码中的循环圈可见除全零码组外,不论循环右移或左移,移多少位,其结果均在该循环码组的集合中(全零码组自己构成独立的循环圈)。

1.3循环冗余校验码CRC1.3.1循环冗余校验码CRC的定义循环冗余校验是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠1.3.2编码规则CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。

它的编码规则是:移位:将原信息码(kbit)左移r位(k+r=n)相除:运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。

非常简单,要说明的:模2除就是在除的过程中用模2加,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是:0+0=1+1=0,1+0=0+1=1即‘异’则真,‘非异’则假。

由此得到定理:a+b+b=a 也就是‘模2减’和‘模2加’直值表完全相同。

有了加减法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。

生成多项式应满足以下原则:a、生成多项式的最高位和最低位必须为1。

b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。

c、不同位发生错误时,应该使余数不同。

d、对余数继续做模2除,应使余数循环。

1.4 CRC校验码的性质可靠性:除了正好数据块的比特值是按除数值变化的错误外,循环冗余校验讲检测出其他所有错误,甚至对于上面所提到的四比特错误——这种情况放生的可能性仍然是很小的。

而且,常用的CRC除数通常有17或是33比特,使得不可检测的错误可能降低到几乎近于零。

1.5 差错编码的基本概念为了提高通信系统的水平,在数字通信系统中,在发送端对信源发送的二进制数字序列附加多余数字与信息数字建立某种相关性。

在接收端对这组编码进行检测,若发现错误,则试图找出错误位置并纠正。

由此可见,差错控制的原理在于增加冗余度使得原来的信息可以检测传输差错。

新加入的码元越多,冗余度越大,纠错能力越强,但效率会降低。

对二进制码而言,一个n位的二进制码的所有组合为N=2n种信息。

1.6差错编码的基本原理差错编码的核心是抗干扰编码,简称差错编码。

它的基本思想是通过对信息序列进行某种变换,使得原来彼此独立,互不相干的信息码元列产生某种规律性,从而在接收端有可能根据这种规律性来检验,发现或纠正传输信号序列中的差错。

变换的方法不同就构成了不同的差错编码,在系统中使用不同的差错编码方法就产生了不同的差错控制方法。

我们以重复编码来简单地阐述差错编码在相同的信噪比情况下为什么会获得更好的系统性能。

假设我们发送的信息0、1(等概率出现),现假设 Pe=10(即平均接收1000个中错一个)。

如果我们将信息0编码成00,信息1编码成11,仍然采用上述系统,则在接收端可以作以下判断:如果发送的是00,而收到的是01或10,此时我们知道发生了差错,要求发送端重新传输,直到传送正确为止,只有当收到11时,我们才错误地认为当前发送的是1。

因此在这种情况下发生译码错误的概率是0.5pe2;同理,如果发送的是11,只有收到00时才可能发生错误译码,因此在这种情况下发生译码错误的概率也是0.5pe2。

所以采用00、11编码的系统比特误码率为,即10-6。

系统的性能将明显提高。

在上例中,将0、1采用00000、11111编码,在接收端我们用如下的译码方法,每收到5个比特译码一次,采用大数判决,即5个比特中0的个数大于1的个数则译码成0,反之译码成1;不采用ARQ方式。

那么,我们看到这种编码方式就变成了纠错编码。

由于传输错误当接收端收到11000,10100,10010,10001,01100,01010,01001,00110,00101,00011中的任何一种时,都可以自动纠正成00000。

如上所述,将信息码分组,并为每个组附加若干监督的编码,称为“分组码”。

在分组码中,监督码元仅监督本码组中的信息码元。

分组码一般用符号(n),(k)表示,其中k是每组码二进制信息码元的数目,n是码组的总数目,又称码组的长度。

r=n-k为每个码组中的监督码元的数目,按此规定的分组码的结构形式如图1-2所示。

码长n=k+r图1-2 分组码结构1.7 差错控制编码的方式在差错控制系统中,差错控制的方式主要有三种:1.7.1 前向纠错控制(FEC)方式FEC方式发送端首先根据需要先进行编码,然后由发送端发送这种能纠错的码在接收端解码器根据码的冗余进行译码,并自动纠正的传输差错。

系统框图如图1-3所示。

图1-3前向纠措方式1.7.2 自动请求重发(ARQ)方式发送端首先对发送序列进行差错编码,生成一个可以检测出错误的校验序列,然后连同数据一起发送出去。

接收端根据校验序列的编码规则判断是否传错,并把判决结果通过反馈通道传回发送端。

若无错,接收端确认接受,同时发送端缓冲器清除该序列。

当出现差错时,接收端通过回送确认信号自动控制发送端原先帧的重发,直到接收端接受正确为止。

系统框图如图1-4所示。

图1-4 自动请求重发(ARQ)方式1.7.3 混合纠错(HEC)方式HEC方式是FEC和ARQ方式的结合,发送端发送的码不仅能检测错误,而其能在一定程度上纠正错误,接收端译码器收到码组后,首先检查传输差错的情况,如果差错在码的纠错能力以内,则自动进行纠错,若错误超出纠错能力,但能检测出来,则通过反馈信道给发送端发送一个反馈信息,请求重发出错的信息。

其系统框图如图1-5所示。

信源信宿图1-5混合纠错方式1.8 差错编码的特性和能力1.8.1 海明距离就是从一个顶点移动到另一个顶点所经历立方体的最少边数。

1.8.2 最小距离所谓最小距离就是立方体中从一个顶点移到另一个顶点所经历的最少边数。

1.8.3最小距离与抗干扰能力之间的关系定理1若一种码的最小距离为d0,则它能检查传输错误个数(检错能力)e >=e+1应满足:d定理2若一种码的最小距离为d0,则它能纠正传输错误个数(纠错能力)t >=2t+1应满足:d定理3若一种码的最小距离为d0,则它的检错能力和纠错能力应满足:>=e+t+1 (e>=t)d1.9 循环冗余校验码(CRC)原理在计算机通信中用的最广泛检错码是一种漏检错率低得多也便于实现的循环冗余校验码,又称多项式码。

相关文档
最新文档