基于循环码的差错控制编码建模与仿真程序
信息论编码实验六循环码仿真

实验六循环码仿真一、实验目的1、深刻理解循环码的编码方法2、熟练使用Simulink仿真工具进行线性码仿真实现3、培养学生独立思考,发现问题和解决问题的能力二、实验仪器与软件1、PC机1台2、MATLAB R2008环境三、实验原理数字信号在传输过程中,由于信道传输特性的影响,接收端收到的数字信号会发生各种错误。
为了减少比特误码率,可采用各种方法来进行差错控制。
信道编码是通信系统中采用的一种差错控制措施。
在信道编码过程中,发送端将被传输的信息附上一些监督码元,这些监督码元与信息码元之间以某种确定的规则相互关联(约束)。
线性码是一种分组码,在编码的过程中,首先将数据每k个比特分为一组,记作m,称为信息组。
然后将长度为k的信息组进行映射运算(编码),得到一个n比特构成的码字c i。
这样得到的分组码称为(n, k)码,定义k/n=R c为编码效率。
循环码是线性码的一个子集,因此它除了具有线性码的一般特性外,还满足下列循环移位特性:如果c=[c n-1c n-2…c1c0]是某循环码的码字,那么由c的元素循环移位得到的[c n-2…c1c0c n ]也是该循环码的一个码字,也就是说,码字c的所有循环移位都是码集合中的码字。
-1循环码的码字可以表示为如下形式:c(x)=α(x)·g(x)其中g(x)是x n+1的n-k次因子,称为生成多项式。
假设二进制循环编码器的输入信号是一个k 列的行矢量,输出的是n列的行矢量,则它产生的是一个(n, k)的循环码,其中n=2m-1,m≥3。
四、实验内容图1 循环码的仿真框图图1所示是信号源是伯努利随机二进制信号发生器,产生采样时间为1的二进制信号,传输环境是二进制平衡信道。
在发射端和接收端分别设置了循环编码和解码器。
虽然因为信道编码的结果使得传输效率变为4/7。
即发送的7个码元中仅传递了4个码元的有效信息。
但是使得差错率从5%降为2%。
二进制循环码解译码器模块的主要参数如下图所示。
基于循环码的差错控制编码系统建模与仿真

基于循环码的差错控制编码系统建模与仿真一、设计目的及要求设计目标:通过利用MATLAB/simulink系统仿真功能,设计一个基于循环码的差错控制编码系统。
实验知识要求:循环码的编、译码原理,差错控制编码系统的特点。
MATLAB/simulin系统仿真知识。
实验软件平台:MATLAB7.0软件。
二、课程设计的任务2.1循环码及差错控制编码的概念及理论基础在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。
监督位一般是由所发送的信息序列经过恰当的变化而生成的。
若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码。
在线性分组码中有一类重要的码,称为循环码。
这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。
循环码除了具有线性码的一般性质外,还具有循环性,即任一码组循环一位后仍然是该编码中的一个码组。
(n,k)循环码表示其中信息位为k,监督位为n-k。
如果一种码的所有码多项式都是多项式g(x)的倍式,则称g(x)为该码的生成多项式。
在循环码中,次数最低的非0首多项式就是生成多项式g(x),其他码多项式都是其倍数。
(n,k)循环码的生成多项式g(x)一定是n x+1的因式:n x+1=g(x)h(x);反之,若g(x)为n-k次,且能被n x+1整除,则此g(x)一定生成一个(n,k)循环码。
信道编码的目的是提高信号传输的可靠性,信道编码是在经过信源编码的码元序列中增加一些多余的比特,目的在于利用这种特殊的多余信息去发现或纠正传输中发生的错误。
在信道编码只有发现错码能力而无纠正错码能力时,必须结合其他措施来纠正错码,避免删除错码带来的负面影响。
上诉手段称为差错控制。
在对乘性干扰和加性干扰进行处理后仍不能达到误码率要求时,就需要采用差错控制措施。
差错控制技术有以下4种:(1)检错重发:在发送码元中加入差错控制码元,当检测到有错码时,利用反向信道通知发送端重发。
基于CPLD与FPGA的循环码编与译码器的建模与设计

本科毕业设计论文题目基于CPLD/FPGA的循环码编/译码器的建模与设计学生姓名 XXX 学号 XXXXXXXX 所在院(系) 物理与电信工程学院专业班级电子XX班指导教师 XXX基于CPLD/FPGA的循环码编/译码器的建模与设计作者:XXX所在单位:(XXX XXX 电子信息工程 XXX,XXX 723000)指导教师:XXX[摘要]:本文首先分析了循环码在通信中的重要意义,并且叙述了差错控制的基本概念、纠错的基本原理和差错控制编码理论。
(7,4)循环码是一种差错控制码,具有可靠性高的优点,在数字通信、军事领域中的应用非常广泛,通过CPLD/FPGA 来实现该码的编/译码器,既深入探讨了循环码的生成原理以利于数据传输,又是对可编程逻辑器件PLD实现数字系统的进一步运用和熟悉。
,本文利用了Altera公司提供的Quartus II9.0仿真软件对循环码的编、译码器进行了波形仿真及VHDL 模型,完成了本次毕业设计的研究内容。
[关键词]:循环码FPGA目录前言 (1)1循环码编码理论 (2)1.1 循环码的定义及性质 (2)1.1.1、循环码的性质 (2)1.1.2、循环码的定义 (2)1.1.3、循环编码原理 (2)1.1.4、循环码的编码方法 (2)1.1.5、举例:(7,4)循环码 (3)1.2 循环码的编码 (4)1.2.1、循环码的生成矩阵 (4)1.2.2、循环码的生成多项式 (4)1.2.3、生成多项式和码多项式的关系 (4)1.2.4、循环码的监督多项式和监督矩阵 (5)1.3 循环码的译码 (7)1.4 本章小结 (7)2 循环码的编译码器的FPGA实现 (7)2.1 FPGA及其设计原理简介 (8)2.1.1、FPGA介绍 (8)2.1.2、FPGA设计流程 (8)2.2 循环码编码器 (9)2.3 循环码译码器 (12)2.4循环编/译码器的设计 (16)参考文献 (23)附录 (25)1、英文原文: (25)2、英文翻译: (28)附录A系统源程序 (31)附录B:系统框图 (36)前言信息在传递过程中,可能因某种原因使传输的数据发生错误. 为减少和避免这类错误的发生,除提高硬件的可靠性外,在数据的编码上也应提供检错和纠错的支持. 具体做法是:在要传送的数据代码中加入若干个校验位,使之在传送过程中若发生错误则会生成非法代码而被发现,甚至能根据非法代码确定错误的位置而给予纠正,这种具有检错或纠错能力的编码即校验码,其中只能发现错误而不能纠正错误的编码为检错码,既能发现错误又能纠正错误的编码为纠错码.常见的校验码有奇偶校验码、海明校验码和循环冗余校验CRC码,它们都是将被校验的数据代码按k 位一组分组,每组添加r 个校验位,形成n 位一组的代码,故又称为(n,k)分组校验码. 传送时校验位和数据位被一起发出,若传送过程没发生错误,则接收方剔除校验位保留数据位,否则经校验给予纠正(对纠错码)或要求重发(对检错码). 其中CRC 码既可检错又可纠错(与生成多项式的选取有关),是以数据块为对象进行校验的一种高效、可靠的检错和纠错方法,由于它的编解码简单、纠错能力强且误判概率很低, 因而在工业测控及通信系统中得到了广泛的应用。
设计报告--008---差错控制编码的SIMULINK建模与仿真

差错控制编码的SIMULINK建模与仿真一.线性分组码编码系统建模Reed-Solomon码编码系统框图:信源模块的系统框图:信宿模块的系统框图:1.循环冗余码编码系统建模与仿真CRC-16编码系统框图:信源模块的系统框图:信宿模块的系统框图:信号比较模块系统款图:M文件如下:x=[0.00001 0.0001 0.001 0.005 0.01 0.02 0.03 0.04 0.05 0.1 0.2 0.3 0.4 0.5]; y=x;ProtectedData=48;FrameInterval=0.010;BitPeriod=FrameInterval/ProtectedData;ProtectedDataWithCRC=ProtectedData+16;FrameLength=480;SimulationTime=1000;TotalFrameNumber=SimulationTime/FrameInterval;for i=1:length(x)ChannelErrorRate=x(i);sim('project_2');y(i)=MissedFrameNumber(length(MissedFrameNumber))/TotalFrameNumber;endloglog(x,y);仿真结果:没有达到预想的结果,还有待改进。
二.卷积码编码系统建模与仿真:1)卷积码编码系统在二进制对称信道中的性能系统框图:M文件如下:x=[0.01 0.02 0.03 0.04 0.05 0.1 0.15 0.2 0.25 0.3 0.4 0.5];%x表示二进制对称信道的误比特率的各个取值y=x;%y表示卷积编码信号的误码率,它的长度与x的长度相等for i=1:length(x)%对x中的每个元素依次执行仿真BitErrorRate=x(i);%将二进制对称信道的误比特率设置为x的第i个元素的数值sim('project_3');%运行仿真,仿真结果保存在向量DecodedErrorRate中y(i)=mean(DecodedErrorRate);endloglog(x,y);%绘制x和y的对数关系曲线图仿真结果:2)不同译码条件下的性能系统框图:信源模块的系统框图:软判决译码信宿模块的系统框图:软判决模块的系统框图:硬判决译码信宿模块的系统框图:M文件如下:x=-10:5;%x表示信噪比y=x;%y表示信号的误比特率,它的长度与x相同hold off;%准备一个空白图形for index=2:4%重复运行project_juanjima,检验不同条件下软判决译码的性能DecisionBits=index;%软判决的量化电平数for i=1:length(x)%循环执行仿真程序SNR=x(i);%信道的信噪比依次取x中的元素sim('project_juanjima');%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中y(i)=mean(BitErrorRate);%计算BitErrorRate的均值作为本次仿真的误比特率endsemilogy(x,y);%绘制x和y的关系曲线图,纵坐标采用对数坐标hold on;%保持已绘图形endfor i=1:length(x)%重复运行project_juanjimahard,检验不同条件下硬判决译码的性能SNR=x(i);sim('project_juanjimahard');y(i)=mean(BitErrorRate);endsemilogy(x,y);仿真结果不同信噪比条件下误比特率关系图:。
差错控制编码的编译码设计与仿真

*******************实践教学*******************兰州理工大学计算机与通信学院2012年春季学期计算机通信与网络课程设计题目:差错控制编码的编译码设计与仿真专业班级:姓名:学号:指导教师:成绩:__________________摘要此设计是(7,4)线性分组码的编译码实现,它可以对输入的四位的信息码进行Hamming编码,编成七位信息码,其中有三位是校验码。
也可以对接受的七位信息码进行译码,从而译出四位信息位。
当接收到的信息码中有一位错误时,可以纠正这一位错码,进而译出正确的信息码组,整个过程是用Matlab语言实现的。
关键词:编码; 译码; 纠错目录前言 (3)第1章设计目标 (4)第2章MATLAB简介 (5)2.1 基本功能 (5)2.2 应用 (5)2.3 特点 (5)2.4 优势 (6)第3章基本原理 (7)第4章推导过程 (9)4.1 编码过程 (9)4.2 译码过程 (10)第5章仿真程序及结果分析 (12)5.1 程序流程图 (12)5.2 仿真程序 (14)5.3 主引导界面程序运行分析 (16)5.4 信道编码程序运行分析 (17)5.5 信道译码程序运行分析 (18)5.6 纠错程序运行分析 (19)参考文献 (21)课设总结 (22)致谢 (23)前言设计数字通信系统时,应首先合理选择信道编译码码组种类,这样才可以在信号的传输,以及接收环节达到较好的效果,线性分组码具有编译码简单,封闭性好等特点,采用差错控制编码技术是提高数字通信可靠性的有效方法,是目前较为流行的差错控制编码技术。
分组码是一组固定长度的码组,可表示为(n , k),通常它用于前向纠错。
在分组码中,监督位被加到信息位之后,形成新的码。
在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。
对于长度为n的二进制线性分组码,它有种可能的码组,从种码组中,可以选择M=个码组(k<n)组成一种码。
差错控制编码-循环码

根据上述原理可以得到一个较简单的系统循环码编码方法: 根据上述原理可以得到一个较简单的系统循环码编码方法:设 要产生( )循环码, 表示信息多项式, 要产生(n,k)循环码,m(x)表示信息多项式,则其次数必小于 表示信息多项式 k,而 ·m(x)的次数必小于 ,用 的次数必小于n, ·m(x)除以 除以g(x),可 , 的次数必小于 除以 , 得余数r(x),r(x)的次数必小于(n-k),将r(x)加到信息位后作 的次数必小于( ), ),将 得余数 , 的次数必小于 加到信息位后作 监督位,就得到了系统循环码。 监督位,就得到了系统循环码。 (1)用 ) 乘m(x)。这一运算实际上是把信息码后附加上 。 +x。 (n-k)个“0”。例如,信息码为 ) 。例如,信息码为110,它相当于 ,它相当于m(x)= = 。 ·m(x)= x 6 + x 5 ,它相当于 当n-k=7-3=4时, = = 时 ( )= 1100000。而希望的到得系统循环码多项式应当是 。 A(x) = ·m(x) + r(x)。 。
x i A( x ) 在循环码中,若A(x)是一个长为n的许用码组,则
在按模 运算下,亦是一个许用码组,也就是假如: ),可以证明 A l ( x )亦是一个许 A 用码组,并且, l ( x )正是A(x)代表的码组向左循环移位i次的结 果。例如,由式表示的循环码,其码长n=7,现给定i=3,则:
其中: 其中: 因此,一旦生成多项式 确定以后, 因此,一旦生成多项式g(x)确定以后,该循环码的生成矩阵就可 确定以后 以确定,进而该循环码的所有码字就可以确定。 以确定,进而该循环码的所有码字就可以确定。 显然, 形式, 显然, (*式)不符合 式 形式,所以此生成矩阵不是典 型形式,不过,可以通过简单的代数变换将它变成典型矩阵。 型形式,不过,可以通过简单的代数变换将它变成典型矩阵。 现在以( , )循环码为例,来构造它的生成矩阵和生成多项式, 现在以(7,3)循环码为例,来构造它的生成矩阵和生成多项式, 这个循环码主要参数为, = , = , = 。可以看到, 这个循环码主要参数为,n=7,k=3,r=4。可以看到,其生成多 项式可以用第1码字构造 码字构造: 项式可以用第 码字构造:
基于MATLAB的(15,7)循环码的编译仿真

《纠错码与差错控制》课程设计题目:基于MATLAB的(15,7)循环码的编译仿真院(系)信息科学与工程学院专业通信工程专业届别 2011级班级 11通信B学号 **********姓名刘珩指导老师周林摘要随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。
它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递。
它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域被广泛应用。
纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。
仅用来发现错误的码一般常称为检错码。
为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。
关系的建立称为编码。
码字到达收端后,可以根据编码规则是否满足以判定有无错误。
当不能满足时,按一定规则确定错误所在位置并予以纠正。
纠错并恢复原码字的过程称为译码。
检错码与其他手段结合使用,可以纠错。
纠错编码又称信道编码,它与信源编码是信息传输的两个方面。
它们之间存在对偶的关系。
应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。
为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。
准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。
关系的建立称为编码。
码字到达收端后,用编码时所用的规则去检验。
如果没有错误,则原规则一定满足,否则就不满足。
循环码编译码器的仿真与实现

最后 , 用计算所得 的错误 图样 与输入 码组进行 模 2 ,即就是异 加
或 , 可 以得 到 已经 纠 错 了的 码 组 。 则
信息传 送中 , 广泛 采用 循环 冗余校 验码 C C(yla rd n ac R cci l eu dn y c cek , h c )它是线性分组码 的一个重要子集 , 它是为 了保证通信系统 中的 数据传输可靠性而采取的信道编码技术。C C码 除了具有 分组码 的线 R 性外 , 还具有循环性 , 其码字一般用符号 nk 表示 , ,) 其中 , n是该码 组中 的码元数 , 是信息码位数 , n k k r — 是监督码元位数。 = 循环码具有许多特 殊的代数性质 , 这些性质有 助于按 照要求 的纠错 能力 系统构造这类码 , 并能相应 的简化译码算 法。目 前应用的 C C R 编码器和译码器主要由硬 件电路 实现 ,可以保证 编码 和译码 的快速性 和实 时性但缺 点是 系统复 杂, 可维护性差。 1编 码 器 的设 计 思 想 . 本次设计的循环码是 C C73, R (, 若以( 1的某(— ) 因式作为(, ) X+ ) n k次 n k循环码生成多项式 , 可选取的因式次数有 1 ,, 。现在要构成 ) 则 , 46次 3 (,) 7 循环 码 , n k 4的因式 有(+ ) x + ) (+ )x+ + ) 3 即 —= ) 1f 1 ) 1 f x 1两个 , ( x 或 ( 任选其中一个都可以产生一个循环码集 。 在编码中选取 =x+ X I 4x + , 写成 二 进 制 的形 式 为 1 1 1 生 成 多 项 式 在 编 码 过 程 中起 了 重 要 的作 01。
3仿真与实现 . 31编码 器 仿 真 测 试 . 将用 VH DL硬件 描述语言设计好的编码器源程 序输入 MA + L S XPU
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于循环码的差错控制编码系统建模与仿真一、设计目的及要求设计目标:通过利用MATLAB/simulink系统仿真功能,设计一个基于循环码的差错控制编码系统。
实验知识要求:循环码的编、译码原理,差错控制编码系统的特点。
MATLAB/simulin系统仿真知识。
实验软件平台:MATLAB 7.0软件。
二、课程设计的任务2.1循环码及差错控制编码的概念及理论基础2.1.1循环码的概念及生成多项式在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。
监督位一般是由所发送的信息序列经过恰当的变化而生成的。
若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码。
在线性分组码中有一类重要的码,称为循环码。
这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。
循环码除了具有线性码的一般性质外,还具有循环性,即任一码组循环一位后仍然是该编码中的一个码组。
(n,k )循环码表示其中信息位为k,监督位为n-k。
如果一种码的所有码多项式都是多项式g(x)的倍式,则称g(x)为该码的生成多项式。
在循环码中,次数最低的非0首多项式就是生成多项式g(x),其他码多项式都是其倍数。
(n,k)循环码的生成多项式g(x)一定是n x+1的因式:n x+1=g(x)h(x);反之,若g(x)为n-k次,且能被n x+1整除,则此g(x)一定生成一个(n,k)循环码。
2.1.2差错控制编码的基本概念信道编码的目的是提高信号传输的可靠性,信道编码是在经过信源编码的码元序列中增加一些多余的比特,目的在于利用这种特殊的多余信息去发现或纠正传输中发生的错误。
在信道编码只有发现错码能力而无纠正错码能力时,必须结合其他措施来纠正错码,避免删除错码带来的负面影响。
上诉手段称为差错控制。
在对乘性干扰和加性干扰进行处理后仍不能达到误码率要求时,就需要采用差错控制措施。
差错控制技术有以下4种:(1)检错重发:在发送码元中加入差错控制码元,当检测到有错码时,利用反向信道通知发送端重发。
(2)前向纠错(FEC):接收端通过发送码元中的差错控制码元,不但能发现错码,而且还能纠正错码。
(3)反馈校验:不需要在发送序列中加入差错控制码元,而是将接收到的码元全部转回发送端,在发送端逐一比较,如发现有不同,则发送端重发。
(4)检错删除:在接收端发现错码后,立即将其删除,不要求重发。
为了在接收端能够发现或纠正错码,在发送码元序列中需要加入一些差错控制码元,称为监督码元或监督位。
加入监督码元的方法称为差错控制编码方法或纠错编码方法。
一般来说,加入的监督码元越多,检纠错能力就越强。
另一方面,加入的监督码元越多,传输效率就越低。
检纠错就是用降低传输效率换取传输可靠性的提高。
2.2 差错控制编码的基本原理纠错编码:对原来的信息代码重新编写,根据需要增加一些监督码,使在输出端能够识别出错码。
分组码的结构:将信息码分组,为每组信息码附加若干监督码的编码称为分组码。
在分组码中,监督码元仅监督本码组中的信息码元。
图2.1 分组码的基本结构分组码的符号:(n, k)N 表示码组的总位数,又称为码组的长度(码长),k 表示码组中信息码元的数目,n-k=r 表示码组中的监督码元数目,或称监督位数目。
2.3循环码的编码译码原理2.3.1循环码的编码原理和方法循环码在编码时,首先需要根据给定循环码的参数(n,k)确定生成多项式g(x),也就是从n x+1的因子中选一个(n-k)次多项式作为g(x)。
利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x)。
根据上述原理,可以对给定的信息位进行编码。
对于(n,k)循环码,设m(x)表示信息码多项式,根据循环码编码方法,其次数必小于k。
而k n x-m(x)的次数必小于n,用k n x-m(x)除以g(x),可得余数r(x),r(x)的次数必小于g(x)的次数(n-k)。
将r(x)加到信息位后作监督位,即将r(x)+k n x-m(x)就得到了系统循环码。
因此,编码步骤可以归纳为:(1)用k n x-乘m(x)。
这一运算实际上是把信息码后附加上(n-k)个“0”。
例如,信息码为110,它相当于m(x)=2x+x。
当n-k=7-3=4时,k n x-m(x)=6x+5x,它相当于1100000。
(2)求r(x)。
由于循环码多项式A(x)都可以被g(x)整除,也就是:(2.1)因此,用k n x m(x)除以g(x),就得到商Q(x)和余式r(x),即(2.2)这样就得到了r(x)。
(3)求A(x)。
编码输出系统循环码多项式A(x)为:(2.3)例如,对于(7,3)循环码,若选用,信息码110时:(2.4)上式相当于这时的编码输出为:1100101。
上诉(n,k)循环码的编码过程,在硬件实现时,可以利用除法电路来实现,这里的除法电路采用一些移位寄存器和模2加法器来构成。
当信息位输入时,开关位置接“2”,输入的信息码一方面送到除法器进行运算,一方面直接输出;当信息位全部输出后,开关位置接“1”,这时输出端接到移位寄存器的输出,这时除法的余项,也就是监督位依次输出。
编码器的工作过程如下:图2.2 (7,3)循环码编码器2.3.2循环码的译码原理和方法对于接收端译码的要求通常有两个:检错与纠错。
达到检错目的的译码十分简单,可以由式(2-1),通过判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。
当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠B(x),B(x)不能被g(x)整除。
因此,可以根据余项是否为零来判断码组中有无错码。
需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。
这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。
在接收端为纠错而采用的译码方法自然比检错要复杂许多。
为了能够纠错,要求每个可纠正的错误图样必须和校正子之间存在某种对应关系。
因此,可以按照下述步骤进行纠错:(1)由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);(2)由校正子S(x)确定错误图样E(x);(3)将错误图样E(x)与B(x)相加,纠正错误。
纠错码译码器的复杂性主要取决于译码过程的第(2)步。
基于错误图样识别的译码器称为梅吉特译码器,它的原理图如图2.3所示。
错误图样识别器是一个具有(n-k)个输入端的逻辑电路,原则上可以采用查表的方法,根据校正子找到错误图样,利用循环码的上述特性可以简化识别电路。
梅吉特译码器特别适合于纠正2个以下的随机独立错误。
图中k级缓存器用于存储系统循环码的信息码元,模2加电路用于纠正错误。
当校正子为0时,模2加来自错误图样识别电路的输入端为0,输出缓存器的内容;当校正子不为0时,模2加来自错误图样识别电路的输入端在第i位输出为1,它可以使缓存器输出取补,即纠正错误。
图2.3 梅吉特译码器原理2.4 差错控制编码系统的性能(1)系统带宽和信噪比的关系:为了减少接收错误码元数量,需要在发送信息码元序列中加入监督码元。
这样使发送序列增长,冗余度增大。
若仍须保持发送信息码元速率不变,则传输速率必须增大,因而增大了系统带宽,继而引起系统中噪声功率增大,信噪比下降。
信噪比的下降反而又使系统接收码元序列中的错码增多。
采用纠错编码后,误码率总是能够得到很大改善的。
如图2.4:图2.4 编码和误码率关系 (2)功率和带宽的关系:由图还可以看出,若保持误码率不变,如图中C 点,未采用编码时,约需要信噪比Eb/n0=9.5 dB 。
在采用这种编码时,约需要信噪比7.5 dB ,图中D 点。
可以节省功率2 dB ,付出的代价是带宽的增大。
与纠错方法相比,采用检错方法,可以少增加监督位,从而少增大带宽。
(3)传输速率和带宽的关系:对于给定的传输系统,传输速率和Eb/n0的关系是 B s s s b R n P T n P n T P n E 0000)/1(=== (2.5)式中B R 是码元速率, S P 是信号码元的平均功率。
三、基于循环码的差错控制编码系统的MATLAB 仿真MATLAB 通信工具箱中的系统仿真,分为用simulink 模块框图进行仿真和用MATLAB 函数进行的仿真两种。
在用simulink 模块框图的仿真中,每个模块,在每个时间步长上执行一次,就是说,所有的模块在每个时间步长上同时执行。
这种仿真被称为时间流的仿真。
而在用MATLAB 函数的仿真中,函数按照数据流的顺序依次执行,意味着所处理的数据,首先要经过一个运算阶段,然后再激活下一个阶段,这种仿真被称为数据流仿真。
某些特定的应用会要求采用两种仿真方式中的一种,但无论是哪种,仿真的结果是相同的。
3.1Simulink 仿真技术10110-10-11编PC D E AB 信噪比 (dB)Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。
在SIMULINK环境中,利用鼠标就可以在模型窗口中直观地“画”出系统模型,然后直接进行仿真。
它为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像用手和纸来画一样容易。
它与传统的仿真软件包微分方程和差分方程建模相比,具有更直观、方便、灵活的优点。
SIMULINK包含有SINKS(输入方式)、SOURCE(输入源)、LINEAR(线性环节)、NONLINEAR(非线性环节)、CONNECTIONS (连接与接口)和EXTRA(其他环节)子模型库,而且每个子模型库中包含有相应的功能模块,用户也可以定制和创建用户自己的模块。
用SIMULINK创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。
用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。
在定义完一个模型后,用户可以通过SIMULINK的菜单或MATLAB的命令窗口键入命令来对它进行仿真。
菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。
采用SCOPE模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。
除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。
仿真的结果还可以存放到MATLAB的工作空间里做事后处理。
模型分析工具包括线性化和平衡点分析工具、MATLAB的许多工具及MATLAB 的应用工具箱。