在现代数字通信中,为降低数据传输的误码率,提高通信质量及其可靠性,常在通信中采用纠错编码技术。

本文主要介绍的就是关于卷积编码的相关介绍,希望通过本文能让你对卷积编码有更深的认识。

卷积编码

在信道编码研究的初期,人们探索、研究出各种各样的编码构造方法,其中包括卷积码。早在1955年,P.Elias首先提出了卷积码。但是它又经历了十几年的研究以后,才开始具备应用价值。在这十几年期间,J.M.Wozencraft提出了适合大编码约束度的卷积码的序列译码,J.L.Massey提出了实现简单的门限译码,A.J.Viterbi提出了适合小编码约束度的卷积码Viterbi算法。20年后,即1974年,L.R.Bahl等人又提出一种支持软输入软输出(SISO,Soft-InputSoft-Output)的最大后验概率(MAP,MaximumAPosteriori)译码——BCJR算法。其中,Viterbi算法有力地推动了卷积码的广泛应用,BCJR算法为后续Turbo码的发现奠定了基础。

编码技术

在卷积码的编码过程中,对输入信息比特进行分组编码,每个码组的编码输出比特不仅与该分组的信息比特有关,还与前面时刻的其他分组的信息比特有关。同样,在卷积码的译码过程中,不仅从当前时刻收到的分组中获取译码信息,还要从前后关联的分组中提取相关信息。正是由于在卷积码的编码过程中充分利用了各组的相关性,使得卷积码具有相当好的性能增益。

编码器图中,编码器的每组输入包含k0个信息比特,第一组寄存器单元存储当前时刻的k0个信息比特,而其他组寄存器单元存储前面时刻的(K−1)k0个信息比特。编码器有n0个编码输出,每个编码输出Yi由当前时刻的输入信息分组以及其他(K−1)个寄存器单元内的信息分组根据相应的连接关系进行模2运算来确定。

因此,一般定义K为编码约束度,说明编码过程中相互关联的分组个数,定义m=k-1为编码存储级数,码率R=k0/n0,这类码通常称为(n0,k0,K)卷积码。在许多实际应用场合,往往采用编码约束度比较小、码率为的卷积码。如图3-29所示的两种卷积码(2,1,9)和(3,1,9),它们的存储级数都是8,加法器完成二进制加法(模2加)。图中省略了存储当前时刻输入的寄存器单元。在图3-29(a)中,(2,1,9)卷积码编码器有一个输入端口、两个输出端口,这两个输出端口分别对应两个生成多项式(使用八进制表示):561和753。该码率是1/2。在图3-29(b)中,(3,1,9)卷积码编码器有一个输入端口、3个输出端口,这3个输出端口分别对应3个生成多项式(使用八进制表示):557、663和711。该码率是1/3。

TD-LTE系统中采用了(3,1,7)卷积码,存储级数是6,使用了6个寄存器。这个卷积码的主要优点包括最优距离谱、咬尾编码、译码复杂度小。具体描述见后续章节内容。另外,卷积码也可以按照其他方式进行分类,比如系统码或者非系统码,递归码或者非递归码,最大自由距离码或者最优距离谱码。常用的卷积码一般是非递归的非系统码,而Turbo码常常使用递归的系统卷积码。

咬尾编码通常卷积码编码器开始工作时都要进行初始化,常常将编码器的所有寄存器单元都进行清零处理。而在编码结束时,还要使用尾比特进行归零的结尾操作(TailedTermination)。相对于编码比特而言,尾比特增加了编码开销。TD-LTE系统的卷积码编码器采用了咬尾编码方法。

编码器开始工作时要进行特殊的初始化,将输入信息比特的最后m个比特依次输入编码器的寄存器中,当编码结束时,编码器的结束状态与初始状态相同。由于这个编码方法没有出现尾比特,因此称为咬尾编码。咬尾编码减少了尾比特的编码开销。对于咬尾编码方法,在译码过程中,由于编码器的初始状态和结尾状态是未知的,因此就需要增加一定的译码复杂度,才能确保好的译码性能。3.性能界卷积码的性能一般使用误比特率(BER,BitErrorRate)来统计,其理论上界(UpperBound)一般使用联合界(UnionBound)来确定,即

(3-13)其中,卷积码的转移函数(TransferFunction),代表非零输入信息比特的转移分支,Y的指数表示输入信息比特的汉明重量,Z代表输出编码比特的转移分支,Z的指数表示输出编码比特的汉明重量。为了进一步分析上述性能界,一般假设最大似然译码(ML,Maximum-Likelihood)、BPSK调制和加性高斯白噪声(AWGN,AdditiveWhiteGaussianNoise)信道,则有

(3-14)其中,Bd是所有重量为d的码字的非零信息比特的重量,为卷积码的自由距离。当信噪比很高时,则式(3-14)近似为

(3-15)BPSK调制性能为

(3-16)考虑到误码性能主要是指数项占据主导作用,与未编码系统相比,卷积码的编码增益为

(3-17)式(3-17)说明卷积码的渐近性能主要是由自由距离()决定的。因此,相对而言,卷积码的自由距离越大,其性能越好。以上述二进制卷积码(2,1,9)和(3,1,9)为例,自由距离分别为12和18,编码增益都为7.78dB。实际上,性能最佳的卷积码往往具有最优的距离谱(ODS,OptimumDistanceSpectrum)或者重量分布,而且,具有最优距离谱的卷积码也具有最大的自由距离(MFD,MaximumFreeDistance)。TD-LTE系统采用了最优距离谱的卷积码。

基于VHDL的卷积编码实现

在现代数字通信中,为降低数据传输的误码率,提高通信质量及其可靠性,常在通信中采用纠错编码技术。其中卷积码就是一种具有较强纠错能力的纠错码。由于Vitebrbi译码算法比较容易实现,卷积码得到了广泛应用。本课题简明地介绍了用EDA技术实现卷积码编码器的实现。卷积码纠错性能常常优于分组码,是一种性能优越的信道编码。由于码字之间的相关性,其编码器要利用移位寄存器来存储状态。

随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。卷积码作为通信系统中重要的编码方式,以其良好的编码性能,合理的译码方式,被广泛应用。本文在阐述卷积码编码器基本工作原理的基础上,给出了(2,1,2)卷积编码器的VHDL设计,在QuartusⅡ环境下进行了波形功能仿真,并下载到EP1C6T144C8N芯片上进行验证,最终实现输入四位序列,编码输出八位通过指示灯显示。

卷积编码的编码约束长度定义为:串行输入比特通过编码其所需的移位次数,它表示编码过程中相互约束的分支码数,所以具有m级移位寄存器的编码器得约束长度为m十1,有时也说(m十1)n为卷积编码的编码约束长与分组编码一样。

卷积编码的编码效率也定义为R=k/η,与分组码具有固定码长η不同,卷积码没有,我们可通过周期性地截断来获得分组长度为了达到清空编码移位寄存器数据bit的目的,需要在输入数据序列末尾附加若于0bit。由于附加的0不包含任何信息,因而,有效编码效率降至kn以如果截断周期取值较大,则有效编码效率会逼近kn。

图中的小框表示寄存器的状态,连接小框的箭头表示状态转移的方向,两线旁的数字表示:输出分支码字/输入信息比特。状态图简明的表示了在某一时刻编码器的输入比特和输出分支码字的关系。

结语

关于卷积编码的相关介绍就到这了,如有不足之处欢迎指正。

VHDL与MATLAB卷积译码,基于VHDL的卷积编码实现 详解卷积编码的应用相关推荐

  1. 基于VHDL的具有自动乐曲演奏功能的电子琴设计

    具有自动乐曲演奏功能的电子琴设计 先给出设计结果视频链接:    具有自动乐曲演奏功能的电子琴-视频实录 优酷:具有自动乐曲演奏功能的电子琴-视频实录        再给出完整文档和工程代码链接: 基 ...

  2. 计算机组成原理电子时钟设计与实现,《计算机组成原理》课程设计报告-基于VHDL数字电子钟设计与实现.doc...

    <计算机组成原理>课程设计报告-基于VHDL数字电子钟设计与实现 长沙理工大学 <计算机组成原理>课程设计报告 XXX 学 院 计算机与通信工程 专 业 网络工程 班 级 网络 ...

  3. matlab卷积画图,基于MATLAB的卷积演示系统课程设计

    1卷积演示程序设计原理 数字信号处理的直接对象是数字信号,处理的方式是数值运算的方式,它涉及到的内容非常丰富和广泛,它是应用最快.成效最显著的新学科之一,作为信息专业的专业基础课,需要掌握其基本理论和 ...

  4. 基于VHDL的毛刺信号消除

    基于VHDL的毛刺信号消除 摘要:针对FPGA设计过程中常见的毛刺现象问题,研究了用于VHDL语言清除毛刺信号的脉冲选择法与时序逻辑保持法.首先,研究了冒险现象与毛刺信号:其次,总结了数字电路消除毛刺 ...

  5. 基于VHDL移位寄存器程序设计

    基于VHDL移位寄存器程序设计 实验目的 (1) 掌握中规模4位移位寄存器逻辑功能及使用方法. (2) 学会用VHDL语言设计4位移位寄存器. 实验原理 移位寄存器是一个具有移位功能的寄存器,是指寄存 ...

  6. 左移寄存器vhdl_基于VHDL的移位寄存器设计

    摘 要 本文通过对EDA和VHDL的简单说明,阐述了基于 VHDL硬件描述语言的移位寄存器设计方法,程序简单,在电子 设计中有一定的推广价值. 关键词 移位寄存器   设计  EDA  VHDL 随着 ...

  7. 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器设计与实现毕业设计(DOC毕业设计论文)...

    基于VHDL的彩灯控制器设计与实现毕业设计(DOC毕业设计论文) <计算机组成原理>课程设计报告目 录任务书 .2摘 要 .5Abstract .61 引 言 71.1VHDL 技术介绍7 ...

  8. 基于VHDL语言的状态机设计

    基于VHDL语言的状态机(FSM)设计 状态机(Finite State Machine,FSM) 状态机的组成:如图所示 状态机的种类: Mealy型:当前状态.当前输入相关 Moore型:仅当前状 ...

  9. eda交通灯控制器波形输入_基于VHDL的交通灯控制器设计

    应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率.下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果. 1 系统功能与要求 交通灯控 ...

  10. 基于VHDL语言八位加法器设计

    基于VHDL语言八位加法器设计 设计思路 ​ 加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成.多位加法器的构成有两种方式:并行进位和串行进位.并行进位加法器设有进位产生逻辑,运 ...

最新文章

  1. gitlab中文_ASP.NET实战010:Visual Studio使用GitLab详解
  2. OC:数组排序、时间格式化字符串
  3. 关于SpringCloud配置中心,ConfigClient需要注意的问题
  4. 浅谈移动类型102、122和161区别
  5. 详解void 0与undefined区别
  6. 【Java8】Stream 由函数生成流:创建无限流 - 实现斐波纳契数列
  7. 推荐:Windows平台上三款提高工作效率的免费神器!
  8. Centos网络管理(五)-Bonding、网络组和网桥
  9. 【微信小程序】三分钟学会小程序的列表渲染
  10. 新装hbuilder无法运行到iOS模拟器/无法识别ios模拟器
  11. ARM和Linux下 nanomsg 编译与使用
  12. java实现别踩白块儿,jQuery实现别踩白块儿网页版小游戏
  13. 学生奖学金评定系统c语言,学生奖学金评定系统.doc
  14. [转]Flixel只能用于Flex吗?
  15. 理财趣事:要想财富滚滚来 先学普京打野猪
  16. php13 质粒 cm erm 抗生素,PHP13 会话控制 - osc_c0g7cjrk的个人空间 - OSCHINA - 中文开源技术交流社区...
  17. Angular真有React开发人员讲得那么差劲?
  18. 蓝桥 密码锁(Java)
  19. 【嵌入式】如果用PS导出GIF图片
  20. Python识别身份证号码并检查是否合法(pysseract,dlib,opencv)

热门文章

  1. 六子棋 java_六子棋——人工智能系统的设计与研究_Java
  2. Java 打印100以内的所有奇数和偶数
  3. Oracle 12cR2发布,金融行业准备大规模上了
  4. VRay材质练习(一):水、玻璃、牛奶
  5. Mac版本git下载和使用
  6. 小程序发布上线流程_微信小程序发布_审核上线流程及注意事项_企业服务汇
  7. linux下ntp服务配置
  8. 2021年N1叉车司机免费试题及N1叉车司机模拟试题
  9. 腾讯智图让我的webp压缩感觉像白忙活一样
  10. 判断访问浏览器的类型