当前位置:文档之家› (15,7)循环码的编译方法

(15,7)循环码的编译方法

*****************实践教学*****************兰州理工大学计算机与通信学院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 +++=----Λ。

相关主题