基于循环码的差错控制编码建模与仿真程序.docx

上传人:b****5 文档编号:6511744 上传时间:2023-01-07 格式:DOCX 页数:14 大小:360.75KB
下载 相关 举报
基于循环码的差错控制编码建模与仿真程序.docx_第1页
第1页 / 共14页
基于循环码的差错控制编码建模与仿真程序.docx_第2页
第2页 / 共14页
基于循环码的差错控制编码建模与仿真程序.docx_第3页
第3页 / 共14页
基于循环码的差错控制编码建模与仿真程序.docx_第4页
第4页 / 共14页
基于循环码的差错控制编码建模与仿真程序.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于循环码的差错控制编码建模与仿真程序.docx

《基于循环码的差错控制编码建模与仿真程序.docx》由会员分享,可在线阅读,更多相关《基于循环码的差错控制编码建模与仿真程序.docx(14页珍藏版)》请在冰豆网上搜索。

基于循环码的差错控制编码建模与仿真程序.docx

基于循环码的差错控制编码建模与仿真程序

基于循环码的差错控制编码系统建模与仿真

一、设计目的及要求

设计目标:

通过利用MATLAB/simulink系统仿真功能,设计一个基于循环码的差错控制编码系统。

实验知识要求:

循环码的编、译码原理,差错控制编码系统的特点。

MATLAB/simulin系统仿真知识。

实验软件平台:

MATLAB7。

0软件。

二、课程设计的任务

2.1循环码及差错控制编码的概念及理论基础

2.1.1循环码的概念及生成多项式

在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。

监督位一般是由所发送的信息序列经过恰当的变化而生成的。

若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码.

在线性分组码中有一类重要的码,称为循环码。

这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。

循环码除了具有线性码的一般性质外,还具有循环性,即任一码组循环一位后仍然是该编码中的一个码组。

(n,k)循环码表示其中信息位为k,监督位为n-k。

如果一种码的所有码多项式都是多项式g(x)的倍式,则称g(x)为该码的生成多项式。

在循环码中,次数最低的非0首多项式就是生成多项式g(x),其他码多项式都是其倍数。

(n,k)循环码的生成多项式g(x)一定是

+1的因式:

+1=g(x)h(x);反之,若g(x)为n-k次,且能被

+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),也就是从

+1的因子中选一个(n-k)次多项式作为g(x).利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x).

根据上述原理,可以对给定的信息位进行编码。

对于(n,k)循环码,设m(x)表示信息码多项式,根据循环码编码方法,其次数必小于k。

m(x)的次数必小于n,用

m(x)除以g(x),可得余数r(x),r(x)的次数必小于g(x)的次数(n-k)。

将r(x)加到信息位后作监督位,即将r(x)+

m(x)就得到了系统循环码。

因此,编码步骤可以归纳为:

(1)用

乘m(x).这一运算实际上是把信息码后附加上(n—k)个“0".例如,信息码为110,它相当于m(x)=

+x。

当n—k=7-3=4时,

m(x)=

+

,它相当于1100000。

(2)求r(x)。

由于循环码多项式A(x)都可以被g(x)整除,也就是:

(2.1)

因此,用

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。

5dB。

在采用这种编码时,约需要信噪比7.5dB,图中D点。

可以节省功率2dB,付出的代价是带宽的增大。

与纠错方法相比,采用检错方法,可以少增加监督位,从而少增大带宽。

(3)传输速率和带宽的关系:

对于给定的传输系统,传输速率和Eb/n0的关系是

(2.5)

式中

是码元速率,

是信号码元的平均功率.

三、基于循环码的差错控制编码系统的MATLAB仿真

MATLAB通信工具箱中的系统仿真,分为用simulink模块框图进行仿真和用MATLAB函数进行的仿真两种.在用simulink模块框图的仿真中,每个模块,在每个时间步长上执行一次,就是说,所有的模块在每个时间步长上同时执行。

这种仿真被称为时间流的仿真.而在用MATLAB函数的仿真中,函数按照数据流的顺序依次执行,意味着所处理的数据,首先要经过一个运算阶段,然后再激活下一个阶段,这种仿真被称为数据流仿真.某些特定的应用会要求采用两种仿真方式中的一种,但无论是哪种,仿真的结果是相同的。

3。

1Simulink仿真技术

Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。

在SIMULINK环境中,利用鼠标就可以在模型窗口中直观地“画”出系统模型,然后直接进行仿真。

它为用户提供了方框图进行建模的图形接口,采用这种结构画模型就像用手和纸来画一样容易。

它与传统的仿真软件包微分方程和差分方程建模相比,具有更直观、方便、灵活的优点。

SIMULINK包含有SINKS(输入方式)、SOURCE(输入源)、LINEAR(线性环节)、NONLINEAR(非线性环节)、CONNECTIONS(连接与接口)和EXTRA(其他环节)子模型库,而且每个子模型库中包含有相应的功能模块,用户也可以定制和创建用户自己的模块.

用SIMULINK创建的模型可以具有递阶结构,因此用户可以采用从上到下或从下到上的结构创建模型。

用户可以从最高级开始观看模型,然后用鼠标双击其中的子系统模块,来查看其下一级的内容,以此类推,从而可以看到整个模型的细节,帮助用户理解模型的结构和各模块之间的相互关系。

在定义完一个模型后,用户可以通过SIMULINK的菜单或MATLAB的命令窗口键入命令来对它进行仿真。

菜单方式对于交互工作非常方便,而命令行方式对于运行一大类仿真非常有用。

采用SCOPE模块和其他的画图模块,在仿真进行的同时,就可观看到仿真结果。

除此之外,用户还可以在改变参数后来迅速观看系统中发生的变化情况。

仿真的结果还可以存放到MATLAB的工作空间里做事后处理.

模型分析工具包括线性化和平衡点分析工具、MATLAB的许多工具及MATLAB的应用工具箱。

由于MATLAB和SIMULINK的集成在一起的,因此用户可以在这两种环境下对自己的模型进行仿真、分析和修改.

3.2Simulink对通信系统的仿真步骤

(1)建立数学模型:

根据通信系统的基本原理,将整个系统简化到源系统,确定总的系统功能,并将各部分功能模块化,找出各部分之间的关系,画出系统流程框图模型。

(2)仿真系统:

根据建立的模型,从simulink通信模型库的各个子库中,将所需要的单元功能模块拷贝到Untitled窗口,按系统流程框图模型连接,组建要仿真的通信系统模型.

(3)设置、调整参数:

参数设置包括运行系统参数设置(如系统运行时间、采样速率等)和功能模块运行参数设置(正弦信号的频率、幅度、初相;低通滤波器的截至频率、通带增益、阻带衰减等).

(4)分析仿真数据和波形:

在系统模型的关键点处设置观测输出模块,用于观测仿真系统的运行情况,以便及时调整参数,分析结果。

3。

3循环码的差错控制编码仿真设计

3。

3。

1循环码差错控制编码系统仿真模型

图3。

1所示是循环码的仿真系统.信号源是伯努利二进制信号发生器,产生采样时间为0。

01的二进制信号,传输环境是二进制平衡信道。

在发射端和接收端分别设置了循环码编码和解码器。

为了对比(7,4)循环码差错控制的效率,同时设计了没有经过循环码校验的系统仿真框图,如图3。

2所示。

虽然循环码因为信道编码的结果使得传输效率变为了4/7,即发送的7个码元中进传送了4个码元的有效信息,但是使得差错率从5%降为了2%。

 

图3.1(7,4)循环码进行差错控制仿真系统

 

图3。

2无循环码的差错控制仿真系统

 

3。

3.2主要功能模块及参数设置

图3。

3伯努利二进制信号发生器参数

图3。

4二进制循环码编码器参数

图3。

5二进制循环码译码器参数

图3。

6二进制均衡信道参数

图3。

7误码率计算参数

3。

3.3循环码的误码率与差错率的关系

为了得到循环码仿真系统信号误码率与信道差错概率之间的曲线图,可以编写如下M文件,对图3—1循环码的仿真模型进行仿真,此时二进制均衡信道的差错概率设置为errB,M源文件和曲线图如下。

程序3.1:

clearall;

closeall;

er=0:

0。

01:

0.05;

forn=1:

length(er)

errB=er(n)

sim(’Cyclic_1’)

S(n)=[mean(ss)]'

end

plot(er,S)

xlabel('ErrorPorbability')

ylabel(’ProbabilityofErrorPe')

grid

循环码的性能曲线图如下:

图3。

8循环码的误码率曲线图

同时编写M文件对图3.2无循环码的仿真系统绘出信号误码率与差错概率之间的关系曲线图,此时二进制均衡信道的差错概率设置为errB。

源文件和曲线图如下。

程序3.2:

clearall;

closeall;

er=0:

0。

01:

0.05;

forn=1:

length(er)

errB=er(n)

sim(’Cyclic_3’)

S1(n)=[mean(sss)]’

end

plot(er,S1)

xlabel(’ErrorPorbability')

ylabel(’ProbabilityofErrorPe')

grid

无循环码的性能曲线图如下:

图3.9无循环码的误码率曲线图

通过对循环码信道编码条件下的误码率与差错概率之间的关系(图3。

8)和无信道编码条件下的关系曲线图(图3,9)比较可以看出,当差错概率为0.05时,未编码的误码率为0。

052,而编码后,无码率仅为0.021。

因此,采用了循环码编码差错控制后,系统的码误码率得到了明显的改善,其误码率明显下降。

四、课程设计心得

通过这三个星期的学习和实践,我对循环码的编、译码原理,以及循环码差错控制编码系统的结构、性能有了初步的了解,并对MATLAB/simulink仿真软件有了更深的了解。

而且能够利用Matlab和simulink的初步知识设计出一个简单的模拟仿真系统,使其能够体现出循环码差错控制编码系统的部分性能。

在这次建模仿真设计中,起初我出现了很多次错误,模块参数的设置总是不对。

通过老师的帮助和自己的理解,错误被一一解除,增加了我对Matlab学习的兴趣.

这次的课程设计对即将毕业的我们来说,是一次短期的培训与锻炼,同时也是我们从学校走向社会岗位的一个桥梁。

五、参考文献

(1)Matlab仿真在通信与电子工程中的应用徐明远、邵玉斌编著

西安电子科技大学出版社2005

(2)Matlab/simulink通信系统建模与仿真实例分析邵玉斌编著

清华大学出版社2008

(3)通信原理教程樊昌信编著

电子工业大学出版社2005

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1