1.引言

卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位寄存器构成的有限状态的有记忆系统,通常称它为时序网络。编码器的整体约束长度为v,是所有k个移位寄存器的长度之和。具有这样的编码器的卷积码称作[n,k,v]卷积码。对于一个(n,1,v)编码器,约束长度v等于存储级数m.卷积码是由k个信息比特编码成n(n>k)比特的码组,编码出的n比特码组值不仅与当前码字中的k个信息比特值有关,而且与其前面v个码组中的v*k个信息比特值有关。

卷积码有三种译码方式:序列译码、门限译码和概率译码。其中,概率译码根据最大似然译码原理在所有可能路径中求取与接收路径最相似的一条路径,具有最佳的纠错性能,维特比译码是概率译码中极重要的一种方式。

序列译码和门限译码则不一定能找出与接收路径最相似的一条路径。不同于维特比译码,门限译码与序列译码所需的计算量是可变的且对于给定信息分组的最终判决仅仅基于(m+1)个接收分组,而不是基于整个接收序列。

与维特比译码所使用的对数似然量度不同,序列译码所使用的量度为Fano量度。在接收序列受扰严重的情况下,序列译码的计算量大于维特比译码所需的固定计算量,虽然序列译码要求的平均计算次数通常小于维特比译码。在采用并行处理的情况下,维特比译码的速度会优于序列译码。在同样码率和存储级数的条件下,门限译码的性能比维特比译码低大约3dB.

维特比译码的数据输出方式有硬判决及软判决两种方式,本文选取生成多项式为561,753的(2,1,8)卷积码对硬判决的性能进行分析,并依据维特比译码的原理以及卷积码的特性,对卷积码编码和维特比译码过程在加性高斯白噪声(AWGN)信道下进行仿真,并且根据仿真结果对维特比译码(硬判决)的结果进行分析。由于卷积码的生成可以看做一个马尔科夫过程,因此,不同状态间的转移概率对描述这个过程有极关键的作用。本文则基于MATLAB对不同状态间的转移概率进行求解,从而更准确地分析维特比译码的性能。仿真结果表明卷积码抗突发错误的能力不强,生成多项式为561,753的(2,1,8)卷积码在信噪比大于1dB时,编码增益体现明显。在信噪比低于-1dB时,编码增益得不到体现。

2.卷积码编码译码原理

卷积码编码通过输入序列与生成多项式的每一行做卷积,每次输入k比特,输出n个比特。在卷积码编码器中,每(m+1)个比特构成译码器中的一个状态。假设在一个二进制输入的离散无记忆信道上,有一个长度为k*L的信息序列u=(u0,u1,…,uL-1)被编码成为长为T=n(L+m)的码字c=(c0,c1,…,cT-1),接收到的序列为r=(r0,r1,…,rT-1)。维特比译码使用对数量度来衡量幸存路径所编成的码字与接收序列的相似度,量度越大,说明该幸存路径是信息序列的概率越大。维特比译码选取那条量度最大的幸存路径作为译码结果。

由于对离散无记忆信道:

其中P(rl|vl)是信道转移概率;logP(r|v)称为和路径v相关的量度,以M(r|v)表示;logP(rl|vl)称为分支量度。

维特比译码的原理则是找出一条路径,使得该路径的累积量度最大。在译码过程中,如果在某一节点上发现某路径已不可能是需要找到的那条路径,就将此路径去掉,不保存在幸存路径之中。然后再在剩下的幸存路径中选择译码路径,直到输入所有译码器序列。理论上,搜索路径需要无限长度,而实际应用中考虑到试验因素搜索长度有限,搜索长度对译码性能有一定的影响,搜索路径的长度一般为约束长度的四倍到五倍。维特比译码可以被总结成如下步骤:

第一步:在时间单元t=m开始,计算进入每一状态的单个路径的部分量度,并存储每一状态下的路径(幸存的)及其量度。

第二步:t增加1.将进入每一状态的分支量度与前一时间单元有关的幸存路径的量度相加,计算进入该状态的所有2k路径的部分量度;对每一状态,比较进入该状态的所有2k路径的量度,选择具有最大量度的路径(幸存路径),存储该路径及其量度,并删除其他所有路径。

第三步:如果t< L + m , 重复步骤二;否则停止。

维特比译码性能分析:

假设一个二进制序列经BPSK调制后通过加性高斯白噪声(AWGN)信道后的误比特率为e,因为本文采用的生成多项式为561,753的(2,1,8)卷积码编码器,则有9*2=18个比特与当前输出比特相关。由于该卷积码的自由距为12,因此如果一个比特出现译码错误,则留下的幸存路径(也即最大似然路径)经编码后的序列会与正确路径的序列相差12比特,并且会对其后18个比特产生影响。

所以,维特比译码抗突发错误能力不强,而实际应用时往往在卷积编码后加入交织编码,使突发错误离散化。因为卷积码的马尔科夫性,可以推测出:当不编码时,若误比特率足够高,则编码后序列的误比特率会比不编码更高。而仿真结果表明,当未编码序列的误比特率达到8*10-2,随着未编码序列的误比特率升高,编码后序列的误比特率会迅速升高。而在当未编码序列的误比特率小于5*10-2时,编码后序列的误比特率升高得较为缓慢且编码增益得到明显体现。

3.卷积码编码及维特比译码仿真

自编函数对维特比译码仿真:

本文应用MATLAB对卷积码编码器以及维特比译码器进行仿真。由于卷积码的马尔科夫性,转移概率是其中一个重要特性。显然,如果其中一个比特译码错误,后面N个比特的误比特率都会因此受到影响,所以需要求出一步转移概率、两步转移概率…N步转移概率。由于本文采用的是(2,1,8)卷积码,N=8.

基于MATLAB首先编写出模拟卷积码编码和维特比译码的函数,再分类讨论。在一定误比特率情况下,当影响第L个比特译码的2*9个比特中错n(n=1,2,3…,18)个时,求得第(L+N)比特译码错误的转移概率。假设BPSK调制的误码率为e;在影响第L比特译码结果的18个比特中有n个误比特时,假设第(L+h)个比特经译码后的误比特率为P(h)n.

由于加性高斯白噪声信道是非记忆信道,则译码后序列的误比特率近似等于:

其中Pr(n)是18个比特中有n比特错的概率,当误比特率为e,,N=18.

创建m文件,函数有三个输入:生成多项式G、接收到的信道输出误比特率BER、影响第x比特译码结果的18比特中的误比特数n,输出则是P(h)n.这里h的值为1~8.对于信道输出序列的误码率为0.1时进行分析,基于MATLAB仿真得到的所有P(h)n如图1所示。

由图1中的结果可以算出当接收到的信道输出序列的误码率为0.1时,经维特比译码后的误比特率约为0.1071.

而且,当信道输出中连续18比特的误比特数大于3时,第(x+h)个比特的误比特率远高于平均误比特率,这表明维特比译码抗突发错误能力低下。

以n=4为例,根据图1中数据可得出当h=1,2,…,8时,第(x+h)个比特的平均误比特率为0.3922.当n的值比较小时(n< 4 ),可以得到以下结论,当h=1,2,…,8时,第(x+h)个比特的误比特率随h增加而增大。由于卷积码的特性,第L个比特的译码结果可直接影响第(x+j)个比特(j=1,2,…,7)的译码结果,而第(x+j)个比特的译码结果又会直接影响第(x+h)个比特(h=1,2,…,8)的译码结果。因为这种迭代关系,第(x+h)个比特的误码率会随h增大而增大,从而造成卷积码抗突发错误性能低下。并且,在信道输出的误码率较大时,码字速率已经大于信道容量,此时采用编码不可能进行可靠通信。

仿真结果表明:当信噪比等于-1dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率大于10-1,且该序列运用[2,1,8]卷积码编码,维特比译码(硬判决)后所得的序列误比特率升高。当信噪比为2dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率约为4*10-2,且该序列运用[2,1,8]卷积码编码,维特比译码后所得的序列误比特率小于10-3,误码率远低于不编码时的误码率。因此卷积码适用于信道输出误码率比较低时候。

4.结论

本文基于MATLAB对卷积码编码和维特比译码进行仿真,比较了未编码序列的误比特率和编码后序列的误比特率。依据卷积码的马尔科夫性,利用MATLAB仿真,对其转移概率进行了求解,并通过转移概率得出了维特比译码的性能以及卷积码抗突发错误能力不高的结论。当信噪比为-1dB时,生成多项式为561,753的(2,1,8)卷积码的误码率约为1.27*10-1,而不编码的BPSK的误码率约为1.04*10-1,编码后误码率反而高于不编码。在信道条件较好时,卷积码的编码增益体现明显,当信噪比为2dB,生成多项式为561,753的(2,1,8)卷积码的误码率约为8*10-4,而不编码的BPSK的误码率约为4.64*10-2,编码后误码率明显降低。

fano译码 matlab,卷积码编码和维特比译码的原理、性能与仿真分析相关推荐

  1. 卷积码编码及维特比译码(Viterbi)算法的原理及其FPGA实现

    引言       卷积码是一种信道纠错编码,在通信中具有广泛的应用.在发送端根据生成多项式进行卷积码编码,在接收端根据维特比(Viterbi)译码算法进行译码,能够有效抵抗信道噪声的影响,在误码率门限 ...

  2. c++实现卷积码编码和维特比译码_鑫艾勒维特家用别墅电梯:安全至上,无可替代...

    近年来,随着房地产行业的兴起,家用别墅电梯作为房地产配套产业也逐渐走进了平常家庭别墅中,如今一句俗语"无梯不成墅"将电梯在别墅中的重要地位彰显的淋漓尽致.艾勒维特家用液压小电梯因其 ...

  3. 卷积码matlab仿真程序,卷积码编码译码程序仿真程序 卷积码应用详解

    (2) 通常称K为约束长度(一般来说,约束长度越大,则码字纠错 性能越好). (3) 码的效率:k/n (4) 编码前,k(K-1)个寄存器单元全部复位清零. (5) 由于一段消息不仅影响当前段的编码 ...

  4. 卷积码译码matlab程序,卷积码的编译码MATLAB程序

    <卷积码的编译码MATLAB程序>由会员分享,可在线阅读,更多相关<卷积码的编译码MATLAB程序(5页珍藏版)>请在人人文库网上搜索. 1.survivor state是一个 ...

  5. matlab 卷积码函数,MATLAB实现卷积码编译码-.doc

    MATLAB实现卷积码编译码- 本科生毕业论文(设计) 题 目: 作者姓名: 学 号: 单 位: 指导教师: 年 月 日 目 录 前言1 1. 纠错码基本理论2 1.1纠错码基本理论2 1.1.1纠错 ...

  6. 卷积码编码和BCJR译码

    实现卷积码编码和BCJR译码. 以下是实现该算法的代码: convolution.h #define EDGE_NUM 8 #define INF 0x3fffff #define CONV_CODE ...

  7. 【编码译码】基于matlab LDPC编码和解码【含Matlab源码 2560期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [编码译码]基于matlab LDPC编码和解码[含Matlab源码 2560期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  8. (2,1,2)卷积码BCJR译码matlab仿真

    文章目录 前言 一.卷积码 1.1 卷积码状态转移图 1.2 分支度量 1.3 前向状态度量 1.4 后向状态度量 1.5 比特似然计算 二.仿真代码 1.设置仿真参数 2.仿真所需系统对象 3.定义 ...

  9. 通信系统未编码、卷积码与格雷码的仿真性能比较

    通信系统未编码.卷积码与格雷码的仿真性能比较 论文+代码+仿真结果:下载地址 以上仿真结果可知: 1.未编码.卷积编码和格雷码三种编码,经PSK调制后加AWGN(高斯白噪声),在经过解调和解码得出来的 ...

最新文章

  1. [系统开发] Postfix 邮件管理系统
  2. Table表格的单元格提示
  3. 惠普电脑怎么截屏_省钱上京东双十一买笔记本电脑怎么买更优惠更划算更省钱最新攻略!联想戴尔华硕炫龙荣ROG神州宏碁惠普...
  4. ajax接口调节,前端用ajax调接口怎么破啊?
  5. 装服务器显示磁盘脱机,服务器磁盘处于脱机
  6. muduo源代码分析--Reactor模式在muduo中的使用
  7. 算法图解 各部分回忆
  8. matlab时域采样理论得验证,基于matlab时域采样和频域采样验证毕业设计
  9. 【福利贴】教你如何移动联通电信免流
  10. bzoj 3162: 独钓寒江雪 树形dphash
  11. PS裁剪图片上任意形状区域
  12. css3动画 魔方 无限滚动
  13. 高级商务办公软件应用【9】
  14. gaussian窗口函数_几种常见窗函数及其matlab应用
  15. IDEA 官方网站 http://www.jetbrains.com/idea/
  16. VScode常用插件下载
  17. img图片加载错误时显示默认图片
  18. Asset Catalog Compiler Warning Group
  19. Siri语音打电话APP
  20. 【C语言基础】printf函数

热门文章

  1. ADMM——交替方向乘子法
  2. R语言绘制热图(pheatmap包)
  3. Window 环境下构建React APP
  4. animation实现小物体按照轨迹运动动画效果
  5. html怎么建立css文件,怎么创建css文件
  6. 你一定没见过的bug,app 不响应但是没有ANR
  7. gcc自带sanitizer工具使用
  8. ubuntu 安装 音视频解码器
  9. 性能测试-TPTP篇(之一)
  10. 10位世界级投资大师100金句