卷积码编码及其维特比译码实现.docx
- 文档编号:17622916
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:25
- 大小:571.62KB
卷积码编码及其维特比译码实现.docx
《卷积码编码及其维特比译码实现.docx》由会员分享,可在线阅读,更多相关《卷积码编码及其维特比译码实现.docx(25页珍藏版)》请在冰点文库上搜索。
卷积码编码及其维特比译码实现
《通信原理》课程设计报告
卷积码编码及其维特比译码实现
学院计算机与通信工程专业通信工程
班级学号
学生姓名指导教师
课程成绩完成日期
课程设计成绩评定
学院计算机与通信工程专业通信工程
班级学号
学生姓名指导教师
完成日期
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字2009年月日
卷积码编码及其维特比译码实现
学生姓名:
指导老师:
摘要本课程设计主要基于SystemView平台,实现卷积码编译码系统的设计与仿真,添加高斯噪声测试系统抗噪声性能,通过理论结果与仿真结果分析,调整系统参数设置,寻找系统的最大抗噪声值,仿真的结果表明初步实现了设计目标。
关键词SystemView;卷积码;参数设置;卷积码编译码;高斯噪声;抗噪声性能
1引言
分组码是把k个信息元编成n个码元的码字,每个码字的n-k个校验位仅与本码字的k个信息元有关,而与其他码字无关。
为了达到一定的纠错能力和编码效率(R=k/n),分组码的码长一般都比较大。
编译码时必须把整个信息码组存储起来,由此产生的译码时延随n的增加而增加。
卷积码(convolutionalcode)是1955年由麻省理工学院的伊利亚斯(P.Elias)发明的。
它也是将k个信息元编成n个码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。
与分组码不同,卷积码编码后的n个码元不仅与当前段的k个信息元有关,还与前面的N-1段信息有关,各码字间不再是相互独立的,码字中互相关联的码元个数为n*N。
同样,在译码过程中不仅从此时刻收到的码元中提取译码信息,而且还利用以后若干时刻收到的码字提供有关信息。
卷积码的纠错性能随k的增加而增大,而差错率随N的增加而指数下降。
由于卷积码的编码过程充分利用了码字间的相关性,因此在码率和复杂性相同的条件下,卷积码的性能优于分组码因此在通信领域应用的越来越多。
但目前尚未找到较严密的数学手段,将码的构成与其纠/检错能力有规律地联系起来,一般是采用计算机搜索来寻找合适的编码方式。
另外,卷积码的译码算法也有待于进一步研究与完善。
1.1课程设计目的
综合运用我们所学过的知识,以达到巩固所学知识,提高我们思考问题、分析问题和解决问题能力的目的。
进一步理解卷积码编译码的原理、方法、性能。
学习使用通信系统仿真软件SystemView,了解SystemView的基本功能,并设计出卷积码编译码的仿真电路框图。
对所设计的仿真电路进行调试及仿真,最后对仿真结果结合卷积码原理进行分析。
1.2课程设计要求
通过对卷积码编译码系统的设计,进一步了解卷积码的原理、方法、性能;通过使用SystemView软件实现卷积码编译码系统并对其进行分析,掌握构建仿真环境和仿真电路框图的方法。
按要求编写课程设计报告书,能正确分析仿真输出波形,并能与理论分析结果进行对比。
1.3设计平台
SystemView是美国ELANIX公司推出的,基于Windows环境下运行的用于系统仿真分析的可视化软件工具,它使用功能模块(Token)去描述程序,无需与复杂的程序语言打交道,不用写一句代码即可完成各种系统的设计与仿真,快速地建立和修改系统、访问与调整参数,方便地加入注释。
SystemView是一个完整的动态系统设计、仿真和分析的可视化环境,是一个适合多种操作系统的单机和网络平台。
在SystemView环境下,可以构造各种复杂的模拟、数字、数模混合系统和各种速率的系统,可用于线性或非线性控制、通信系统的设计和仿真。
SystemView有诸多优点:
直观、简单、易用;支持多速率系统和并行系统;无限制分层结构;丰富的功能模块;广泛的滤波和线性系统设计;可扩展性。
2卷积码的工作原理简述
2.1卷积码的结构
卷积码编码器的一般结构形式如图2-1所示,它主要由移位寄存器和加法器组成。
输入移位寄存器包括N段,每段有k个,共Nk个寄存器,负责存储每段的k个信息码元;各信息码元通过n个模2加法器相加,产生每个输出码组的n个码元,并寄存在一个n级的移位寄存器中移位输出。
整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器之间连接所决定的另一个序列的卷积,卷积码即由此得名。
通常把N称为卷积码的约束长度,通常把卷积码记为:
(n,k,N);其中,n为码长,k为码组中信息码元的个数,它的编码效率为R=k/n。
图2-1卷积码编码器的一般形式
下面以一种(2,1,3)卷积码为例加以说明。
图2-2所示为这种卷积编码器的结构,其中没有画出图2-2中延时为零的第一级移位寄存器,并用转换开关代替了输出移位寄存器。
图2-2(2,1,3)卷积码编码器
它的编码方法是:
输入序列依次送入一个两级移位寄存器,编码器每输入一位信息b,输出端的开关就在
,
之间来回切换一次,输出
和
。
在图2-2中,
与
为移位寄存器,它们的起始状态均为零。
、
与
、
、
之间的关系如下:
;
。
假如输入的信息为D=[11010],为了使信息D全部通过移位寄存器,还必须在信息位后面加3个零。
表2-1列出了对信息D进行卷积编码时的状态。
表2-1信息D进行卷积编码时的状态
输入信息D
1
1
0
1
0
0
0
0
00
01
11
10
01
10
00
00
输出
11
01
01
00
10
11
00
00
2.3卷积码的图解表示
根据卷积码的特点,常常采用图解表示法对其进行研究。
主要的图解表示法有3种,即树状图、网状图和状态图。
对于图2-2所示的(2,1,3)卷积码编码电路,其树状图如图2-3所示。
这里,分别用a,b,c和d表示寄存器
和
的四种可能状态:
00,10,01,11,作为树状图中每条支路的节点。
图2-3(2,1,3)卷积码的树状图
以全零状态a为起点,当第一位信息
=0时,输出码元为00,寄存器保持状态a不变,对应图中从起点出发的上支路;当
=1时,输出码元为11,寄存器则转移到状态b,对应图中的下支路;然后再分别以这两条支路的终节点a和b作为处理下一位输入信息b的起点,从而得到4条支路。
以此类推,可以得到整个树状图。
显然,对于第i个输入信息比特,图中将会出现
条支路。
但从第4位信息开始,树状图的上半部和下半部都完全相同,这意味着此时的输出码元一盒第1位信息无关,由此可以看出吧卷积码的约束长度定义为N的意义。
利用树状图中观察到的重复性,把其中具有相同状态的节点合并到一起可以得到一种更为紧凑的图形,即网格图,如图2-4所示。
这种图仍由节点和支路组成,4行接点分别表示a,b,c,d4种状态,支路则代表了状态之间的转移关系,其中实线支路代表输入信息为“0”,虚线支路代表输入信息为“1”,之路上标注的码元为当前输出。
一般情况下,网格图应有
种状态,从第N节开始图形同样会出现重复。
图2-4(2,1,3)卷积码的网格图
取出已达到稳定状态的一节网络,再把相同的当前状态和下一状态重叠起来,就能得到图2-5形式的状态转移图,图中的两个闭合圆圈分别表示“a
a”和“d
d”的状态转移。
显然,状态图也应该有
种可能状态(节点),每个节点会引出
条支路,同时也会有
条来自其他节点或本节点的支路到达。
图2-5(2,1,3)卷积码的状态图
2.4卷积码的解析表示
我们可以用延时算子D构成的多项式来表示卷积编码器中各级移位寄存器与模2加之间的联系关系。
如果某级寄存器与模2加相连没对应的系数为1,反之则为0。
以上述(2,1,3)卷积码为例,图2-2所示的编码器结构可以用以下两式描述:
其中,变量D的幂次等于该级寄存器相对于时间起点的单位延时数。
在卷积码中,通常把表示移位寄存器与模2加连接关系的多项式称为生成多项式。
为了方便,有时还可以用二进制或八进制的生成序列来表示生成多项式,即
同理,也可以用延时算子D的多项式来表示编码器的输入与输出序列。
例如,输入序列“110111”可以表示为
其中,变量D的幂次扥与改比特相对于时间起点的单位延时数,时间起点则通常选在第1位比特上。
卷积码不是分组码,但是从生成多项式的描述可以看出,它仍属于线性码,同样可以有生成矩阵G或监督矩阵H所完全确定。
令输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+u
x
+…。
编码器的连接可用多项式表示为
(x)=1+x+x2和
(x)=1+x2,称为码的子生成多项式。
它们的系数矢量
=(111)和
=(101)称作码的子生成元。
以子生成多项式为阵元构成的多项式矩阵G(x)=[[[Image:
490-0.jpg]](x)
(x)]称为码的生成多项式矩阵。
由生成元构成的半无限矩阵
称为码的生成矩阵。
其中(11,10,11)是由
和
交叉连接构成。
编码器输出序列为c=u·G,称为码序列,其多项式表示为c(x),它可看作是两个子码序列c
(x)和c
(x)经过合路开关S合成的,其中c
(x)=u(x)·
(x)和c
(x)=u(x)g
(x),它们分别是信息序列和相应子生成元的卷积,卷积码由此得名。
在一般情况下,输入信息序列经过一个时分开关被分成k0个子序列,分别以u
(x)表示,其中i=1,2,…k0,即u(x)=[u
(x),…,u
(x)]。
编码器的结构由k0×n0阶生成多项式矩阵
给定。
输出码序列由n0个子序列组成,即
c(x)=[c
(x),c
(x),…,c
(x)],且c(x)=u(x)·G(x)。
2.5卷积码的译码
卷积码的译码方法主要有代数译码和概率译码两种。
代数译码根据卷积码自身的代数结构进行译码,计算简单;概率译码则在计算时考虑信道的统计特性,计算较复杂,但纠错效果好得多。
典型的算法如:
Viterbi译码、序列译码等。
随着硬件技术的发展,概率译码已占统制地位。
代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。
如果信息序列=(10111),相应的码序列c=(11100001100111)。
若接收序列R=(10100001110111),先根据R的前三个分支(101000)和码树中前三个分支长的所有可能的8条路径(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)进行比较,可知(111001)与接收序列(101000)的距离最小,于是判定第0分支的信息数字为0。
然后以R的第1~3分支数字(100001)按同样方法判决,依此类推下去,最后得到信息序列的估值为
=(10111),遂实现了纠错。
这种译码法,译码时采用的接收数字长度或译码约束长度为(m+1)n0,所以只能纠正不多于(dmin-1)/2个错误(nA长上的)。
实用中多采用反馈择多逻辑译码法实现。
维特比译码是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。
若接收序列为R=(10100101100111),译码器从某个状态,例如从状态ɑ出发,每次向右延伸一个分支(对于l<L,从每个节点出发都有2
=2种可能的延伸,其中L是信息序列段数,对l≥L,只有一种可能),并与接收数字相应分支进行比较,计算它们之间的距离,然后将计算所得距离加到被延伸路径的累积距离值中。
对到达每个状态的各条路径(有2
=2条)的距离累积值进行比较,保留距离值最小的一条路径,称为幸存路径(当有两条以上取最小值时,可任取其中之一),译码过程如图2-6。
图中标出到达各级节点的幸存路径的距离累积值。
对给定R的估值序列为
=(10111)。
这种算法所保留的路径与接收序列之间的似然概率为最大,所以又称为最大似然译码。
这种译码的译码约束长度常为编码约束长度的数倍,因而可以纠正不多于(df/2)个错误。
图2-6 维特比译码过程
维特比译码器的复杂性随m呈指数增大。
实用中m不大于10。
它在卫星和深空通信中有广泛的应用。
在解决码间串扰和数据压缩中也可应用。
3基于SystemView的系统仿真
3.1卷积码系统模型
由卷积码的工作原理图图2-1,用SystemView进行系统设计,得到一个完整的卷积码编译码模型如图3-1所示。
在本设计中,该模型可用于分析卷积码编译码系统的抗噪声性能。
图符4、5、16信道用于模拟噪声。
为了便于进行抗噪声性能的对比,在这个模型中,将硬判决和软判决方式放在一个系统中。
图符0为信号发生源,用来输出一个按设定速率,由不同电平幅度脉冲组成的伪随机序列(PN)信号;图符1和图符15为采样延迟,按设定的采样点数对数据传输进行延迟;图符2、8为采样器,按设定的采样率采样,输出的结果是输入信号在采样宽度内的线性组合;图符9为卷积码编码器,根据输入的n,k,l参数生成卷积编码,并自动给出生成多项式;图符3为多项式符;图符6为保持器,用于采样或抽样后返回系统采样率;图符5为高斯噪声,产生一个具有高斯分布的随机信号;图符16为增益,对输入信号进行放大;图符11为加法器,对输入信号进行加法操作;图符10、13为比特误码率(BER),估计信道的比特误码率,作长时间仿真时,可配合循环选项及停止接收图符进行;图符7为积分清除滤波器,该积分滤波器无须每个积分周期T都清零,每个输入周期都独立,不存在码间干扰,使译码能够具有更好的抗噪声性能;图符12、18为卷积码译码器,根据所选的判决方式(hard/soft)进行卷积码译码。
软判决是还需输入判决比特数,bin值,逻辑1的电平值,噪声密度等参数;图符19、20为重新采样,按制定的采样率采样,内建一个采样-保持器,用于多速率系统;图符17为停止,当接收到的数据值大于或等于设定的门限值时即停止系统仿真,在分析窗口可以观察到输出结果;图符11、14为终值,在系统循环结束时,显示该循环接收的最终之。
每个循环只保留一个样本,在分析窗口观察结果。
图3-1卷积仿真码波形
3.2系统的参数设置
系统的时间设置如图3-2所示。
图中,设置了系统的循环次数为5次。
图3-2时间设置
在仿真时,由采用高次数循环可知在循环次数大于5的时候,软判决的输出误比特率已经为0,没有实际意义,且采用较大次循环时的运行时间较长影响计算效率,故采用5次循环。
采用10次循环的结果如图3-3所示。
图3-3(a)采用10次循环硬判决的结果
图3-3(b)采用10次循环软判决的结果
另外,为了能够对不同的信道噪声状况下的误码率进行仿真,需要设置图3-1中图符16为全局可变变量。
为了达到这一目的,使用Tools菜单的GlobalParameterLink菜单项,将打开如图3-5所示的窗口。
在LinkedSystemTokens中选择“16Operate:
Gain”,然后在“DefineAlgebraicRelationshipF(Gi,Vi)”区域的文本框中输入“-cl”设置该增益图符的增益为G=-C1,其中C1为循环次数。
如图3-4所示。
图3-5设置全局变量
该系统的各个图符的设置如表3-1所列。
表3-1各图符参数设置
3.3系统仿真
运行系统仿真,由图3-1中图符11、14所示的终值,实时显示接收到的每次循环的误比特率数据,如图3-6(a)、(b)所示。
图3-6(a)硬判决的误比特率
图3-6(b)软判决的误比特率
此时,在分析窗口能看到停止接收器的输出曲线和以时间为参数的BER(误比特率)曲线,如图3-7所示。
图3-7(a)硬判决时的BER曲线
图3-7(b)软判决时的BER曲线
图3-7(c)停止接收器的输出曲线
为了便于进行两种判决的对比,把它们的BER曲线重叠到同一个图中,如图3-8所示。
为了反映系统抗噪声性能,应得出两者的BER/SNR(误比特率-信噪比)曲线,如图3-9所示,结果表明,软判决的性能要优于硬判决。
这样就完成了BER/SNR曲线的绘制工作。
其中加入1W/HZ高斯噪声时图3-9曲线基本接近输入曲线图3-7(c),且已经出现变形失真的趋势,说明已达到系统抗噪声最大值,可以得出系统抗噪声性能为能承受功率为1W/HZ的噪声干扰。
图3-8硬判决和软判决的BER曲线比较
图3-9硬判决和软判决的BER/SNR曲线
3.4系统抗噪声性能分析
输入的高斯噪声的不同将导致输出的误比特率-信噪比(BER/SNR)曲线不同,下面通过系统仿真调试,找出产生最佳BER/SNR曲线的噪声范围,即系统的抗噪声性能。
首先输入功率较小的0.8W/HZ高斯噪声,得到BER/SNR曲线与出入曲线基本一直,如图3-10所示,图中只取了停止接收器的输出曲线、硬判决和软判决的BER曲线、硬判决和软判决的BER/SNR曲线。
从图中可看到0.8W/HZ得到BER/SNR曲线与出输入曲线基本一致。
图3-10输入噪声0.8W/HZ时仿真曲线
逐渐增加输入噪声的功率值观察仿真波形变化,输入0.9W/HZ噪声(仿真结果如图3-11)、2W/HZ噪声(仿真结果如图3-12所示),观察仿真波形。
图3-11输入噪声0.9W/HZ时仿真曲线
图3-11中可以看到BER/SNR曲线已经受到噪声影响,但曲线较平滑,下降不明显,仍在系统误差范围内。
图3-12输入噪声2W/HZ时仿真曲线
图3-12中可以看到BER/SNR曲受到噪声影响出现严重失真,且曲线很不平滑,棱角较大且开始随着噪声的变化而变化,波形接近高斯噪声波形。
通过上面不同功率输入噪声产生的仿真波形,可以得出系统的最大抗噪声功率在1W/HZ左右。
当系统工作在噪声干扰小于1W/HZ的条件下系统性能良好,编码译码过程正常;当系统工作在噪声干扰大于1W/HZ的条件下系统性能变差,编码译码过程出错率较高。
4结束语
经过努力,我终于将课程设计做完了。
在这次作业过程中,我遇到了许多困难,但在老师,同学的帮助和我的努力下,我顺利的完成了设计。
这次的课程设计让我受益非浅。
这次设计不仅让我掌握了用SystemView进行通信仿真的方法,也让我对卷积码的编译码过程有了更深入的理解。
再设计之前,要对卷积码的原理进行充分的掌握,仿真过程中设置的是(2,1,7)卷积码,信道中的噪声用高斯白噪声进行模拟。
设计过程中重要的是各个图符参数的设置,刚开始对这些参数都不了解,通过查询参考书和向同学请教,最后终于搞明白了。
然后就是在对仿真波形进行分析时,对各个波形的意义没搞清出,导致在进行系统抗噪声性能分析时出现了困难,我及时的查资料,才搞明白,对整个过程和工作原理有了更深入的了解。
在整个设计过程中,对我来说,收获最大的是方法和能力,那些分析和解决问题的方法与能力。
在整个过程中,我发现我的理论知识和实际应用脱节。
总体来说,我觉得做这种设计对我的帮助还是很大的,它需要我们将学过的相关知识都系统地联系起来,对学过的理论进行深入的理解,这就为我们以后进行相关的工作打下了基础。
5参考文献
[1]吴伟陵,续大我,庞沁华.通信原理.北京邮电大学出版社,2005
[2]王新梅、肖国镇.纠错码原理与方法[M].西安:
西安电子科技大学出版社,2001.
[3]曹志刚,钱亚生.现代通信原理.清华大学出版社,1992
[4]苗长云等主编.现代通信原理及应用.电子工业出版社,2005
[5]桑林,郝建军,刘丹.数字通信.北京邮电大学出版社,2002
[6]樊昌信,曹丽娜.通信原理.国防工业出版社,2008
[7]任友.RS码编译码算法研究及其硬件实现[D].成都:
电子科技大学,2003.
[8]张圣勤.MATLAB7.0实用教程机械工业出版社,2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卷积码 编码 及其 译码 实现