(15,7)循环码的编译方法
- 格式:doc
- 大小:465.96 KB
- 文档页数:26
2、循环码2.1循环码的基本原理 1.定义循环码是满足循环特性的线性分组码,是线性分组码的子类,之所以这样说是因为线性分组码要求所选择的码是线性的,循环码则是在线性分组码的基础之上进一步要求所选择的码具有循环性。
假设C 是一个(n,k)线性码,如果C 中任意一个码字经任意循环移位之后仍然是C 中的码字,那么此码是一个循环码。
循环码具有规则的代数结构,且是自封闭的,因此用多项式来描述更方便。
长度为n 的循环码可用一个n-1次多项式来描述,此多项式称为码多项式,表示如下:(1)左移i 位后的码多项式为(2)码多项式与循环移位后的多项式之间的关系为)1()(c xC(x)1)1(021121-n -+=++⋅⋅⋅++=---nn n n n x c x C x c x c x c x (3)也即是)1m od()()()1(-≡n x x xC x C (4)以此类推,可以得到)1m od()()()(-≡n i i x x C x x C (5)2.循环码的性质(1)GF(q)上的(n,k)循环码中,存在唯一的一个n-k 次首一多项式0111)(g x g x g x x g k n k n k n ++⋅⋅⋅++=-----,每一个码多项式)(x C 都是)(x g 的倍式,即循环码的码多项式)(x C 中次数最低且其常数项为1的码多项式有且仅有一个,为码的生成多项式,记做)(x g 。
循环码C 中的每个码多项式)(x C 都可唯一表示成)()()(x g x m x C =。
(2))(,),(),(),(12x g x x g x x xg x g k -⋅⋅⋅都是生成多项式,他们的线性组合也是生成多项式。
(3)GF(q)上(n,k)循环码的生成多项式)(x g 一定是)1(-nx 的因子。
(4)循环码的生成矩阵H 和校验矩阵H 的正交性可以用多项式表示为1)()(-=n x x h x g 。
2、循环码2.1循环码的基本原理 1.定义循环码是满足循环特性的线性分组码,是线性分组码的子类,之所以这样说是因为线性分组码要求所选择的码是线性的,循环码则是在线性分组码的基础之上进一步要求所选择的码具有循环性。
假设C 是一个(n,k)线性码,如果C 中任意一个码字经任意循环移位之后仍然是C 中的码字,那么此码是一个循环码。
循环码具有规则的代数结构,且是自封闭的,因此用多项式来描述更方便。
长度为n 的循环码可用一个n-1次多项式来描述,此多项式称为码多项式,表示如下:(1)左移i 位后的码多项式为(2)码多项式与循环移位后的多项式之间的关系为)1()(c xC(x)1)1(021121-n -+=++⋅⋅⋅++=---nn n n n x c x C x c x c x c x (3)也即是)1m od()()()1(-≡n x x xC x C (4)以此类推,可以得到)1m od()()()(-≡n i i x x C x x C (5)2.循环码的性质(1)GF(q)上的(n,k)循环码中,存在唯一的一个n-k 次首一多项式0111)(g x g x g x x g k n k n k n ++⋅⋅⋅++=-----,每一个码多项式)(x C 都是)(x g 的倍式,即循环码的码多项式)(x C 中次数最低且其常数项为1的码多项式有且仅有一个,为码的生成多项式,记做)(x g 。
循环码C 中的每个码多项式)(x C 都可唯一表示成)()()(x g x m x C =。
(2))(,),(),(),(12x g x x g x x xg x g k -⋅⋅⋅都是生成多项式,他们的线性组合也是生成多项式。
(3)GF(q)上(n,k)循环码的生成多项式)(x g 一定是)1(-nx 的因子。
(4)循环码的生成矩阵H 和校验矩阵H 的正交性可以用多项式表示为1)()(-=n x x h x g 。
2013年秋季学期《计算机通信》课程设计题目:(15,7)循环码的编译码方法专业班级:姓名:学号:指导教师:成绩:摘要本课程设计主要是通过分析查阅(n,k)循环码的编码方法,在MATLAB环境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7)循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信道,再对译码后的序列进行误码分析,加深对循环码的了解。
关键词:QAM调制;瑞利衰落;matlab目录摘要 (2)目录 (3)前言 (1)一、循环码编码 (2)1.1信道编码理论 (2)1.1.1信道编码的目的 (2)1.1.2信道编码的实质 (2)1.1.3 信道编码公式 (2)1.1.4线性分组码的编译码原理 (3)1.2循环码介绍 (4)1.2.1循环码定义 (4)1.2.2循环码的特点 (5)1.2.3 (n.k)循环码的码多项式表示 (5)1.2.4 (n,k)循环码的生成多项式与生成矩阵 (6)1.2.5 (n,k)循环码的校验多项式与一致校验矩阵 (7)1.3 循环码编码原理 (9)1.4循环码的最小码距 (9)1.5循环码的纠检错能力 (9)1.6 循环码的纠错译码原理 (10)二、(15,7)循环码程序设计 (13)2.1(15,7)循环码仿真模块 (13)2.2(15,7)循环码译码仿真模块 (14)2.3(15,7)循环码在高斯信道下的误码性能仿真模块 (15)三、设计与仿真 (16)3.1仿真设备 (16)3.2 (15,7)循环码的编码 (16)3.3 (15,7)循环码的译码 (16)3.4 (15,7)循环码在高斯信道下的误码性能 (18)总结 (19)参考文献 (20)附录 (21)致谢 (27)前言随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作软件的要求也越来越高。
循环码的编译码方法..***************** 实践教学****************** 兰州理工大学计算机与通信学院2013年秋季学期《计算机通信》课程设计题目:(15,7)循环码的编译码方法专业班级:通信工程一班姓名:学号:指导教师:成绩:摘要本次课程设计研究的是循环码的编译码方法,在设计过程中,首先要介绍了线性分组码的编码和译码原理,并介绍了循环码的定义及其相关内容;其次给定的生成多项式g?x?求解出了生成矩阵和监督矩阵,并且利用MATLAB编写循环码的编码器和译码器代,实现编码及译码功能;求出该码的最小码距,并分析讨论该码的纠错能力以及在高斯信道下的误码性能。
关键词: 循环码;编码;译码;MATLAB 目录一前言............................................................... ..................................................................... .................................. 1 二循环码编译码的基本原理............................................................... ...................................................................2 循环码的简介............................................................... ..................................................................... ......... 2 循环码的定义............................................................... ....................................................................2 线性分组码与循环码的区别............................................................... ............................................3 循环码的最小码距............................................................... ............................................................ 3 循环码的检纠错能力...............................................................环码编译码原理及过程............................................................... (4)循环码的编译码原理............................................................... ........................................................ 4 循环码编译码的............................................................... (5)三系统分析............................................................... ..................................................................... .......................... 7 循环码编译码方法的实现框图............................................................... ................................................. 7 循环码编译码实现过程............................................................... . (8)四系统设计....................................................................................... 10 生成矩阵和监督矩阵............................................................... . (10)循环码的编码............................................................... ..................................................................... ....... 10 循环码的的译码............................................................... ..................................................................... ... 11 循环码在高斯信道下的误码性能............................................................... ............................................ 13 总结............................................................... ..................................................................... .. (14)线性分组码与循环码的区别线性分组码是同时具有分组特性和线性特性的纠错码。
*******************实践教学*******************兰州理工大学计算机与通信学院2013年秋季学期《计算机通信》课程设计题目:(15,7)循环码的编译码方法专业班级:姓名:学号:指导教师:成绩:摘要提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。
此次课程设计题目是(15,7)循环码的编译码方法,首先介绍了线性分组码的编译码原理;其次在matlab平台下,完成了任意码的编码和译码,并求出该码的最小码距以及其纠错能力;最后分析了该码在高斯信道下的误码性能。
关键词:循环码;编码;译码目录摘要 (1)前言 (1)一基本原理 (2)1.1循环码的定义 (2)1.1.1循环码的多项式表示 (2)1.1.2(n,k)循环码的生成多项式 (3)1.1.3循环码的生成矩阵和一致校验矩阵 (4)1.2循环码编码原理 (5)1.3循环码的纠错原理 (6)二系统分析 (9)3.1循环码的编码流程 (9)3.2循环码的译码流程 (9)三系统设计及调试 (11)3.1循环码的编码 (11)3.2(15,7)循环码的译码 (11)3.3(15,7)循环码的纠检错 (12)3.4(15,7)循环码在高斯信道下的误码性能 (13)总结 (14)参考文献 (15)附录 (16)致谢 (21)前言随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作软件的要求也越来越高。
在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。
它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。
它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。
循环码编译码工作过程可以概括为以下几个步骤:一、循环码编码过程1. 生成多项式选择:循环码的编码过程中,需要选择合适的生成多项式,以便将输入的数据符号转换成循环码序列。
常见的生成多项式有GF(2^m)中的最小多项式、标准多项式等。
2. 输入数据符号的编码:将输入的数据符号转换成二进制码字,可以采用简单的模2加法或利用编码算法进行转换。
3. 生成多项式扩展:将二进制码字通过生成多项式进行扩展,得到循环码的码字。
由于循环码是循环移位对称的,因此可以通过将码字循环移位得到不同的码字。
4. 校验位添加:根据循环码的校验规则,添加校验位,以确保编码后的码字是正确的循环码序列。
二、循环码解码过程1. 循环移位:将接收到的码字进行循环移位,使其与发送的码字匹配。
2. 校验位检查:根据循环码的校验规则,检查接收到的码字中的校验位是否正确。
3. 错误检测与纠正:如果校验位不正确,需要根据错误的位置和大小进行错误检测和纠正。
如果错误数量较少且位置相对固定,可以采用简单的错误纠正算法;如果错误数量较多或位置不固定,则需要利用更复杂的算法进行错误检测和纠正。
4. 数据恢复:根据解码过程中得到的正确的二进制码字,恢复原始数据符号。
需要注意的是,循环码的编码和解码过程都涉及到多项式的运算,因此需要选择合适的算法和工具进行实现。
同时,为了保证编码和解码的正确性和效率,还需要对传输过程中的干扰和噪声等因素进行考虑和处理。
在实现循环码的过程中,可以采用硬件或软件的方式。
对于硬件实现,可以利用数字电路和微处理器等技术进行设计;对于软件实现,可以利用编程语言和算法库等进行编写。
在实际应用中,需要根据具体的需求和环境选择合适的方式。
总之,循环码是一种重要的编码技术,具有较高的可靠性和效率。
了解循环码的编译码工作过程,对于在实际应用中实现循环码、优化编码和解码性能、提高通信系统的性能具有重要意义。
学生实验报告系别电子工程系课程名称通信原理实验班级实验名称循环码编译码实验姓名实验时间2010年12月14 日学号指导教师报告内容一、实验目的了解生成多项式g(x)与编、译码器之间的关系,码距与纠、检错能力之间的关系。
二、实验内容1.根据编码规则验证循环码的生成多项式。
2.通过实验了解循环码的工作原理。
(1)了解生成多项式g(x)与编码及译码的关系。
(2)了解生成多项式g(x)与码距d的关系。
(3)了解码距d与纠、检错能力之间的关系。
(4)观察该码能纠几个错误码元。
(5)观察循环码的循环性以及封闭性。
3.通过实验了解编、译码器的组成方框图及其主要波形图。
4.了解信道中的噪声对该系统的影响。
三、实验原理总原理方框图如图6.1所示。
图6.1循环码的编、译码系统由下列五部分组成:定时单元、信码发生器及显示部分、编码器、模拟信道部分(虚线部分,包括错码发生器及其显示)和译码器。
(1)定时单元本单元提供编码器及译码器所需的时序信号。
其时钟重复频率(CP)为2MHZ。
(2)信码发生器本单元给编码器提供一个信号源,手控开关(板上CDIN)置于+5V时,发光二极管亮,代表输出“1”码元。
若开关置于“0”,代表输出“0”码元。
(3)循环码编码器编码器是本实验的主要部分。
根据生成多项式,采用5个异或门和D触发器组成编码器。
在K1信号的控制下,输入6位信息码元CDIN,一方面串行输入信道,另一方面通过与门送入除法电路进行计算。
第6位输入码元结束时,K1信号也为零,在CP脉冲作用下,移位寄存器将计算的结果(CDOUT)送往信道,即在6位信息码元后附加了9位监督码,使码长(n=K+r)为15(64个编码输出信号见附表1)。
(4)模拟信道传输错误部分严格说编码输出的基带信号发往信道,若信道为有线的,需加均衡设备;若为无线信号,需加调制设备。
本实验的目的是观察编码输出波形及该波形经过信道后纠错能力,尽量省去附加设备。
本实验设计了一个15位错码发生器(板上ECD框内)可在不同位置使用开关任加“1”码,并使相应的发光二极管发光,显示错码产生的位置(如图6.2所示)。
第11章 差错控制编码一、填空题1.码长为31的汉明码,其监督位r 应为 ;编码效率为 。
【答案】r =5;26/31【解析】由汉明码的定义可知21r n =-,所以可得其监督位r =5。
其编码效率为315263131k n r n n --===2.汉明码是一种能纠 位错码、最小码距为 的线性分组码。
【答案】1;d 0=3【解析】汉明码能够纠正一个错误或检测两个错码,最小码距为3。
3.已知信道中传输1100000、0011100、0000011三个码组,则其可检测 位错码,可纠正 位错码。
【答案】3;1【解析】在一个分组码中,若检测e 位错码,则要求01d e ≥+;若纠正t 位错码,则要求021d t ≥+。
由题可知,码组间的最小码距为04d =,所以可以检测3位错码,可以纠正1位错码。
4.在分组码中,若要在码组内检测2位错码同时纠正1位错码的最小码距为【答案】4【解析】在一个分组码中,若检测e位错码,同时纠正t位错码,则要求01d t e≥++,且e t>。
故检测2位错码同时纠正1位错码的最小码距为04d=。
5.奇偶监督码有位监督码,能发现个错码,不能检出个错码。
【答案】1;奇数;偶数【解析】奇偶监督码分为奇数监督码和偶数监督码,两者原理相同,有1位监督码。
在接收端按“模2和”运算,故能发现奇数个错码,不能检测出偶数个错码。
6.线性分组码的最小码距为4,若用于纠正错误,能纠正位错误;若用于检测错误,能检测位错误。
【答案】1;3【解析】在一个分组码中,若检测e位错码,要求01d e≥+;若纠正t位错码,要求021d t≥+。
最小码距为04d=,所以可以检测3位错码,可以纠正1位错码。
7.某循环码的生成多项式为g(x)=x4+x2+x+1,该循环码可纠正位错码,可检出位错码。
【答案】1;3【解析】循环码的生成多项式的项数即为循环码的最小码距。
由题可知该循环码的最小码距为d0=4,又要求01d e≥+,021d t≥+,所以该循环码可纠正1位错码,可检测3位错码。
******************实践教学******************兰州理工大学计算机与通信学院2013年秋季学期《计算机通信》课程设计题目:(15,7)循环码的编译码方法专业班级:通信工程(1)班姓名:学号:指导教师:成绩:摘要本课程设计主要是通过分析查阅(n,k)循环码的编码方法,在MATLAB环境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7)循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信道,再对译码后的序列进行误码分析,加深对循环码的了解。
关键词:(15,7)循环码;高斯噪声;matlab目录前言 (1)一、循环码编码 (2)1.1信道编码理论 (2)1.1.1信道编码的目的 (2)1.1.2信道编码的实质 (2)1.1.3 信道编码公式 (2)1.1.4线性分组码的编译码原理 (3)1.2 循环码介绍 (4)1.2.1 循环码定义 (4)1.2.2 循环码的特点 (4)1.2.3 (n.k)循环码的码多项式表示 (5)1.2.4 (n,k)循环码的生成多项式与生成矩阵 (5)1.2.5 (n,k)循环码的校验多项式与一致校验矩阵 (7)1.3 循环码编码原理 (9)1.4 循环码的最小码距 (9)1.5 循环码的纠检错能力 (10)1.6 循环码的纠错译码原理 (11)二、(15,7)循环码程序设计 (13)2.1(15,7)循环码仿真模块 (13)2.2(15,7)循环码译码仿真模块 (14)2.3(15,7)循环码在高斯信道下的误码性能仿真模块 (14)三、设计与仿真 (15)3.1仿真设备 (15)3.2 (15,7)循环码的编码 (15)3.3 (15,7)循环码的译码 (15)3.4 (15,7)循环码在高斯信道下的误码性能 (17)总结 (18)参考文献 (19)附录 (20)致谢 (26)前言随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
基于VHDL的循环码编译码器的设计摘要在本次设计中,使用Quartus II 7.0为系统开发平台,硬件描述语言VHDL为主要设计手段,以可编程逻辑器件为实现载体,设计方案中,从循环码编译码的原理出发,论证了BCH码编译码系统的设计方案,并利用VHDL语言加以实现。
所设计的系统可以完成BCH码编码以及两位错码的纠错译码。
依据设计方案和设计平台完成了程序编写和程序调试,通过运行程序及时序波形的仿真有效验证了设计的正确性,初步实现了设计目标。
关键词 VHDL BCH码编码器译码器AbstractThis design takes the Quartus II 7.0 as the system development platform, and takes hardware description language VHDL as the main design means. It also uses programmable logic devices for the realization of the carrier。
In the design, it starts from the principle of cyclic code encoding and decoding, demonstrated the design of BCH codes encoding and decoding system, and then achieves with the VHDL language. The system designed can completed BCH codes encoding and of which the error correction decoding even with two errors. Programming and debugging is completed in accordance with the design and design platform in this design. Besides, it validates the correctness of the design effectively through running the program and the timing waveform simulation, and achieve the design goals preliminarily.Key words VHDL BCH code encoder decoder目录摘要 (I)第1章绪论 (1)1.1 设计目的和要求 (1)1.2 背景及国内外研究概况 (1)1.3 本次设计完成的主要工作 (2)第2章 EDA技术 (3)2.1 EDA概述 (3)2.2 VHDL语言介绍 (3)2.3 VHDL语言的特点 (4)2.4 可编程逻辑器件 (5)2.5 Q UARTUS II概述 (6)2.6 Q UARTUS II数字系统开发流程 (7)2.7 小结 (8)第3章常用循环码简介 (9)3.1 循环码 (9)3.2 R-S码 (10)3.3 非本原BCH码 (10)3.4 小结 (11)第4章基于BCH码设计原理 (12)4.1 编码器设计原理 (12)4.2 译码器设计原理 (13)4.2.1 由接收多项式r(x)求伴随式s (13)4.2.2 由伴随式求出错误位置 (15)4.2.3 搜索法译码原理 (17)4.3 主模块电路设计方框图 (18)4.3.1 编码器电路 (18)4.3.2 综合计算电路 (18)4.3.3 迭代译码算法电路 (19)4.3.4 钱氏搜索译码电路 (19)4.3.5 差错定位电路 (20)4.3.6 译码器电路(双纠错码) (20)4.4 小结 (21)第5章程序设计实现 (22)5.1 程序设计总流程图 (22)5.2 编码器顶层文件主程序 (23)5.3 译码器顶层文件主程序 (24)5.4 编码器顶层文件生成模块 (27)5.5 译码器顶层文件生成模块 (28)5.6 编码器仿真图 (28)5.7 译码器仿真图 (29)5.8 小结 (30)第6章结论 (31)致谢 (32)参考文献 (33)附录 (34)附录1 (34)附录2 (43)基于VHDL的循环码编译码器的设计第1章绪论1.1设计目的和要求BCH码是一种重要而有效的纠正多个随机错误的循环码。
循环码的编码原理-回复什么是循环码?循环码是一类错误检测和纠正编码,它通过向消息数据添加冗余位来实现。
通过在发送数据时添加冗余校验位,接收方可以通过检查接收到的数据是否与其校验位一致来检测和纠正错误。
循环码在通信领域和数据存储中广泛应用,例如在无线通信、计算机网络和磁盘驱动器等设备中。
循环码的编码原理是什么呢?下面将通过一步一步的演示来解释。
步骤一:选择生成多项式循环码编码的第一步是选择一个生成多项式。
生成多项式是一个二进制多项式,其阶数为m 位,在实际应用中通常称为m-bit CRC (循环冗余检验码)。
通过选择不同的生成多项式,可以获得不同的循环码。
步骤二:编码器初始化编码器初始化需要设置一个初始的寄存器值,通常为全0或全1。
这个初始值决定了循环码的编码方式。
步骤三:消息数据添加冗余位在循环码编码过程中,根据生成多项式和初始寄存器值,将消息数据添加冗余位。
中国剧院多项式被用来执行在每个位上的除法操作。
具体来说,发送方将原始消息数据左移m 位,并通过除法运算得到余数,这个余数就是添加的冗余位。
步骤四:生成的循环码生成的循环码是由原始消息数据和添加的冗余位组成的。
循环码是通过生成多项式除法运算得到的,它是原始消息数据添加冗余位的结果。
步骤五:发送循环码发送方将生成的循环码传递给接收方。
循环码包含了原始消息数据和冗余校验位,接收方可以通过检查接收到的循环码是否与生成的校验位一致来判断是否出错。
步骤六:错误检测和纠正接收方接收到循环码后,需要进行错误检测和纠正。
接收方使用与发送方相同的生成多项式和初始寄存器值来重新计算接收到的循环码的校验位。
如果接收到的循环码的校验位和重新计算得到的校验位一致,那么可以确定数据没有错误。
如果不一致,那么接收方可以根据计算得到的校验位来纠正错误。
通过以上步骤,循环码的编码原理就完成了。
它可以提供高效可靠的错误检测和纠正能力,广泛应用于各种通信和存储系统中。
在循环码中,生成多项式的选择对编码的效果有很大影响,研究人员可以通过优化生成多项式来提高循环码的性能。
2、循环码2.1循环码的基本原理 1.定义循环码是满足循环特性的线性分组码,是线性分组码的子类,之所以这样说是因为线性分组码要求所选择的码是线性的,循环码则是在线性分组码的基础之上进一步要求所选择的码具有循环性。
假设C 是一个(n,k)线性码,如果C 中任意一个码字经任意循环移位之后仍然是C 中的码字,那么此码是一个循环码。
循环码具有规则的代数结构,且是自封闭的,因此用多项式来描述更方便。
长度为n 的循环码可用一个n-1次多项式来描述,此多项式称为码多项式,表示如下:(1)左移i 位后的码多项式为(2)码多项式与循环移位后的多项式之间的关系为)1()(c xC(x)1)1(021121-n -+=++⋅⋅⋅++=---nn n n n x c x C x c x c x c x (3)也即是)1m od()()()1(-≡n x x xC x C (4)以此类推,可以得到)1m od()()()(-≡n i i x x C x x C (5)2.循环码的性质(1)GF(q)上的(n,k)循环码中,存在唯一的一个n-k 次首一多项式0111)(g x g x g x x g k n k n k n ++⋅⋅⋅++=-----,每一个码多项式)(x C 都是)(x g 的倍式,即循环码的码多项式)(x C 中次数最低且其常数项为1的码多项式有且仅有一个,为码的生成多项式,记做)(x g 。
循环码C 中的每个码多项式)(x C 都可唯一表示成)()()(x g x m x C =。
(2))(,),(),(),(12x g x x g x x xg x g k -⋅⋅⋅都是生成多项式,他们的线性组合也是生成多项式。
(3)GF(q)上(n,k)循环码的生成多项式)(x g 一定是)1(-nx 的因子。
(4)循环码的生成矩阵H 和校验矩阵H 的正交性可以用多项式表示为1)()(-=n x x h x g 。
*****************实践教学*****************兰州理工大学计算机与通信学院2013年秋季学期《计算机通信》课程设计题目:(15,7)循环码的编译码方法专业班级:通信工程(1)班姓名:赵晓瑾学号:10250131指导教师:王惠琴成绩:摘要本次课程设计首先介绍了线性分组码的编译码原理,循环码的编译码方法、步骤、流程。
其次在仿真部分利用MATLAB软件完成任意(15,7)循环码的编码和译码的实现,它可以对输入的七位的信息码进行循环码编码,经过高斯信道的传输后,对于接收到的15位码字可以译出七位信息码,最后,求出了该码的最小码距以及其纠错能力并且分析该码在高斯信道下的误码性能。
关键词:循环码;编码;译码;纠错目录一、前言 (1)二、基本原理 (3)2.1 线性分组码的编译码原理 (3)2.1.1 生成矩阵 (3)2.2 伴随式与译码 (4)2.2.1 码的距离及纠检错能力 (4)2.2.2 伴随式与译码 (5)2.3 循环码的编译码原理 (5)2.3.1 编码原理 (6)三、系统分析 (11)四、系统设计及调试 (12)4.1高斯信道下的(15,7)循环码编译码系统设计 (12)4.2 循环码编码过程 (12)4.3 循环码译码过程 (13)4.4 高斯信道下循环码误码率分析 (14)参考文献 (17)附录 (18)致谢 (23)一、前言随着计算机、卫星通信及高速数据网的飞速发展,数据的交换、处理和存储技术得到了广泛的应用,人们对数据传输和存储系统的可靠性提出了越来越高的要求,因此,如何控制差错、提高数据传输和存储的可靠性,成为现代数字通信系统设计的重要课题。
在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。
它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。
它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。
循环码作为线性分组码的一种,它具有线性分组码的一般特性,此外还具有循环性。
循环码的编码和解码设备都不太复杂,且检(纠)错能力强。
它不但可以检测随机的错误,还可以检错突发的错误。
)(k,n循环码可以检测长为kn 或更短的任何突发错误,包括首尾相接突发错误。
循环码是一种无权码,其编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。
符合这个特点的有多种方案,但循环码只能是表中的那种。
循环码的优点是没有瞬时错误。
因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。
这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。
循环码就是这样一种编码,它可以在卡诺图中依次循环得到。
循环码又称格雷码(Gray Code)。
纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。
仅用来发现错误的码一般常称为检错码。
为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。
关系的建立称为编码。
码字到达收端后,可以根据编码规则是否满足以判定有无错误。
当不能满足时,按一定规则确定错误所在位置并予以纠正。
纠错并恢复原码字的过程称为译码。
检错码与其他手段结合使用,可以纠错。
纠错编码又称信道编码,它与信源编码是信息传输的两个方面。
它们之间存在对偶的关系。
应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。
为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。
准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。
关系的建立称为编码。
码字到达收端后,用编码时所用的规则去检验。
如果没有错误,则原规则一定满足,否则就不满足。
由此可以根据编码规则是否满足以判定有无错误。
当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。
纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。
检错码与其他手段结合使用,可以纠错。
检错反馈重发系统(ARQ系统)就是一例。
二、基本原理2.1 线性分组码的编码原理2.1.1 生成矩阵线性分组码(n ,k )中许用码字(组)为2k个。
定义线性分组码的加法为模二加法,乘法为二进制乘法。
即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=0、0×0=0、0×1=0。
且码字与码字的运算在各个相应比特位上符合上述二进制加法运算规则。
线性分组码具有如下性质(n ,k )的性质:(1).封闭性,任意两个码组的和还是许用的码组;(2).码的最小距离等于非零码的最小码重;对于码组长度为n 、信息码元为k 位、监督码元为r =n -k 位的分组码,常记作(n ,k )码,如果满足2r -1≥n,则有可能构造出纠正一位或一位以上错误的线性码。
(15,7)线性分组码有7152-个许用码字或合法码字,另有71522-个禁用码字。
发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。
为了深化对线性分组码的理论分析,可将其与线性空间联系起来。
由于每个码字都是一个二进制的n 重,及二进制n 维线性空间Vn 中的一个矢量,因此码字又称为码矢。
线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r 越大,说明信息位所占比重越大,码的传输信息的有效性越高。
由于(n,k)线性分组,线性分组码的2k 个码字组成了n 维线性空间Vn的一个K 维子空间。
因此这2k 个码字完全可由k 个线性无关的矢量所组成。
一个系统码的生成矩阵G ,其左边k 行k 列应是一个k 阶单位方阵I k ,因此生成矩阵G 表示为[]P I G K = (2-1)式中,P 是一个k ×(n-k)阶矩阵.2.1.2 校验矩阵生成矩阵的性质:具有[]Q I K 形式的生成矩阵称为典型生成矩阵。
由典型生成矩阵得出的码组A 中,信息位的位置不变,监督位附加于其后。
这种形式的码组称为系统码。
矩阵G 的各行也必须是线性无关的。
如果已有k 个线性无关的码组,则可以将其用来作为生成矩阵G ,并由它生成其余码组。
监督矩阵: (2-2)监督矩阵可用来校验和纠错。
由H 矩阵得到(n,k)线性分组码的每一码字c i,(i=1,2,…,2k ),都必须满足由H 矩阵各行所确定的线性方程组,即 c i ·H T =0.(7,3)码的生成矩阵G 中每一行及其线性组合都是(n,k )码的码字,所以有G ·H T =0。
由G 和H 构成的行生成的空间互为零空间,即G 和H 彼此正交。
H=[P T I r ]其右边r 行r 列组成一个单位方阵。
2.2 线性分组码的译码原理2.2.1 码的距离及纠检错能力1.码的距离两个码字之间,对应位取之不同的个数,称为汉明距离,用d 表示。
一个吗的最小距离min d 定义为{})k ,n (c ,c ,j i ),c ,c (d min d j i j i min ∈≠=,两个码字之间的距离表示了它们之间差别的大小。
距离越大,两个码字的差别越大,则传送时从一个码字错成另一码字的可能性越小。
码的最小距离愈大,其抗干扰能力愈强。
2. 线性码的纠检错能力(1)对于任一个)(k ,n 线性分组码,若要在码字内检测出e 个错误,则要求码的最小距离1e d +≥;(2)纠正t 个错误,则要求码的最小距离1t 2d +≥;(3)纠正t 个错误同时检测e(≥t)个错误,则要求1e t d ++≥;[]r PI H =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=001101101011011001110M M M2.2.2 伴随式与译码假设接收端收到的码字为B,那么它和原来发送端发送的码字A之间就有可能存在着误差。
即在码组A={a6 a5 a4 a3 a2 a1 a0 }中的任意一位就有可能出错。
这样我们在接收端接收到一个码组是就有可能判断错发送端原来应该要表达的意思。
为了描述数据在传输信道中出现错误的情况,引入了错误图样E,在错误图样中,0代表对应位没有传错,1代表传输错误。
实际上错误图样E就是收序列与发送序列的差。
所以在译码中用接收到的码字B模尔加错误图样E就可以得到发送端的正确码字A。
因此译码的过程就是要找到错误图样E。
定义:校正子ST HT+=S*= (2-3)*AB)E(HT HT*=+EA*HT=E*H因为A是编得的正确码字。
根据前面所叙述,它和监督矩阵的转置相乘为0。
显然,S仅与错误图样有关,它们之间是一一对应的关系。
找到了校正子S,也就可以找到E。
而与发送的码字无关。
若E=0,则S=0;因此根据S是否为0可进行码字的检错。
如果接收码字B中只有一位码元发生错误,又设错误在第i位。
即E i-1=1,其他的E i均为0。
在后面的译码程序中,建立了一个校正子S与错误图样E对应的表。
也就是收到一个B序列,就可以通过计算得到一个校正子,而每一个校正子都对应着一个错误图样E,再通过B模尔加上E,就可以得到正确的码字A。
因为在不同的错误序列B中,同一位码元错误时对应的E是一样的,所以可以利用0000000这个正确的码字让它每位依次错误,来求得它的八个校正子。
而这时的矩阵B就是错误图样E。
这样就算得了8个校正子S。
而这时的错误序列B,就是错误图样E,所以有: E与S都已经得到,这时就可以建立一个表来将它们一一对应起来,以便在编程过程中用SWITCH语句。
2.3 循环码的编译码原理2.3.1 编码原理根据给定的(n ,k )值,再根据循环码生成定理对所给定信息位k ,选定生成多项式g(x),所有码多项式c(x)都能被g(x)整除,且次数小于n- k 。
若已知()011k n 1k n k n k n g x g x g x g x g ++++=------Λ (2-4) 并设信息元多项式012211)(m x m x m x m x m k k k k ++++=----Λ (2-5)要编码成系统循环码形式,即码字的最左边k 位是信息元,其余n- k 位是校验元,则要用k n x -乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式011102211)()()(r x r x r x m x m x m x r x m x x c k n k n k n n k n k k n +++++++=+=----------ΛΛ (2-6) 式(2-6)中0111)(r x r x r x r k n k n +++=----Λ。