卷积码循环码差错控制仿真.docx
《卷积码循环码差错控制仿真.docx》由会员分享,可在线阅读,更多相关《卷积码循环码差错控制仿真.docx(16页珍藏版)》请在冰豆网上搜索。
![卷积码循环码差错控制仿真.docx](https://file1.bdocx.com/fileroot1/2023-5/18/adcdf773-630d-4dd1-bc7a-e42b058842c7/adcdf773-630d-4dd1-bc7a-e42b058842c71.gif)
卷积码循环码差错控制仿真
移动通信方向课程设计
卷积码差错控制系统仿真
学生姓名
学号
所在学院
通信工程学院
专业名称
移动通信
班级
移动通信方向2班
指导教师
成绩
二○一五年五月
课程设计任务书
学生姓名
学生学号
学生专业
通信工程
学生班级
移动通信2班
指导教师
职称
发题日期
2015年3月27日
完成日期
2015年6月10日
设计题目
循环码、卷积码差错控制仿真
设计目的:
1.帮助学生更好地理解移动通信系统,掌握各种移动通信系统的模型
2.帮助学生熟悉常用的通信系统仿真平台,学习仿真模型的设计,掌握通信系统的仿真方法,学会利用仿真软件对系统性能进行评价;
具体任务及要求:
1.信源部分的数据源是随机的二进制序列,随机的二进制序列要经过卷积编码,经过编码的数据要进行调制。
2.信道部分对调制后的信号进行加噪。
3.信宿部分完成信号的解调和译码(维特比译码)。
要求:
1.要有详细的设计过程。
即整个系统的仿真设计的选择,功能模块的设计过程和参数的选择,程序的调试过程等。
2.整个系统模型的仿真、调试结果。
课程设计进度安排:
序号
内容安排
时间
1
确定课程设计题目
3.28
2
与导师讨论确定课程设计大纲
4.10
3
接受导师指导修改初稿
5.1
4
最终确定课程设计
6.8
课程设计参考文献:
[1]邓华等《MATLAB通信仿真及应用实例详解》人民邮电出版社2004
[2]张威编《MATLAB基础与编程入门》西安电子科技大学出版社2008
[3]邓华《Matlab通信仿真及应用实例详解》北京人民邮电出版社2003
[4]主编李贺冰《SIMULINK通信仿真教程》国防工业出版社2006
[5]孙祥,徐流美,吴清《Matlab7.0基础教程》北京清华大学出版社2005
指导教
师签字
院长审核签字
卷积码差错控制系统的仿真
内容摘要:
卷积码(Convolutioncode)是由伊利亚斯(p.Elias)发明的一种非分组码。
在前向纠错系统中,卷积码在实际应用中的性能优于分组码,并且运算较简单。
维特比译码算法基本原理是:
将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。
关键词:
卷积码 维特比译码算法
Convolutioncodeerrorcontrolsystemsimulation
Abstract:
Convolutioncode(convolutionalcode)isbyilias(p.Elias)inventedakindofblockcode.Intheforwarderrorcorrectionsystem,convolutioncodeintheactualapplicationperformanceisbetterthanthatofblockcodes,andtheoperationisrelativelysimple.
Viterbidecodingalgorithmbasicprincipleis:
willthereceivedsignalsequenceandallpossiblesignalsequencecomparison,choosethehammingdistanceisthesmallestsequencethatcurrentlysendingsequence.
Keywords:
ConvolutioncodeViterbidecodingalgorithm
卷积码差错控制系统的仿真
1前言
1.1题目
卷积码差错控制系统的仿真
1.2课程设计的目的
移动通信也是一门实践性非常强的课程,实验教学在整个课程的教学中占据了非常重要的地位。
在学生学习了现代通信原理、数字信号处理(DSP技术)等课程后,学生已经具有了一定的理论基础和实验技能,在此基础上本实验课程开设的主要作用和目的在于:
(a)帮助学生更好地理解移动通信系统,掌握各种移动通信系统的模型
(b)帮助学生熟悉常用的通信系统仿真平台,学习仿真模型的设计,掌握通信系统的仿真方法,学会利用仿真软件对系统性能进行评价;
1.3课程设计的主要内容和要求
1.3.1课程设计的主要内容:
(a)系统包括信源部分、信道部分和信宿部分。
(b)信源部分的数据源是随机的二进制序列,随机的二进制序列要经过卷积编码,经过编码的数据要进行调制。
(子系统实现)
(c)信道部分对调制后的信号进行加噪。
(d)信宿部分完成信号的解调和译码(维特比译码)。
(子系统实现)
(e)对不同编码式、不同信噪比下维特比译码的误比特率并画出图形。
1.3.2课程设计的要求:
(a)要有详细的设计过程。
即整个系统的仿真设计的选择,功能模块的设计过程和参数的选择,程序的调试过程等。
(b)整个系统模型的仿真、调试结果。
2课程设计原理
2
2.1卷积码的定义
卷积码(convolutionalcode)是由伊利亚斯(p.Elias)发明的一种非分组码。
在前向纠错系统中,卷积码在实际应用中的性能优于分组码,并且运算较简单。
2.2卷积码的编码原理
卷积码在编码时将k比特的信息段编成n个比特的码组,监督码元不仅和当前的k比特信息段有关,而且还同前面m=(N-1)个信息段有关。
通常将N称为编码约束长度,将nN称为编码约束长度。
一般来说,卷积码中k和n的值是比较小的整数。
将卷积码记作(n,k,N)。
2.3卷积码的译码过程
代数解码:
利用编码本身的代数结构进行解码,不考虑信道的统计特性。
大数逻辑解码,又称门限解码,是卷积码代数解码的最主要一种方法,它也可以应用于循环码的解码。
大数逻辑解码对于约束长度较短的卷积码最为有效,而且设备较简单。
概率解码:
又称最大似然解码。
它基于信道的统计特性和卷积码的特点进行计算。
针对无记忆信道提出的序贯解码就是概率解码方法之一。
另一种概率解码方法是维特比算法。
当码的约束长度较短时,它比序贯解码算法的效率更高、速度更快,目前得到广泛的应用。
2.4维特比译码
2.4.1维特比译码原理
维特比译码算法基本原理是:
将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。
从时间单元j=m开始,计算进入每个状态的路径的汉明距离。
存储每个状态的路径(即幸存路径)以及最小汉明距离。
这里存储的路径通常是该状态所对应的幸存路径上的前一状态值。
j增加1。
计算进入每一个状态所有路径的汉明距离。
这个汉明距离是进入该状态的分支度量加上在与该分支相连的前一步的幸存路径的度量值。
对于每个状态,共有
个这样的度量值,从中选出并存储最优路径(汉明距离最小的路径)并保存最小汉明距离。
如果j在整个过程中,这样就可以得到一条汉明距离最小的最优路径。
2.4.2维特比译码过程
维特比译码的前提是建立合适的网格图,以便寻找最优路径。
或者可以认为,维特比译码的关键是寻找最优路径。
在实际的译码操作过程中,怎样建立网格以及建立网格后的路径的选择是译码的关键问题。
如所示,图2-1为(2,1,4)码的状态转移图,图2-2为(2,1,4)码的网格图。
注意:
由于D1D2D3表示的顺序不同,所产生的网格图和状态转移图也不同,并且译码过程是根据网格图实现,所以本文所以涉及的维特比译码方法具有一定的特殊性,但是整体过程还是具有研究价值。
图2-1(2,1,4)码的网格图
根据图2-2所示的(2,1,4)码的网格图,可以发现D1D2D3决定了从000—111的8个状态。
并且进一步观察网格图可以发现从状态000-011是由输入的信息位0产生,从状态100-111是由输入的信息位1产生。
此外,以001状态为例,可以看出状态001是由状态010和状态011产生。
由上面可知,假设当前状态为i,那么在前一时刻中,产生状态i的两个状态是2*i和2*i+1。
根据i是否小于4,来判断状态i是由信息位0还是信息位1生成。
进一步可以推知指向状态i的前一时刻的两个状态生成的码组,这样便于以判断汉明距离。
图2-2最优路径图
网格图建立之后,根据接收码组和网格图中生成的码组比较,判断最优路径。
假设某一时刻的状态i,首先判断前一时刻所有状态中,是哪两个状态指向当前状态i;其次,根据这两个指向当前状态i的状态生成的码组和前一时刻接收的码组比较,保留汉明距离最小的那条路径以及到达状态i时的最小汉明距离。
下一时刻,同样操作,但是保留的最小汉明距离是前面最小汉明距离累加。
在所有的接收码组处理完之后,会得到一组汉明距离以及所对应的最优路径。
比较选择出最小的汉明距离,那么该最小汉明距离所对应的路径即为最优路径。
如图2-2所示,其中红线表示计算得到的最优路径。
观察其变化规律,可以发现,假设i时刻的状态和第(i+1)时刻比较得知,若第(i+1)时刻小于第i时刻,那么对应代表实际信息中0;若大于,则为1。
然后逐次比较译出信息值。
3仿真过程
3
3.1仿真模拟框图
图3-1总电路框图
说明:
信源模块对随机二进制信号进行卷积码和二进制相位调制,输出基带调制信号;信道模块是一个有噪声信道;信宿模块对调制信号进行软判决译码,得到原始信息序列,并且计算调制信号的误码率。
图3-2信源模块电路框图
图3-3信宿模块电路框图
3.2各部件的配置
3.2.1BernoulliBinaryGenerator伯努利发生器(贝努利二进制序列产生器)的参数设置
图3-4伯努利发生器参数设置
3.2.2ConvolutionalEncoder(卷积码编码器)的参数设置
图3-5卷积码编码器参数设置
3.2.3BPSKModulatorBaseband(二进制相位调制模块)的参数设置
图3-6二进制相位调制模块参数设置
3.2.4AWGNChannel(加性高斯白噪声模块)的参数设置
图3-7加性高斯白噪声模块参数设置
3.2.5BPSKDemodulatorBaseband(二进制相位解调模块)的参数设置
图3-8二进制相位解调模块参数设置
3.2.6ViterbiDecoder(维特比译码器)的参数设置
图3-9维特比译码器参数设置
3.2.7ErrorRateCalculation(误码率发生器)的参数设置
图3-10误码率发生器参数设置
3.2.8Display(显示输出模块)的参数设置
图3-11显示输出模块参数设置
3.2.9Selector(选择模块)的参数设置
图3-12Selector(选择模块)的参数设置
3.2.10ToWorkspace(工作空间模块)的参数设置
、
图3-13ToWorkspace参数设置
4系统运行代码
1
1.1系统运行源代码
x=-10:
5;
%y表示信号的误比特率,它的长度与x相同
y=x;
%准备一空白图形
holdoff;
%定义不同卷及方式时的Trellis结构
A=[poly2trellis(9,[557663711]),poly2trellis(7,[171133])];
%不同卷积方式、信噪比情况下重复运行untitledl,检验不同条件下硬判决译码的性能
forj=1:
2
%卷积方式分别取1/3卷积和1/2卷积
STRUCTURE=A(j);
%新到的信噪比依次取x中的元素
fori=1:
length(x)
SNR=x(i);
%运行仿真程序,误比特率保持在工作区变量BitErrorRate中
sim('untitled');
%计算BitErrorRate的均值作为本次仿真的误比特率
y(i)=mean(xl);
end
%绘制x和y的关系曲线图,纵坐标采用对数坐标
semilogy(x,y);
holdon;
end
gridon;
5结束语
执行上述文件,得到的关系曲线图,随着信道信噪比的提升,维特比译码所得结果的误比特率越低,信道的可信度越高,信道的误码率开始明显降低。
图4-1误码率
参考文献
[1]邓华:
MATLAB通信仿真及应用实例详解,人民邮电出版社,2004,P75-P87,P110-P125
[2]张威编:
MATLAB基础与编程入门,西安电子科技大学出版社,2008,P10-P25
[3]邓华:
Matlab通信仿真及应用实例详解,北京人民邮电出版社,2003,P76-P89
[4]李贺冰:
SIMULINK通信仿真教程,国防工业出版社,2006,P75-P87
[5]孙祥,徐流美,吴清:
Matlab7.0基础教程,北京清华大学出版社2005,P110-P120