团籍双管理 登记本不见了,是什么时候取得团籍都可以办的吗

长沙理工大学《通信原理》课程设计报告 郭林 学
院 计算机与通信工程
指导教师 课程成绩
日 基于Matlab的卷积码译码器的设计与仿真 学生姓名:郭
指导老师:** 摘
本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真,并进行误码率分析。在课程设计中,系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R),最后仿真详单与理论分析一致。 关键词
课程设计;卷积码译码器;Matlab;Simulink;设计与仿真1 引
言本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。1.1 课程设计目的卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。1 1.2 课程设计的原理卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决);另一种是概率译码(软判决),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差[2]。当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。2 维特比译码原理采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图2.2所2 b 图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。 节点号 1234567a bc d 图2.3
(2,1,3)卷积码网格图设输入编码器的信息序列为(),则由编码器对应输出的序列为Y=(1100),编码器的状态转移路线为abdcbdca。若收到的序列R=(1100),对照网格图来说明维特比译码的方法。由于该卷积码的约束长度为6位,因此先选择接收序列的前6位序列R1=(010101)同到达第3时刻的可能的8个码序列(即8条路径)进行比较,并计算出码距。该例中到达第3时刻a点的路径序列是(000000)和(111011),他们与R13
的距离分别为3和4;到达第3时刻b点的路径序列是(000011)和(111000),他们与R1的距离分别为3和4;到达第3时刻c点的路径序列是(001110)和(110101),他们与R1的距离分别为4和1;到达第3时刻d点的路径序列是(001101)和(110110),他们与R1的距离分别为2和3。上述每个节点都保留码距较小的路径作为幸存路径,所以幸存路径码序列是(000000)、(000011)、(1101001)和(001101),如图2.4所示。用于上面类似的方法可以得到第4、5、6、7时刻的幸存路径。节点号 123a b c d 图2.4
维特比译码第3时刻幸存路径需要指出的是,对于某个节点,如果比较两条路径与接收序列的累计码距值相等时,则可以任意选者一条路径作为幸存路径,吃时不会影响最终的译码结果。在码的终了时刻a状态,得到一条幸存路径。如果2.5所示。由此可看到译码器节点号 1234567 8a b c d 图2.5
第8时刻幸存路径4
输出是R’=(1100),即可变换成序列(),恢复了发端原始信息。比较R’和R序列,可以看到在译码过程中已纠正了在码序列第1和第7位上的差错。当然如果差错出现太频繁,以致超出卷积码的纠错能力,还是会发生纠误的。3 Matlab中卷积码译码器的设计与仿真3.1 Matlab维特比译码器模块介绍在Matlab软件的Simulink组件库中包含有的两种卷积码译码模块,即后验概率卷积译码器和维特比译码器。图3.1,图3.2所示是维特比译码器参数设置对话框和模块,它通过维特比译码还原出二进制信号序列。 图3.1
维特比译码器参数设置5 图3.2
维特比译码器模块如果卷积编码器的输入长度为k,输出信号的长度为n,则维特比译码器的输入好输出信号长度分别是n和k的整数倍。维特比译码器模块主要有以下几个参数:(1)Trellis structure(Trellis结构)与维特比一冒起相对应的卷积编码器的Trellis结构。它既可以是Matlab工作区中的一个Trellis变量,也可以是通过poly2trellis()函数产生的Trellis结构。(2)Decision Type(判决类型)维特比译码器德判决类型有3种:Unquantized(非量化)、Hard Decision(硬判决)和Soft Decision(软判决),如表3.1所示。表3.1维特比译码器的判决类型(3)Number of soft decision bits(软判决的个数)当Decision type设置为Soft Decision时,本参数有效,并且当它的取值为b时,维特比译码器的输出是介于0和2b-1之间的一个整数。(4)Traceback depth(反馈深度)反馈深度D影响着维特比译码的精度,同时也影响着解码的时延(即在输出第一个解码数据之前输出的0的个数)。(5)Operation mode(操作模式)维特比译码器有3种操作模式:Continuous、Terminated或Truncated。如果维特比译码器德输出信号是抽样信号,则应该把本参数设置为6 Continuous模式;当输入信号时帧数据时,操作模式可以是Continuous、Terminated或Truncated。对于Continuous模式,维特比译码器在每帧数据结束时保存译码器的内部状态,用于对下一帧实施解码;在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全零状态,它对应于卷积编码器的On each frame复位方式;Terminated模式适用于卷积编码器的每帧输入信号的末尾有足够多的零,能够把卷积编码器在完成一帧数据的编码之后把内部状态恢复为0。(6)Enable rest input port(启用复位信号端口)当Operation mode参数设置为Continuous并且选中了本选项前面的复选框之后,维特比译码器增加一个输出信号端口Rst。同时当Rst的输入信号不等于0时,维特比译码器复位到初始状态。[3]3.2 Matlab中卷积码维特比译码器的设计整个设计的结构框图如图3.3信源模块信宿模块 图3.3 整体设计结构模块框图
可见,本设计由3个子系统组成:信源模块对随机二进制信号进行卷积码和二进制相位调制,输出基带调制信号;信道模块是一个有噪声信道;信宿模块对调制信号进行软判决译码,得到原始信息序列,并且计算调制信号的误码率。信源模块由贝努利二进制序列产生器、卷积码编码器以及二进制相位调制3个模块组成,如图3.4所示 7 图3.4 信源模块系统框图 各个模块的参数设置分别如表3.2~表3.4所示。 表3.3 Convolutional Encoder(卷积码编码器)的参数设置表3.4 BPSK Modulator Baseband(二进制相位调制模块)的参数设置8 本设计使用相对较简单的一个加性高斯白噪声信道作为噪声信道,它在二进制相位调制信号中叠加高斯白噪声。加性高斯白噪声模块的参数设置如表3.5。 表3.5 AWGN Channel(加性高斯白噪声模块)的参数设置 信道模块如下图3.6所示。 图3.6 信道模块示意图 信宿模块在接收到二进制相位调制信号后,首先由BPSK Demodulator Baseband (二进制相位解调模块)对信号进行量化,得到硬判决量化信号,然后通9 过Viterbi Decoder(维特比译码器)对软判决信号实施译码。译码输出信号和信源模块产生的原始信号输入到Error Rate Calculator(误比特率统计模块)中,统计得到的数据一方面通过Display(显示模块)显示出来,另一方面通过一个Selector(选择器)把其中的第一个元素(即编码信号的误比特率)保存到工作区变量BitErrorRate中。信宿模块如下图3.7所示。 图3.7 信宿模块Sink 各关键模块参数设置如表3.7、表3.8所示。 表3.7 BPSK Demodulator Baseband(二进制相位解调模块)的参数设置 表3.7 Viterbi Decoder(维特比译码器)的参数设置10 将此完整设计保存,命名为convh.mdl。3.3简化维特比译码器的仿真为了验证译码模块的正确性,便让其进行最简模式运行,为此,临时设计一个简化信号系统,关闭信道噪声,不进行二进制相位的调制与解调,去掉误比特率统计模块。为了能看到输入二进制码和译码输出二进制码,增加了两个To Workspace(结果输入到工作区模块),整个系统模块框图如图3.8所示。 图3.8 简化译码模块框图同时,为了便于观察,将Bernoulli Binary Generator(贝努利二进制序列产生 器)的参数设置为如表3.8所示,以产生简单的15位二进制随机码,也将Viterbi Decoder的Trceback depth值改为5。将To Workspace1模块和To Workspace模块的变量名分别设置为pdata和data。 表3.8 简化译码模块的Bernoulli Binary Generator的参数设置11 运行仿真(),在matlab的命令窗口中输入pdata和data分别得到相应的二进制序列。对所得序列分别截图,可得如图3.9所示结果。可见,译码器能够正确进行译码,所设计简化译码器正确,因而,从理论上可推导,原设计正确。 图3.9 简化译码器仿真结果通过对convh.mdl文件进行仿真,证明设计正确,但因所得二进制码太多,此处便不进行截图证明。12
4 Matlab中卷积码译码器的误码率分析编制M文件convolutionh.m,使convh.mdl在不同的信噪比条件下重复执行前面建立的项目convh.mdl。然后绘制信道的信噪比与编码信号误比特率之间的关系曲线图。M文件代码如下: %x表示信噪比x=-10:5;%y表示信号的误比特率y=x;%准备一个空白图形%重复运行convh.mdl,检验不同条件下硬判决译码的性能for i=1:length(x)%信道的信噪比依次取x中的元素SNR=x(i);%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
sim('convh');%计算BitErrorRate的均值作为本次仿真的误比特率y(i)=mean(BitErrorRate);end%绘制x和y的关系曲线图,纵坐标采用对数坐标semilogy(x,y);%保持已经绘制的图形hold on执行此M文件,得到如图4.1所示的关系曲线图,由此图可见,随着信道信噪比的提升,维特比译码所得结果的误比特率越低,信道的可信度越高,信噪比在大于-2时信道的误码率开始明显降低。 13 图4.1 convolutionh.m运行结果5 结束语此课程设计对整个通信系统包含的编码、传输和译码都进行了设计与仿真,从这些过程中我们看到了通信系统的基本工作原理。通过整个卷积码系统的设计与仿真,使我们加深了对卷积码的理解,掌握维特比译码的基本思路,知道如何进行误码率分析从而选者合适的信道传输信号,更重要的是学会了使用Matlab作为学习工具来对我们的通信系统进行设计和仿真等操作,这对我们以后的学习和工作有着重要意义。14 参考文献[1] Rodger E.Ziemer,Roger L.Peterson 著. 尹长川,郝建军,罗涛 等 译. 数字通信基础 (Introduction to Digital Communication). 原书第2版. 北京:机械工业出版社,2005.1[2] 樊昌信,张甫翊,徐炳祥,吴成柯. 通信原理.第5版. 北京:国防工业出版社,2007.1[3] 邓华. Matlab通信仿真及应用实例详解. 北京:人民邮电出版社,2003.9[4]陈国通. 数字通信. 哈尔滨:哈尔滨工业大学出版社,2002.4[5]孙祥,徐流美,吴清. Matlab7.0基础教程. 北京:清华大学出版社,2005.515 附录:convh.mdl详图 16 附录2:M文件convolutionh.m程序清单 %程序名称:convolutionh.m%程序功能:依次取不同的信噪比,重复对convh.mdl进行仿真,检验译码性能。 %程序作者:郭林%最后修改日期:%x表示信噪比x=-10:5;%y表示信号的误比特率y=x;%准备一个空白图形%重复运行convh.mdl,检验不同条件下硬判决译码的性能for i=1:length(x)%信道的信噪比依次取x中的元素SNR=x(i);%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
sim('convh');%计算BitErrorRate的均值作为本次仿真的误比特率y(i)=mean(BitErrorRate);end%绘制x和y的关系曲线图,纵坐标采用对数坐标semilogy(x,y);%保持已经绘制的图形 hold on 17
欢迎转载:
推荐:    帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:3&分页:&发信人: bingmayong (alex), 信区: Commun
标&&题: 求助,卷积码的软判决维特比译码的matlab仿真!
发信站: BBS 水木清华站 (Tue Dec&&7 08:53:33 2004), 站内 &&&& 用matlab作卷积码的软判决维特比译码仿真,如果用它的函数vitdec,设定为软判决,就要使用一个参数nsdec,按照教科书上的原理,这应该是作信道量化,但是信道量化究竟应该怎么做呢,量化区间如何设定呢?而且如果用matlab comm toolbox的函数,输入译码函数vitdec的码字在解调的时候已经都判决过了,信道量化怎么实现呢?例如在matlab的帮助里给的例子,发送端卷积编码之后作16QAM调制,接收端在接收的时候,通过zsym = qamdemod(yrx,M),已经得到了解调后的符号,还怎么量化呢?哪位大侠给指点一下,最好能介绍一下那本书或文章讲得比较具体,给一个仿真的例子参考一下,谢谢.
-- && ※ 来源:·BBS 水木清华站 ·[FROM: 202.117.167.*]
&Canon XTi发信人: travelman (失落的法器), 信区: Commun
标&&题: Re: 求助,卷积码的软判决维特比译码的matlab仿真!
发信站: BBS 水木清华站 (Tue Dec&&7 09:52:56 2004), 站内 && 区间大小是根据喜好确定的吧,越大量化就越准确
如果要进行软译码,那么解调器输出也应该是软的,
即概率信息,可能需要使用软解调算法 && 【 在 bingmayong (alex) 的大作中提到: 】
: 用matlab作卷积码的软判决维特比译码仿真,如果用它的函数vitdec,设定为软判决,就要使用一个参数nsdec,按照教科书上的原理,这应该是作信道量化,但是信道量化究竟应该怎么做呢,量化区间如何设定呢?而且如果用matlab comm toolbox的函数,输入译码函数vitdec的码字
&&&& -- && ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.201.229]
魔鬼骑士发信人: chinaarmy (魔鬼骑士), 信区: Commun
标&&题: Re: 求助,卷积码的软判决维特比译码的matlab仿真!
发信站: BBS 水木清华站 (Tue Dec&&7 13:56:09 2004), 站内 && 我觉得解调后的符号应该不是数字信号,而是模拟信号。对于它的量化就相当于幅度离散化。软判决译码采取欧几里德距离,对于解调后的符号进行量化,欧氏距离运算进而解码。
记得好像在&&现代通信系统--使用Matlab&&上有一个例子。刘树棠翻译的 && 【 在 bingmayong (alex) 的大作中提到: 】
: 用matlab作卷积码的软判决维特比译码仿真,如果用它的函数vitdec,设定为软判决,就要使用一个参数nsdec,按照教科书上的原理,这应该是作信道量化,但是信道量化究竟应该怎么做呢,量化区间如何设定呢?而且如果用matlab comm toolbox的函数,输入译码函数vitdec的码字在解调的时候已经都判决过了,信道量化怎么实现呢?例如在matlab的帮助里给的例子,发送端卷积编码之后作16QAM调制,接收端在接收的时候,通过zsym = qamdemod(yrx,M),已经得到了解调后的符号,还怎么量化呢?哪位大侠给指点一下,最好能介绍一下那本书或文章讲得比: 较具体,给一个仿真的例子参考一下,谢谢.
&&&&&& -- && ※ 来源:·BBS 水木清华站 ·[FROM: 202.112.141.*]
文章数:3&分页:
抽奖到手软!将狂欢进行到底!viterbi 软判决译码方式,2PSK的维特比 ,MATLAB仿真
238万源代码下载-
&文件名称: viterbi
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 128
&&提 供 者:
&详细说明:软判决译码方式,2PSK的维特比译码,MATLAB仿真-Soft-decision decoding methods, 2PSK Viterbi Decoding
文件列表(日期:~)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&[]:一般,勉强可用
&近期下载过的用户:
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 实现了卷积码的viterbi译码,软判决和硬判决均可实现,是从英文教学书上抄下来的。
&[] - Convolutional Encoder viterbi Decoder Simulation in MAtlab
&[] - 卷积编码程序,viterbi译码程序.很好啊
&[] - 卷积码是一种有记忆的编码,这里提供了卷积码的维特比译码函数
&[] - 本程序比较了维特比译码三种判决类型的误码率曲线
&[] - 软输出维特比译码算法的C语言详细实现,程序效率高,比MATLAB快多了.
&[] - 用matlab写viterbi译码算法,老外写的现代通信系统书上的
&[] - Its a hard decision viterbi decoder that i built for my final year project.it decodes the convolutionally encoded data of code rate 1/2 having constra
&[] - UWB viterbi decode matlab代码;
包括自己实现的matlat viterbi 译码和调用matlab内部模块的代码;
分硬判决和软判决两种情况;
严格按照MB-OFDM UWB协议实现;软判决维特比译码算法的Simulink仿真实现_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。
软判决维特比译码算法的Simulink仿真实现
||文档简介
中国最大最早的专业内容网站|
总评分0.0|
&&通​过​研​究​软​判​决​维​特​比​译​码​算​法​的​基​本​原​理​,​提​出​了​一​种​基​于​S​i​m​u​l​i​n​k​的​软​判​决​维​特​比​译​码​算​法​建​模​仿​真​方​法​。​为​了​验​证​该​算​法​模​型​的​正​确​性​,​建​立​了​基​于​S​i​m​u​l​i​n​k​的​具​有​卷​积​编​码​、​软​判​决​维​特​比​译​码​完​整​的​通​信​系​统​仿​真​模​型​,​通​过​仿​真​所​得​到​的​误​码​率​与​软​判​决​理​论​误​码​率​的​对​比​证​明​了​所​建​立​的​仿​真​系​统​的​正​确​性​。​最​后​,​为​了​比​较​硬​判​决​译​码​算​法​与​软​判​决​译​码​算​法​的​性​能​,​建​立​了​硬​判​决​维​特​比​译
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 团员年度团籍注册制度 的文章

 

随机推荐