卷积码差错控制的系统仿真Word文档格式.docx
《卷积码差错控制的系统仿真Word文档格式.docx》由会员分享,可在线阅读,更多相关《卷积码差错控制的系统仿真Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
第二章原理
2.1卷积码
卷积码是1955年由爱里斯(Elias)提出的一种性能优越的信道编码。
他通常用(n,K,N)表示,他是把K个信息比特编成n个信息比特,但K和n通常很小,特别适宜于以串行方式传输信息,延时小。
N为编码约束长度,说明编码过程中互相约束的码段个数。
卷积码编码后的n个码元不仅与当前组的k个信息比特有关,而且与前N一1个输入组的信息比特有关。
编码过程中相互关联的码元有N×
n个。
R=k/n.是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数。
卷积码广泛应用在无线通信标准中,如GSM,CDMA2000,IS一95中。
2.2卷积码的算法
卷积码的编码描述方法有5种:
冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法。
图1.1卷积码编码器
由于可以通过将按时间移位的脉冲进行线性叠加,或者将输入序列和编码器的脉冲响应相卷积,来产生输出编码,因此这种编码器称为卷积编码器。
2.3卷积码的Viterbi译码
Vterbi译码是最大似然译码,译码的任务是在树状图或网格图中选择一条路径,计算出各支路与接收到的信息序列的距离。
从中选出距离最小的一条支路作为译码输出。
这样选出来的输出序列和发送端发出的序列最为相似。
换句话说,此序列出错的概率最低。
因此,Viterbi
译码是一种极大似然译码。
通常把可能的译码序列与接收序列之间的距离称为量度。
Viterbi译码分为硬判决Viterbi译码和软判Viterbi译码,他们之间惟一不同之处在于支路量度的计算方法。
硬判Viterbi译码以序列之间的汉明距离作为量度,适用于二进制对称信道(BSC);
而软判决Viterbi译码则是将信道输出的信号进行Q(>
2)电平量化,然后再进行Viterbi译码,这样充分利用了信道输出信号的信息,提高了译码的可靠性,是一种适用于离散无记忆信道(DMC)的译码方法。
下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。
为了能说明解码过程,这里给出该码的状态图,如图2.2所示:
图2.1(2,1,3)卷积码编码器图2.2(2,1,3)卷积码状态图
维特比译码需要利用图来说明移码过程。
根据卷积码画网格的方法,我们可以画出该码的网格图,如图2.3所示。
该图设输入信息数目L=5,所以画L+N=8个时间单位,图中分别标以0至7。
这里设编码器从a状态开始运作。
该网格图的每一条路径都对应着不同的输入信息序列。
由于所有可能输入信息序列共有2kL个,因而网格图中所有可能的路径也为2kL条。
这里节点a=00,b=01,c=10,d=11。
图2.3(2,1,3)卷积码网格图
由图2.3可以看出,序列m是发送方卷积编码器的输入序列,即为通信系统要传输的数字信号,码字u为序列m按相应参数卷积编码后得到的码字,也是信道中传输的信号,接收码字Z是u加上信道噪声后在接收方接收到的码字序列。
网格图的每个时间间隔内,标注的是各个分支上接收码元Z和编码器网格图相应各个分支上分支字之间的汉明距离即分支路径距离(BranchMetric)。
Viterbi译码算法正是利用了编码网格图的特殊结构,计算网格图上在时刻t到达各个状态的路径和接收序列之间的相似度(MeasureofSimilarity),即上面标注的分
支路径距离,经过“加一比一选”操作,去除不可能成为最大似然选择对象的网格图上的路径。
即如果两条路径到达同一状态,则选择具有最小路径距离的路径,这条路径被称为幸存路径(SurvivingPath)。
对所有的状态进行这样的路径操作,译码器不断在网格图上深入,根据最后得到的幸存路径实现最终判决。
由于较早的抛弃了不可能的路径,从而降低了译码器的复杂性。
由上述可见,译码器的运行是前向的、无反馈的。
他接收一段,计算一段,选择一段最可能的码段(分支),从而达到整个码序列是一个有最大似然函数的序列。
Viterbi算法的每一级的计算复杂度相同,因此他总的计算复杂度和存储量与传输序列长度L成正比,传输序列很长时,判决需要的长延时和相当大的存储量是我们无法承受的。
因些,实际应用中采用截短Viterbi算法,即不需要接收到所有序列才进行判决,当译码器接收并处理完固定r(r《L)个码段后,在接收r+1个码时,他将比较前r级的路径量度,然后从中选取最小者,由此得到与最小量度对应的幸存路径,将此路径对应的r个码段判决输出。
r称为回溯长度。
第三章Matlab中卷积码译码器的设计过程与仿真
3.1Matlab维特比译码器模块介绍
在Matlab软件的Simulink组件库中包含有的两种卷积码译码模块,即后验概率卷积译码器和维特比译码器。
如果卷积编码器的输入长度为k,输出信号的长度为n,则维特比译码器的输入好输出信号长度分别是n和k的整数倍[1]。
维特比译码器模块主要有以下几个参数:
1)Trellisstructure(Trellis结构)
与维特比一冒起相对应的卷积编码器的Trellis结构。
它既可以是Matlab工作区中的一个Trellis变量,也可以是通过poly2trellis()函数产生的Trellis结构。
2)DecisionType(判决类型)
维特比译码器德判决类型有3种:
Unquantized(非量化)、HardDecision(硬判决)和SoftDecision(软判决)。
ision(软判决),如表3.1所示。
表3.1维特比译码器的判决类型
判决类型
解码器的输出类型
说明
Unquantized
实数
+1表示逻辑0;
-1表示逻辑1
HardDecision
1,1
0表示逻辑0;
1表示逻辑1
SoftDecision
介于0和2b-1之间的整数,其中b是软判决位的个数
0表示具有取值为0的最大概率;
2b-1表示具有取值为1的最大概率;
介于两者之间的数表示取0和1的相对概率。
3)Numberofsoftdecisionbits(软判决的个数)
当Decisiontype设置为SoftDecision时,本参数有效,并且当它的取值为b时,维特比译码器的输出是介于0和2b-1之间的一个整数。
4)Tracebackdepth(反馈深度)
反馈深度D影响着维特比译码的精度,同时也影响着解码的时延(即在输出第一个解码数据之前输出的0的个数)。
5)Operationmode(操作模式)
维特比译码器有3种操作模式:
Continuous、Terminated或Truncated。
如果维特比译码器德输出信号是抽样信号,则应该把本参数设置为Continuous模式;
当输入信号时帧数据时,操作模式可以是Continuous、Terminated或Truncated。
对于Continuous模式,维特比译码器在每帧数据结束时保存译码器的内部状态,用于对下一帧实施解码;
在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全零状态,它对应于卷积编码器的Oneachframe复位方式;
Terminated模式适用于卷积编码器的每帧输入信号的末尾有足够多的零,能够把卷积编码器在完成一帧数据的编码之后把内部状态恢复为0[2]。
6)Enablerestinputport(启用复位信号端口)
当Operationmode参数设置为Continuous并且选中了本选项前面的复选框之后,维特比译码器增加一个输出信号端口Rst。
同时当Rst的输入信号不等于0时,维特比译码器复位到初始状态[3]。
3.2Matlab中卷积码维特比译码器的设计
1)仿真系统通信模型
图3.2仿真通信系统模型
其中,信源为随机输入的10000个二进制码元,信道为简单的加性高斯白噪声信道,调制方式为BPSK调制啪,译码方式采用了Viterbi硬判决译码。
适用于二进制对称信道(BSC)。
可见,本设计由3个子系统组成:
图3.3整体设计结构模块框图
2)信源模块:
信源模块由贝努利二进制序列产生器、卷积码编码器以及二进制相位调制3个模块组成,如图3.4所示
图3.4信源模块系统框图
各个模块的参数设置分别如表3.2~表3.4所示。
表3.2BernoulliBinaryGenerator(贝努利二进制序列产生器)的参数设置[4]
参数名称
参数值
模块类型
BernoulliBinaryGenerator
Probabilityofzero
0.7
Initialseed
25700
Sampletime
0.0001
Frame-basedoutput
Checked
Samplesperframe
10000
表3.3ConvolutionalEncoder(卷积码编码器)的参数设置
ConvolutionalEncoder
Trellis
Poly2trellis(7,[171133])
Reset
Oneachframe
表3.4BPSKModulatorBaseband(二进制相位调制模块)的参数设置
BPSKModulatorBaseband
Phaseoffset(rad)
Samplespersymbol
1
3)信道模块:
本设计使用相对较简单的一个加性高斯白噪声信道作为噪声信道,它在二进制相位调制信号中叠加高斯白噪声。
加性高斯白噪声模块的参数设置如表3.5[5]。
表3.5AWGNChannel(加性高斯白噪声模块)的参数设置
AWGNChannel
1230
Mode
Signaltonoiseratio(SNR)
SNR(dB)
SNR
Inputsignalpower(watts)
图3.6信道模块示意图
4)信宿模块:
信宿模块在接收到二进制相位调制信号后,首先由BPSKDemodulatorBaseband(二进制相位解调模块)对信号进行量化,得到硬判决量化信号,然后通过ViterbiDecoder(维特比译码器)对软判决信号实施译码。
译码输出信号和信源模块产生的原始信号输入到ErrorRateCalculator(误比特率统计模块)中,统计得到的数据一方面通过Display(显示模块)显示出来,另一方面通过一个Selector(选择器)把其中的第一个元素(即编码信号的误比特率)保存到工作区变量BitErrorRate中。
信宿模块如下图3.7所示。
图3.7信宿模块
各关键模块参数设置如表3.7、表3.8所示。
表3.7BPSKDemodulatorBaseband(二进制相位解调模块)的参数设置
BPSKDemodulatorBaseband
Decisiontype
Harddecision
Outputdatatype
Inheritviainternalrule
表3.7ViterbiDecoder(维特比译码器)的参数设置
ViterbiDecoder
Trellisstructure
poly2trellis(7,[171133])
Trecebackdepth
1000
Operationmode
Truncated
将此完整设计保存,命名为d.mdl。
第四章Matlab中卷积码译码器的误码率分析
编制M文件convolutionh.m,使d.mdl在不同的信噪比条件下重复执行前面建立的项目d.mdl。
然后绘制信道的信噪比与编码信号误比特率之间的关系曲线图。
M文件代码如下:
x=-10:
5;
%y表示信号的误比特率
y=x;
%准备一个空白图形
holdoff;
%重复运行d.mdl,检验不同条件下硬判决译码的性能
fori=1:
length(x)
%信道的信噪比依次取x中的元素
SNR=x(i);
%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
sim('
d'
);
%计算BitErrorRate的均值作为本次仿真的误比特率
y(i)=mean(BitErrorRate);
end
%绘制x和y的关系曲线图,纵坐标采用对数坐标
semilogy(x,y);
%保持已经绘制的图形
holdon
执行此M文件,得到如图4.1所示的关系曲线图,由此图可见,随着信道信噪比的提升,维特比译码所得结果的误比特率越低,信道的可信度越高,信噪比在大于-2时信道的误码率开始明显降低。
图4.1convolutionh.m运行结果
第五章总结
以往每做一次课程设计,感觉自己的收获总会不少,这次也不例外。
做课程设计是为了让我们对平时学习的理论知识与实际操作相结合,在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高,学会将知识应用于实际的方法,提高分析和解决问题的能力。
通过这次的卷积码差错控制的系统仿真设计与制作,让我了解了Matlab软件,了解了移动通信理念。
但是最后的成品却不一定与理想的不太一样,因为,在实际有着各种各样的条件制约着。
所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。
在做课程设计的过程中,我深深地感受到了自己所学到知识的有限,明白了只学好课本上的知识是不够的,要通过图书馆和互联网等各种渠道来扩充自己的知识。
在实验过程中我们曾经遇到过问题。
但是我们没有沮丧。
在老师的帮助下,进一步培养了我们一丝不苟的科学态度和不厌其烦的耐心。
在实验的过程中我们互相讨论互相合作,使得我们的实验得以顺利完成,体会到了合作的力量,感受到了1+1>2。
所有的这些心得会对我以后的学习和工作有帮助作用,忠心感谢马老师实验过程中的谆谆教导;
忠心感谢学校给我们提供这次实验机会。
参考文献
[1]RodgerE.Ziemer,RogerL.Peterson著.尹长川,郝建军,罗涛等译.数字通信基础(IntroductiontoDigitalCommunication).原书第2版.北京:
机械工业出版社,2005.1
[2]樊昌信,张甫翊,徐炳祥,吴成柯.通信原理.第5版.北京:
国防工业出版社,2007.1
[3]邓华.Matlab通信仿真及应用实例详解.北京:
人民邮电出版社,2003.9
[4]陈国通.数字通信.哈尔滨:
哈尔滨工业大学出版社,2002.4
[5]孙祥,徐流美,吴清.Matlab7.0基础教程.北京:
清华大学出版社,2005.5