仿真技术综合设计 班 级: 通信13-3班 * 名: *** 学 号: ********** 指导教师: *** 成 绩:
循环码产生电路的设计
电子与信息工程学院 信息与通信工程系
目 录
1循环码简介 ................................................................ 3 2循环码电路设计要求 ........................................................ 3 3循环码编码相关知识 ........................................................ 3
3.1 循环码的多项式表示 ................................................. 3 3.2 (n,k)循环码的生成多项式 ............................................ 4 3.3 循环码的生成矩阵和一致校验矩阵 ..................................... 4 3.4 循环码编码原理 ..................................................... 6 4循环码产生电路原理 ........................................................ 7 5 Simulink模型的建立 ....................................................... 9
5.1 在simulink中建立循环码电路模型 ..................................... 9 5.2 相关模块参数设置 .................................................... 9 6仿真结果和分析 ........................................................... 11 7循环码的应用 ............................................................. 12
7.1循环码在微机网络系统中的应用 ........................................ 12 7.2循环码在CDMA中的应用 ............................................... 13 7.3循环码在数字通信中的应用 ............................................ 13 7.4在前向纠错中的应用 .................................................. 13 7.5循环码在铁路通讯安全中的应用 ........................................ 14 8心得体会 ................................................................. 15
2
1循环码简介
在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。 循环码可以检测长为 或更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码(Gray Code)。
2循环码电路设计要求
循环码产生电路设计要求: 1、用simulink对系统建模 2、写出其生成多项式(自定)。
3、对所设计的系统性能进行仿真分析(输出m小序列) 4、对其应用举例阐述。
3循环码编码相关知识
3.1 循环码的多项式表示
3
设码长为n的循环码表示为(an1 an2 ai a1 a0),其中ai为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式:
Txan1xn1an2xn2aixnia1xa0
的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式。
3.2 (n,k)循环码的生成多项式
(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幂次为n-k的码多项式,则xkg(x)是一个幂次为n的码多项式。按模(xn1)运算,此时:
xkg(x)R(x) Q(x)nn
即
xkg(x)R(x)
且因x g(x)也是n阶幂,故Q(x)=1。由于它是循环码,故xkg(x)按模(xn1)运算后的“余式”也是循环码的一个码字,它必能被g(x)整除, 即
R(x)F(x)g (x )
k由以上两式可以得到一下两式:
xkg(x)Q(x)(xn1)R(x)(xn1)f(x)g(x)
x1xf(x)g(x)h(x)g(x)
nk从上式中可以看出,生成多项式g(x)应该是xn1的一个因式,即循环码多项式应该是xn1的一个n-k次因式。
3.3 循环码的生成矩阵和一致校验矩阵
n,k循环码的生成多项式写为gx ,它是n,k循环码码集中唯一的,幂次为nk的
4
码多项式,则xkgx是一个幂次为n的码多项式。按模xn1运算,此时:
xkgxRxQxn nx1x1
即
xkgxRx,且因
xkgx也是n次幂,故
Qx1。由于它是循环码,故
xkgxngx按模x1运算后的“余式”也是循环码的一个码字,它必能被整除,即:
由以上两式可以得到:
R(x)FxG(x)
xkgxQxxn1Rxxn1FxGx
xn1xkFxGx
从上式中可以看出,生成多项式g(x)应该是xn1的一个因式,即循环码多项式应该是xn1的一个nk次因式。
由生成多项式可以得出相应的典型生成矩阵及标准监督矩阵:
1001G00bk1,nk1Hbk1,1bk1,0001bbk1,nk1k2,nk1bbk1,1k2,1bbb0,nk1bb0,nk10,1k2,0 b0,0k1,0
bk2,nk1100
bbk2,1k2,0bb0,10,000 1001
已知(7,3)循环码的生成多项式为:gxx4x2x1。 写得其生成矩阵为:
5
1 0 1 1 1 0 0G0 1 0 1 1 1 00 0 1 0 1 1 1
1 1 1 1 0 0 0 1 1 1 0 1 0 0H0 1 1 0 0 1 00 0 1 0 0 0 1
3.4 循环码编码原理
有信息码构成信息多项式m(x)mk1xk1m0,其中最高幂次为k-1;
用xnk乘以信息多项式m(x),得到的xnkm(x),最高幂次为n-1,该过程相当于把信息码(mk1,mk2,……,m1,m0)移位到了码字德前k个信息位,其后是r个全为零的监督位;
用g(x)除xnkm(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于xnkm(x)相加,得到的多项式必为一码多项式。
根据上面的讨论,可得到在循环码编码的程序框图如图3.1 所示:
初始化 确定余式r(x): 确定c(x): c(x)m(x)xnkr(x) 存储c(x)
图3.1 循环码编码的程序框图
6
循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组,也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。 循环码的编译码过程如下:
第一步:将信息码字表示为mx,其最高次幂为k1; 第二步:将xnkmx与gx求模得出相应的余式rx; 第三步:编码结果为cxxnkmxrx。
4循环码产生电路原理
上面讨论的产生监督码元的方法可用以下两个式子加以概括
cxxnkmxrx
r(x)xnkm(x)modg(x)
因此采用系统码的循环码编码器就是将信息组m(x)乘上xnk,然后用生成多项式除以g(x),求余式r(x)的电路,如图4.1所示,其中生成多项式为:
g(x)gnkxnkgnk1xnk1g1xg0
若
g00,其中(0ink),则电路就无反馈,否则支路就有反馈。
图4.1 循环码产生电路原理
7
由于本课程设计选择的设计参数为n=7, k=3,且生成多项式为所以设计电路如下:
gxx4x2x1
图4.2 (7,3)循环码产生电路原理
电路编码过程如下:
(1) 四级移存器初始状态全为“0”,门1开,门2关。信息组以高位先入的次序送入电路,一方面经或门输出编码的前k个信息码元,另一方面送入g(x) 除法电路的右端,这对应于完成用g(x)除xnkg(x)的除法运算。
(2) 三次移位后,信息组全部通过或门输出,它就是系统码码字的前三个信息码元,同时它也全部进入除g(x)电路,完成除法运算。此时在移存器abcd中存的数就是余式r(x)的系数,也就是码字的校验码元c3c2c1c0。
(3) 门1关闭,门2打开,再经四次移位后,移存器中的校验码元c3c2c1c0跟在信息组后面输出,形成一个完整的码字。
(4) 门1打开,门2关闭,送入第二组信息组,重复上述过程。
表4-1列出了上述编码器的工作过程。设输入信息组为(110),七个移位脉冲过后,在输出端得到已编好的码字(1100101)。
8
输入m 0 (初始状态) 1 1 0 0 0 0 0 移位寄存器 abcd 0000 1110 1001 1010 0101 0010 0001 0000 反馈e 0 1 1 1 0 1 0 1 输出f 0 1 1 0 0 1 0 1 表4-1 寄存器状态
5 Simulink模型的建立
5.1 在simulink中建立循环码电路模型
打开matlab,在simulink库里先新建文件,保存到指定位置,然后开始建立模型。从simulink库里拖入信号源模块、逻辑控制模块、延时模块、示波器等相关控件,如图5.1所示。
图5.1循环码产生电路 simulink仿真框图
5.2 相关模块参数设置
1、m序列输入源设置
M序列的输入是用” Repeating Sequence Stair”模块来完成的。” Repeating
9
Sequence Stair”模块可以直接按照人为设定的序列进行输出,在这里我们利用它来输入信息码m(x),现设置如下:
图5.2 m序列输入源设置
2、反馈控制源设置
反馈控制信号源是用来控制如图5.1所示的“门1”,当输入信息码时,反馈打开,当3位信息码输完之后,反馈关闭,之后把四位寄存器里储存的值输出来就是监督码。
故将反馈信号源设置如下:
图5.3反馈信号源设置
3、输出控制源
输出控制信号源是用来控制输出的,当输入信息码时,一方面把信息码送入除法电路,另一方面直接输出,这时就需要把如图5.1所示的“门2”打开,故将输出控制信号源设置如下:
10
图5.4输出控制源
4、延时模块(移位寄存器)设置
这里延时模块选择的是离散的 单位延时模块,作用就相当于移位寄存器,现设置参数如下: “Sample time”设为-1,代表采样时间是继承的。
图5.5延时模块(移位寄存器)设置
6仿真结果和分析
根据上述的各模块的设置,点击“运行按钮”,然后双击示波器“Scope”可以观看编码结果如下图6.1,经过验证,编码结果正确,输入信息码(110),输出编码结果为(1100101).
11
图6.1 仿真输出波形
7循环码的应用
7.1循环码在微机网络系统中的应用
在微机局部网络中由于信息传输所造成的错误会影响系统的工作性能,降低系统的靠性。因此采用循环码编码,进行数据传输,是提高系统性能和可靠性的重要措施。 1.生成多项式G(X)的选取; 2.并行信息传输技术; 3.接收检测技术;
12
4.接收码检错电路;
5.发现双列、纠正单列错码的并行传输;
7.2循环码在CDMA中的应用
码分多址是卫星通信与移动电台通信中的一种重要的多址方式,码序列的选择是CDMA系统中的重要因素 .选择码序列的关键在于它们应当具有良好的相关系数Η,同时还应当具有足够的可供选择的码序列数目Α(即地址数目)。循环码是一种纠错码,通常只用来提高数据通信的可靠性,抵抗信道 中的干扰和噪声,然而下面的定 理证明,某 些循环码同样具有良好的相关系数Η和足够的码序列数目 ,因而也适合用作CDMA中的码序列。
7.3循环码在数字通信中的应用
循环码是编码方式的一种,检错率高.循环码用来检测随机或突发错误是非常有效的.在通信软件中大多数采用循环码进行数据差错控制。数字通信要求传输过程中所造成的数码差错足够低,引起传输差错的根本原因是信道内存在着噪声,以及信道特性不理想所造成的码间串扰,虽然我们可以通过提高通信系统的信噪比及抗噪声性能,将差错减小到一定程度,但要进一步提高通信系统的可靠性,就需要采用差错控制技术。
7.4在前向纠错中的应用
循环码是线性分组码的一个重要子类,有严密的数学结构,具有纠、检错能力,且编码、解码用软件、硬件都容易实现。研究了循环码实现的方法和应用原理, 结果表明,将该方法应用于前向纠错方式中, 能大大提高通信质量。
数字通信要求传输过程中所造成的数码差错足够低,引起传输差错的根本原因是信道内存在着噪声,以及信道特性不理想所造成的码间串扰。虽然可以通过提高通信系统的信噪比及抗噪声性能, 将差错减小到一定程度,但要进一步提高通信系统的可靠性,就须采用差错控制技术。差错控制的基本工作方式有 4种, 即前向纠错、检错重发、信息反馈和混合纠错,在测井系统中,采用单芯电缆进行数据通信,由于受传输线的限制,双向信息传输不能同时进行,若采用信息反馈或检错重发或混合纠错方式,传输线又用作反馈信道, 必然导致传输速率降低, 为此,通信中采用前向纠错方式。纠错编码的目的在于利用编码后码字的规律性。
13
应用实例:在单芯电缆测井系统的数据传输中,应用了循环码纠错编码。生产测井中需要的参数主要有温度、压力、含水率、磁定位信号、流量等, 由于油井环空测试只能在油井环空范围内进行, 测井难度大大增加。铠装单芯电缆内有一条电缆芯,与外层铠装构成了两股传输线,其中外层铠装在传输中可作地线。首先将各物理量转变成数字信号, 并将各种信号的传送从时间上分开, 从而实现了分时传送。为了使传输信号具有同步能力,对传输数据进行了双相位信号码编码; 为了降低传输误码率,采用了( 18,13)循环码。该码
k13100%72.2%最小码距 dmin3, 编码效率为n18, 不仅能纠正一个错误,同时还能检出一个错误。实验表明,经过 500 m 单芯电缆的传输,由井下至地面发送数据波特率为 5 kb/ s时,虽然在发送端设计了幅度均衡电路,但由于信道对不同频率信号的衰减不同,造成“ 1”和“ 0”信号由井下发往地面后接收幅度不同。统计结果显示, 未采用循环码纠错编码时,误码率为 0. 3%,采用循环码后,误码率降至0. 01%以下。这样大大提高了通信质量,收到良好效果。
7.5循环码在铁路通讯安全中的应用
随着数字化技术在铁路运输系统中的应用,要求数据传输具有高可靠性和低误码率。因此在通讯信道达不到要求时,需要应用循环码技术进行检错和纠错。目前,很多成熟的数字化技术已经在铁路运输中得到应用,其中有许多系统需要对数据进行采集、传输和处理,要求数据在传输中具有高度的可靠性和很低的误码率。但由于铁路行业的特殊性,有些通讯信道还达不到应用系统的误码率要求,因此检错和纠错成为系统应用必须解决的问题,而循环码是当前应用最多、最广的检错和纠错技术。
循环码在纠错中的应用:当采用循环码编码后的码在实际中发生变化时, 如果改变的位数小于循环码中非零编码的最码重半数或改变的连续位数在可纠正范围内,该编码将不再属于此循环码集,在接收时就能检测到此类错误,并通过还原得到原始编码,从而达到纠错的目的。当用循环码进行纠错时,可根据不同的使用场合使用不同的循环码。如果使用循环码来纠正随机错误,那么就要求循环码中具有最小码重的非零编码的码重尽可能的大,因为其码重决定了此循环码纠正随机错误的能力。如果使用循环码来纠正突发错误,就要求循环码中非零编码的最长非零位数尽可能的少,因为它决定了此循环码纠正突发错误的能力。
14
循环码在系统中的应用:随着铁路调度管理信息系统(DMIS)、调度集中系统(CTC)的大面积的推广使用,由于有些通讯信道还达不到相应的误码率要求,在通讯中会出现一些误码,影响系统的正常使用,通过应用循环码检错功能,可以使通道质量提升到满足系统误码率的要求。在无线传送方面,因为属于开放式传播, 突发干扰较多,造成通讯中有较多的突发错误包,可使用循环码进行检错,并进行适度的纠错。例如,在无线车次号、无线调车防护、应答器、道口预警等系统中采用循环码纠错方式,可以有效保证系统的正常通讯。
8心得体会
在这次基于MATLAB的通信原理课程设计中,我最大的收获是对MATLAB软件的使用有了更深的了解,尤其是simulink仿真板块的运用,更加熟练,此外,对循环码的理论知识有了进一步的认识。
刚拿到题目的时候遇到很多的困难,当时通信原理的理论学习并没有学习到循环码的章节,并且在网上并没能找到很多资源,但是通过查找了大量的循环码理论知识和MATLAB仿真应用的书籍之后,开始调试程序,并进一步了解MATLAB编程的关键字的运用,并且熟悉运用软件simulink、建模仿真、分析,在调试过程中不断出错,查阅资料之后进行不断的修正和更改,得出最终的结果。
通过在仿真的过程中,会遇到很多很多的问题,比如simulink库里的模块以及参数设置都是英文的,所以寻找模块以及设计模块参数的时候会遇到一些问题,还有要注意一些小的细节,比如有些模块是分连续和离散的,选择的模块类型不正确,仿真就可能出现错误。
这次MATLAB课程设计不仅仅加深了对课程理论知识的了解,并更加熟悉了计算机语言,软件的应用。并让我了解,学习知识不仅仅只在课本上,还有更多更广的渠道获得更宽广的知识。
15
因篇幅问题不能全部显示,请点此查看更多更全内容