1、摘 要I摘 要本课程设计主要解决信源编码和信道编码中的卷积码的数字调制,信源输出的模拟信号要转换成数字信号,就需要对信源信道进行编码译码操作,并通过Simulink软件进行设计与仿真,进行误码率分析。卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测
2、,并对测试结果作了分析。得出了以下三个结论:(1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。(2)对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化。(3)回溯长度也会不同程度上地影响误码性能。关键词 : 编译码器;simulink;设计与仿真 卷积码;码率ABSTRACTIIABSTRACTThis course is designed to solve source coding and channel coding convolutional codes in the digital modulation, the source output an
3、alog signals into digital signals to be converted to the need for the source and channel coding and decoding operations, and through the Simulink software design and simulation, and the bit error rate analysis. Convolutional code is a superior performance of channel coding. Its encoder and decoder a
4、re relatively easy to implement, and it has a strong error correction capability. Error-correcting coding theory research with the deepening of the practical application of convolutional codes more widely. This concise introduction to the principles of convolutional coding and decoding principles. S
5、IMULINK module in the design, completed the coding and decoding convolutional code and bit error statistics of the whole process simulation module. Finally, changes in the simulation process of convolutional codes, respectively, to deepen our understanding of the important parameters of these parame
6、ters on convolutional codes convolutional codes error performance. The simulation and measurement, and test results are analyzed. Reached the following three conclusions: (1) When the change rate convolutional code, the system error performance will subsequently change. (2) For a certain rate convol
7、utional codes, when the constraint length N changes, the system BER performance also will be changed. (3) back length will be affected to varying degrees, error performance. Keywords: codec; simulink;design and simulation of convolutional code目 录III目 录第 1 章 引言 .11.1 课题背景 11.2 国内外研究现状 11.3 本课题的意义 11.
8、4 本课题的研究方法 2第 2 章 MATLAB 组件介绍及通信系统概述 32.1 MATLAB 与通信仿真的发展现状及应用 .32.2 通信系统概述与组成 32.3 通信仿真 42.4 Simulink 仿真及工作原理 .6第 3 章 信源编码 .83.1 A 律 律编码特性 .83.1.1 A 律编码 83.1.2 律编码 .83.1.3 A 律 13 折线 .93.2 A 律、 律的特性比较 11第 4 章 信道编码及译码 154.1 卷积码的概念介绍 .154.2 卷积码的编码过程介绍 .154.3 卷积码译码过程的概述 .164.4 卷积码的最大似然译码 .194.5 输入与同步单元
9、 .21第 5 章 卷积码的仿真 22目 录IV5.1 Simulink 仿真模块的参数设置以及重要参数的意义 225.2 简化维特比译码器的仿真 .26第 6 章 卷积码译码器的误码率分析 286.1 信噪比与误码率的关系 .286.2.不同回溯长度对卷积码性能的影响 .296.3 不同码率对卷积码误码性能的响 .316.4 不同约束长度对卷积码的误码性能影响 .32第 7 章 结论 35参考文献 .36致 谢 37第 1 章 引言1第 1 章 引言1.1 课题背景随着现代通信的发展,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。A律编码、律编码以及卷积码以其高速性
10、和可靠性在实际应用中越来越广泛。其中1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码方式之一 1。1.2 国内外研究现状在对A律、律研究中,随着数字化技术的发展,逐步形成了使用折现分段近似压扩特性的方法,这类方法简单且准确,因而获得了广泛的应用,并被采纳为相应的国际建议。而在对卷积码的研究中,其中编码器较简单,模式也很统一。主要是研究提高卷积码的译码速度和可靠度。译码算法中最重要的卷积码的Viterbi算法问世以来,软件仿真和实现都得到了迅速发展。目前,利用计算机仿真Viterbi算法,模拟在各种不同情况下卷积编码时的译码性能,寻找Viterbi算法的最佳适用信道和不
11、同要求(如误码率)下最优编码。1.3 本课题的意义在信源编码中,随着数字化技术的发展,逐步形成了使用折现分段近似压扩特性的方法,这类方法简单且准确,因而获得了广泛的应用,并被采纳为相应的国际建议。在卷积码中,因为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。在现代信息处理系统中,需要处理的信息量越来越大,实时性要求越来越高。为减少对主处理器各种资源的占用,要求通信模块方面的大部分工作能独立完成。因此采用Viterbi译码算法具有非常现实的意义。1.4 本课题的研究方法本文通过基于MATLAB的SIMULINK下的模块对A律和律码以及卷积编码,解码进行仿真。
12、通过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进行了分析。得出卷积码Viterbi译码的误比特性能和回溯长度,电子科技大学成都学院本科课程设计论文2码率,约束长度的关系。第 2 章 MATLAB 组件介绍及通信系统概述3第 2 章 MATLAB 组件介绍及通信系统概述2.1 MATLAB 与通信仿真的发展现状及应用MATLAB 是由美国的 Math Works 公司推出的一种科学计算和工程仿真软件,它的名字院子 Matrix Laboratory,专门以矩阵的形式处理数据。MATLAB 将高性能的科学计算、结果可视化和编程集中在一个易于操作的环境中,并提供大量的内置函数,
13、具有强大的矩阵计算和绘画功能,是用于科学计算、控制系统、信息处理等领域分析、仿真和设计工作。目前,在世界范围内被科研工作者、工程技术人员和院校师生广泛应用。Simulink 是 MATLAB 中的一种可视化仿真工具,广泛应用于线性系统、数字控制、非线性系统以及数字信号处理的建模和仿真中。Simulink 采用模块化建模方式,每个模块都有自己的输入/输出端口,实现其功能 5。本课题能避开硬件系统的不足,巧妙的运用软件来仿真硬件才能实现的实验结果,大大降低了实验设备要求,节约了人力和财力,而且有很多的库函数可以在实验时直接调用,避免了用硬件做实验的局限性。可以更方便的做信号系统实验,为教学和研究提
14、供了方便。还能够锻炼一个人在面对一个具体的项目时,遇到问题,分析问题,解决问题的能力;获得独立策划、实施课题,并按照既定计划进行开发的经验,以及查找相关文献的能力。通过自己的努力使得对于 Matlab 有一个全面的、深刻的认识,并且对 Matlab 做界面的软件有了一定的了解,对系统规划有了初步的认识。为以后研发工作打下坚实的基础,积累宝贵的经验。 2.2 通信系统概述与组成通信系统(Communication System)是用以完成信息传输过程的技术系统的总称。现代通信系统主要借助电磁波在自由空间的传播或导引媒体中的传输机理来实现,前者成为无线通信系统,后者成为有线通信系统。由于人们对通信
15、容量要求越来越高,对通信的业务要求越来越多样化,所以通信系统正迅速向着宽带化方向发展,而光纤通信系统将在通信网中发挥越来越重要的作用 2。通信是将信息从发信者传递给在另外一个时空点的收信者。通信流程可用下图 2-1 所示基本模型图来表示。整个流程是由信源、发送设备、信道(或传电子科技大学成都学院本科课程设计论文4输媒质) 、接收设备和收信者(信宿)五部分组成。 图 2-1 通信系统的基本模型(1) 信源信源是信息的产生者或信息的形成者。根据信源所产生信号的性质不同,可分为模拟信源和离散信源。(2)发送设备发送设备的基本功能是将信源和传输媒介匹配起来,即将信源产生的消息信号变换为有利于传送的信号
16、形式送往传输媒介。(3)信道信道是指信号传输的媒介,信号是经过信道传送到接收设备的。在信号传输过程中,必然会引入发送设备、接收设备和传输媒介的热噪声和各种干扰和衰减,及信号在信道中传输时,会产生信道噪声。(4)接收设备接收设备的主要作用是将来自信道的带有干扰的发送信号加以处理,并从中提取原始信息,完成发送变换过程的逆变换解调和译码。(5)信宿信宿是将复原的原始信号转换成相应的消息。2.3 通信仿真通信仿真是衡量通信系统性能的工具。实际的通信系统是一个功能结构相当复杂的系统,对这个系统作出的任何改变都可能影响到整个系统的性能和稳定。因此,在对原有的通信系统作出改进或建立一个新系统之前,通常对这个
17、系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后在应用到实际系统中,这个过程就叫通信仿真 2。第 2 章 MATLAB 组件介绍及通信系统概述5通信系统仿真一般分为 3 个步骤,即仿真建模、仿真实验、仿真分析。由于仿真过程是一个螺旋式发展的过程,因此,这 3 个步骤可能需要循环执行多次之后才能够获得令人满意的仿真结果。(1)仿真建模仿真建模是根据实际通信系统建立仿真模型,它是整个通信仿真过程中的一个关键步骤,因为仿真模型的好坏直接影响着仿真的结果以及仿真结构的真实性和可靠性。仿真模型是对实际系统的一种模拟和抽象。过于简单的仿真模型会忽略实际系统的细节,
18、在一定程度上会影响仿真结果的可靠性。但过于复杂的仿真模型会产生很多相互因素,从而大大延长仿真时间和增加仿真结果分析的复杂度。因此,仿真模型的建立需要综合考虑其可行性和简单性。在仿真建模过程中,可以先建立一个相对简单的仿真模型,然后再根据仿真结果和仿真过程的需要逐步增加仿真模型的复杂度。在仿真建模过程中,首先需要分析实际系统存在的问题或设立系统改造的目标,并把这些问题和目标转化成数学变量和公式。确定了方针目标后,下一步是获取实际通信系统的各种运行参数。在以上工作准备好仿真模型后,就是仿真软件的选择了,使用仿真软件建立好模型后,仿真建模的这一步骤就基本完成了。(2)仿真实验仿真实验是一个或一系列针
19、对仿真模型的测试。在仿真实验过程中,通常需要多次改变仿真模型输入信号的数值,以观察和分析仿真模型对这些输入信号的反应,以及仿真系统在这个过程中表现出来的性能。在明确了仿真系统对输入/输出信号的要求之后,最好把这些设置整理成一份简单的文档。(3)仿真分析仿真分析是一个通信仿真流程的最后一个步骤。在仿真过程中,用户已经从仿真过程中获得了足够多的关于系统性能的消息,但是这些信息只是一些原始数据,一般还需要经过数值分析和处理才能获得衡量系统性能的尺度,从而获得对仿真性能的一个总体评价。仿真分析并不一定意味着通信仿真过程的完全结束。如果仿真分析得到的结果打不到预期的目标,用户还需要重新修改通信仿真模型,
20、这时候仿真分析电子科技大学成都学院本科课程设计论文6就成为了一个新的循环的开始2.4 Simulink 仿真及工作原理Simulink 是 MATLAB 提供的用于对动态系统进行建模、仿真和分析的工具包。Simulink 提供了专门用于显示输出信号的模块,可以在仿真过程中随时观察仿真结果。同时,通过 Simulink 的存储模块,仿真数据可以方便地以各种形式保存到工作空间或文件中,以供用户在仿真结束后对数据进行分析和处理。另外 Simulink 把具有等级结构的子系统,因此具有内在的模块化设计要求。基于以上优点,Simulink 作为一种通用的仿真建模工具,广泛用于通信仿真、数字信号处理、机械
21、控制和虚拟现实等领域中 2。作为一款专业仿真软件,Simulink 具有以下特点:基于矩阵的数值计算;高级编程语言已经可视化的图形操作界面 ;包含各领域的仿真工具箱,使用方便快捷并可以扩展;丰富数据的 I/O 接口;提供与其他高级语言的接口;支持多平台(PC/UNIX)根据输出信号与输入信号的关系,Simulink 提供三种类型的模块:连续模块、离散模块和混合模块。连续模块是指输出信号随着输入信号发生连续变化的模块;离散模块则是输出信号以固定间隔变化的模块。对于连续模块,Simulink 采用积分方式计算输出信号的数值,因此,连续模块主要涉及数值的计算及其积分。离散模块的输出信号在下一个抽样到
22、来之前保持恒定,这时候Simulink 只需要以一定的间隔计算输出信号的数值。混合模块是根据输入信号的类型来确定输出信号类型的,它既能差生连续输出的信号,也能够产生离散输出信号。Simulink 仿真包括两个阶段:初始化阶段和模型执行阶段。(1) 初始化阶段在初始化阶段,Simulink 内部主要完成以下工作。模型参数传给 MATLAB 进行估值,得到的数值结果将作为模型的实际参数。第 2 章 MATLAB 组件介绍及通信系统概述7展开模型的各个层次,每一个非条件执行的子系统被它包含的模块代替。模型中模块按更新的次序进行排序。决定模型由无显示设定的信号属性。决定所有无显示设定才采样的时间的模块
23、的采样时间。分配和初始化用于储存每个模块的状态和输入当前值的存储空间。完成以上工作后就可以进行下一步工作了,也就是模块执行阶段(2) 模块执行阶段一般模型是使用数值积分来进行仿真的,所运用的仿真解法器(仿真算法)依赖于模型提供它的连续积分能力。计算微分可分为以下两步来进行。首先,按照排列所确定的次序计算每个模块的输出。然后,根据当前时刻的输入和状态来决定状态的微分;得到微分向量后再把它返回给解法器;后者用它来计算下一个采样点的状态向量。一旦新的状态向量计算完毕,被采样的数据模块和接收模块才被更新。在仿真开始时,模型设定待仿真系统的初始状态和输出。在每个时间步中,Simulink 计算系统的输入
24、、状态和输出,并更新模块来反映计算出的值。在仿真结束时,模型得出系统的输入、状态和输出。在每个时间步中,Simulink 所采取的动作依次如下:(1)按照排列好的次序更新模型中的输出。Simulink 通过调用模块的输出函数计算模块的输出。Simulink 只把当前值、模块的输入以及状态量传给这些函数计算模块的输出。对于离散系统,Simulink 只有在当前时间是模块采样时间的整数倍时,才会更新模块的输出。(2)按照排列好的次序更新模块中模块的状态。Simulink 计算一个模块的离散状态的方法是调用模块的离散状态更新函数。而对于连续状态,则对连续状态的微分进行数值积分来获得当前的连续状态。(
25、3)检查函数连续状态的不连续点。Simulink 使用过零检测来检测连续状态的不连续点。(4)计算下一个仿真时间步的时间。这是通过调用模块获得下一个采样时间函数来完成的。电子科技大学成都学院本科课程设计论文8第 3 章 信源编码3.1 A 律 律编码特性信源编码也称为量化或信号格式化,它一般是为了减少冗余度或为后续的处理做准备而进行的数据处理。在 Simulink 中,包含了 A 律编码、 律编码等,这里分别进行介绍。3.1.1 A 律编码如果输入信号为 x,输出信号为 y,则 A 律压缩满足式 3-1。sgn(x) AXylog1AVX0(3-1) sgn(x) AVylog1)/(V式中,
26、A 为 A 律压缩参数,最常采用的 A 值为 87.6;V 为输入信号的峰值;log 为自然对数;sgn 函数当输入为正时,输出 1,当输出为负时,输出 0。模块的输入并无限制。如果输入为向量,则向量中的每一个分量将被单独处理 7。A 律压缩编码模块及其参数及其设定框如图 3-1 所示。A 律压缩编码模块中包含两个参数:A value:用于指定浓缩参数 A 的值Peak signal magnitude:用于指定能输入信号的峰值 V。3.1.2 律编码和 A 律压缩编码类似, 律压缩编码中如果输入信号为 x,输出信号为y,则 律压缩满足式 3-2。第 3 章 信源编码9sgn(x) (3-2)
27、 )( 1log)/(VXy式中, 为 律压缩参数;V 为输入信号的峰值;log 为自然对数;sgn函数当输入为正时,输出 1,当输入为负时,输出 0模块的输入并无限制。如果输入为向量,则向量中的每一个分量将会被单独处理 7。 律压缩编码中包含两个参数:mu value:用于指定 律压缩参数 的值Peak signal magnitude:用于指定能输入信号的峰值 V,也是输出信号的峰值。3.1.3 A 律 13 折线13 段折线的压缩特性如下图 3-3 所示。过程为:第一步:把 x(x0 部分)划分为不均匀的 8 段。第一分点取在 V/2 处,然后每段都是剩下部分的 1/2。 ;依次取第八段
28、为 VV/2,第七段为 V/2V/4;第一段为 V/1280。第二步:把每段均匀划分为 16 等份,每一份表示一个量化级,显然 8 段共16x8=128= 个量化级,需要二进制 7 位编码表示。可以看出每个量化级是不均匀的。在小信号的量化台阶很小,使小信号时量化噪声减小。如果按均匀量化计算,以最小台阶 为单位,最大信号需用 L=128X16=2048 个量化级表示,既需要 11 位编码。这样非均匀编码使小信号量化台阶缩小了 16 倍,相当于小信号信噪比改善了 20dB。第三步:把 y 轴均匀划分为 8 段,每段均匀分为 16 分。这样 y 也分为 128个量化级,与 x 轴的 128 个量化级
29、对应。因此,压扩特性各段的斜率 是不同的。第一段斜率 其他段为 7: 以上分段为 x 取正值时的情况。而 x 取负值时,压扩特性与 x 取正值成奇对称。在正 8 段和负 8 段中,正 1,2 段和负 1,2 段斜率相同,合为一段。所以原来的 16 段折线变为 13 段折线。电子科技大学成都学院本科课程设计论文10图 3-1 13 折线 A 律压扩特性实 际 中 , 往 往 都 采 用 近 似 于 A律 函 数 规 律 的 13折 线 (A=87.6)的 压 扩 特 性 。这 样 , 它 基 本 上 保 持 了 连 续 压 扩 特 性 曲 线 的 优 点 , 又 便 于 用 数 字 电 路 实
30、现 。折 线 形 成 的 方 法 是 把 x轴 的 0-1分 成 8个 不 均 匀 段 , 而 y轴 的 0 1均 匀 地 分成 八 段 , 与 x轴 的 八 段 一 一 对 应 。 至 于 当 x在 -1 0及 y在 -1 0的 第 三 象 限 中 ,压 缩 特 性 的 形 状 与 以 上 讨 论 的 第 一 象 限 压 缩 特 性 的 形 状 相 同 , 且 它 们 以 原 点 为奇 对 称 , 所 以 负 方 向 也 有 八 段 直 线 , 合 起 来 共 有 16个 线 段 。 由 于 正 向 一 、 二两 段 和 负 向 一 、 二 两 段 的 斜 率 相 同 , 这 四 段 实 际
31、 上 为 一 条 直 线 , 因 此 正 、 负 双向 的 折 线 总 共 由 13条 直 线 段 构 成 , 故 称 其 为 13折 线 。 13折 线 和 A律 (A=87.6)压扩 特 性 的 近 似 程 度 , 可 以 由 表 3-1看 出 :表 3-1 A律 13折 线y 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1x1 0 1/128 1/60.6 1/30.6 1/15.4 1/7.79 1/3.93 1/1.98 1x2 0 1/128 1/64 1/32 1/16 1/8 1/4 1/2 1段落 1 2 3 4 5 6 7 8第 3 章 信源编码11斜率 1
32、6 16 8 4 2 1 1/2 1/4u律 15折 线 形 成 如 下 。 把 y坐 标 从 0到 1之 间 划 分 为 八 个 均 匀 等 分 , 对 应 于分 界 点 y坐 标 i/8的 x坐 标 , 根 据 律 压 缩 特 性 得 到 (u 255), 共 14个 斜 率 发 生 变化 的 分 界 点 , 将 其 分 成 15段 直 折 线 。 其 具 体 值 可 见 表 3-2: 表 3-2 u律 15折 线i 0 1 2 3 4 5 6 7 8y=i/8 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1x=(2i-1)/2550 1/2553/2557/25515/2
33、5531/25563/255127/2551相对斜率8/255(y/x)1 1/2 1/4 1/8 1/16 1/32 1/64 1/128段落 1 2 3 4 5 6 7 83.2 A 律、u 律的特性比较画 出 A 律 13 折 线 近 似 的 压 缩 特 性 曲 线 , 与 A=87.56 对 应 的 压 缩 特 性 曲 线进 行 比 较 。 2 画 出 u 律 15 折 线 近 似 的 压 缩 特 性 曲 线 , 与 u=255 对 应 的 压 缩 特性 曲 线 进 行 比 较 。MATLAB 程序:clear allclose alldx=0.01;x=-1:dx:1;u=255;A
34、=87.6;% u Law yu=sign(x).*log(1+u*abs(x)/log(1+u);% A Lawfor i=1:length(x)电子科技大学成都学院本科课程设计论文12if abs(x(i)1/Aya(i)=A*x(i)/(1+log(A);elseya(i)=sign(x(i)*(1+log(A*abs(x(i)/(1+log(A);endendfigure(1)plot(x,yu,k.:)title(u Law)xlabel(x)ylabel(y)grid onhold onxx=-1,-127/255,-63/255,-31/255,-15/255,-7/255,-3
35、/255,-1/255,1/255,3/255,7/255,15/255,31/255,63/255,127/255,1;yy=-1,-7/8,-6/8,-5/8,-4/8,-3/8,-2/8,-1/8,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1;plot(xx,yy,r)stem(xx,yy,b-.)legend(u 律 压 缩 特 性 ,折 线 近 似 u 律 ,4)figure(2)plot(x,ya,k.:)title(A Law)xlabel(x)ylabel(y)grid onhold on第 3 章 信源编码13xx=-1,-1/2,-1/4,-1/8,-1/16
36、,-1/32,-1/64,-1/128,1/128,1/64,1/32,1/16,1/8,1/4,1/2,1;yy=-1,-7/8,-6/8,-5/8,-4/8,-3/8,-2/8,-1/8,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1;plot(xx,yy,r)stem(xx,yy,b-.)legend(A 律 压 缩 特 性 ,折 线 近 似 A 律 ,4)图 3-2 A 律 13 折线电子科技大学成都学院本科课程设计论文14图 33 律 15 折线如图 3-2 所示,13 折线各段落的分界点 A=87.56 曲线十分逼近,并且两特性起始段的斜率均为 16,这就是说,13 折
37、线非常逼近 A=87.56 的对数压缩特性。在 A 律特性分析中可以看出,取 A=87.56 有两个目的:一是使特性曲线原点附近的斜率凑成 16;二是使 13 折线逼近时,x 的八个段落量化分界点近似于按 2的幂次递减分割,有利于数字化。如图 3-3 所示,15 折线非常逼近 =225 的对数压缩特性。第 4 章 信道编码及译码15第 4 章 信道编码及译码4.1 卷积码的概念介绍卷积码是一种性能优越的信道编码。(n ,k ,N) 表示把 k 个信息比特编成n 个比特,N 为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的 n 个码元不仅与当前组的 k 个信息比特有关,而且与前
38、N - 1 个输入组的信息比特有关 6。编码过程中相互关联的码元有 N n 个。R = k/ n 是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数 1。4.2 卷积码的编码过程介绍以(2,1,4)为例,如图 4-1 所示,详细介绍卷积码的编码流程。图 4-1 (2,1,4)卷积码编码器方框图(4-1)(4-2) 由(4-1)式和(4-2)式可以看出:输出的数据位 V1,V2 和寄存器D0,D1,D2,D3 之间的关系。根据模 2 加运算特点可以得知奇数个 1 模 2 运算后结果仍是 1,偶数个 1模 2 运算后结果是 0。在实际应用中,根据模 2 加的特点,将所要处理的数据直接相加后除
39、 2 求余,这样得到的结果和模 2 运算结果相同。这样可以得到: (4-3)(4-4)D 0 D 2D 1 D 3+MV 1V 2O U T电子科技大学成都学院本科课程设计论文16编码程序流程图图 4-2 卷积码编码程序流程图4.3 卷积码译码过程的概述卷积码的译码方式有三种 3:(1)1963年由梅西(Massey)提出的门限译码,这是一种基于码代数结构的代数译码,类似于分组码中的大数逻辑译码;(2) 1963年由费诺(Fano)改进的序列译码,这是基于码的树状图结构上的一种准最佳的概率译码;(3) 1967年由维特比提出的Viterbi算法。这是基于码的网(trellis)图基础上的一种最
40、大似然译码算法,是一种最佳的概率译码方法 8。其中,代数译码,利用编码本身的代数结构进行译码,不考虑信道本身的统计特性。该方法的硬件实现简单,但性能较差,其中具有典型意义的是门限译码。另一类是概率译码,这种译码通常建立在最大似然准则的基础上。由于计算是用到了信道的统计特性.因而提高了译码性能,但这种性能的提高是以增加硬件的复杂度为代价的。常用的概率译码方法有维特比译码和序列译码。维特比译码具有最佳性能,但硬件实现复杂;门限译码性能最差,但硬件简单;序列译码在性能和硬件方面介于维特比译码和门限译码之间。(1)译码原理:卷积码译码方法主要有两类:代数译码和概率译码。代数译码主要根据码程序开始定义变
41、量初始化四个寄存器输入 1 比特信息存放在寄存器 0 中 , 代入 3 , 4两式 , 得到 V 1 , V 2将 D 0 , D 1 , D 2 中的值依次向后传递一位 ,输出 V 1 , V 2 , 并返回 ,进行下一次运算第 4 章 信道编码及译码17本身的代数特性进行译码,而信道的统计特性并没有考虑在内。目前,代数译码的主要代表是大数逻辑解码。该译码方法对于约束长度较短的卷积码有较好的效果,并且设备较简单。概率译码,又称最大似然译码,是基于信道的统计特性和卷积码的特点进行计算。在现代通信系统中,维特比译码是目前使用最广泛的概率译码方法。维特比译码算法基本原理是:将接收到的信号序列和所有
42、可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。具体步骤如下:1.从时间单元 j=m 开始,计算进入每个状态的路径的汉明距离。存储每个状态的路径(即幸存路径)以及最小汉明距离。这里存储的路径通常是该状态所对应的幸存路径上的前一状态值。2.j 增加 1。计算进入每一个状态所有路径的汉明距离。这个汉明距离是进入该状态的分支度量加上在与该分支相连的前一步的幸存路径的度量值。对于每个状态,共有 个这样的度量值,从中选出并存储最优路径(汉明距离最小的路径)并保存最小汉明距离。3.如果 jL+m.重复步骤 2,知道结束。在整个过程中,这样就可以得到一条汉明距离最小的最优路径。同样以(
43、2,1,4)为例,具体分析维特比译码过程。维特比译码的前提是建立合适的网格图,以便寻找最优路径。或者可以认为,维特比译码的关键是寻找最优路径。在实际的译码操作过程中,怎样建立网格以及建立网格后的路径的选择是译码的关键问题。图 4-3 (2,1,4)码状态转移图如图所示,图 4-3 为(2,1,4)码的状态转移图,图 4-5 为 (2,1,4)码的0 0 01 0 00 1 10 1 00 0 11 0 1 1 1 0 1 1 1D 1 D 2 D 3V 1 V 2 / i n0 0 / 011/110/10 1 / 0 1 1 / 000/11 0 / 001/101/01 1 / 11 0
44、/ 000/00 1 / 101/01 1 / 111/0电子科技大学成都学院本科课程设计论文18网格图。注意:由于 D1D2D3 表示的顺序不同,所产生的网格图和状态转移图也不同,并且译码过程是根据网格图实现,所以本文所以涉及的维特比译码方法具有一定的特殊性,但是整体过程还是具有研究价值。 (2)编程实现维特比译码可分为网格图建立,寻找最优路径,译码这三部分。译码程序流程如图 4-4 所示:图 4-4 译码流程图网格图建立根据图 4-5 所示的(2,1,4)码的网格图,可以发现 D1D2D3 决定了从 000111 的 8 个状态。并且进一步观察网格图可以发现从状态 000-011 是由输入
45、的信息位 0 产生,从状态 100-111 是由输入的信息位 1 产生。此外,以 001 状态为例,可以看出状态 001 是由状态 010 和状态 011 产生。由上面可知,假设当前状态为 i,那么在前一时刻中,产生状态 i 的两个状态是 2*i 和 2*i+1。根据i 是否小于 4,来判断状态 i 是由信息位 0 还是信息位 1 生成。进一步可以推知指向状态 i 的前一时刻的两个状态生成的码组,这样便于以判断汉明距离。开始建立网格图判断最优路径译码输出0 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11
46、 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11 0 00 1 10 1 00 0 11 1 11 1 00 0 01 0 11
47、 0 00 1 10 1 00 0 11 1 11 1 0第 4 章 信道编码及译码19图 4-5 (2,1,4)码网格图寻找最优路径网格图建立之后,根据接收码组和网格图中生成的码组比较,判断最优路径。假设某一时刻的状态 i,首先判断前一时刻所有状态中,是哪两个状态指向当前状态 i;其次,根据这两个指向当前状态 i 的状态生成的码组和前一时刻接收的码组比较,保留汉明距离最小的那条路径以及到达状态 i 时的最小汉明距离。下一时刻,同样操作,但是保留的最小汉明距离是前面最小汉明距离累加。在所有的接收码组处理完之后,会得到一组汉明距离以及所对应的最优路径。比较选择出最小的汉明距离,那么该最小汉明距离
48、所对应的路径即为最优路径。译码如图 4-5 所示,其中红线表示计算得到的最优路径。观察其变化规律,可以发现,假设 i 时刻的状态和第(i+1)时刻比较得知,若第(i+1)时刻小于第 i 时刻,那么对应代表实际信息中 0;若大于,则为 1。然后逐次比较译出信息值。4.4 卷积码的最大似然译码卷积码概率译码的基本思路是 4:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。
49、 3主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L级(L为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi译码正是基于这种想法。 对于(n, k, K )卷积码,其网格图中共2 kL种状态。由网格图的前K-1条连续支路构电子科技大学成都学院本科课程设计论文20成的路径互不相交,即最初2 k_1条路径各不相同,当接收到第K条支路时,每条路径都有2条支路延伸到第K级上,而第K级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把