南 京 理 工 大 学 紫 金 学 院
毕业设计(论文)外文资料翻译
系: 电子工程与光电技术系 专 业: 通信工程 姓 名: 王君 学 号: 080404248 外文出处: Multitopic Conference
(用外文写)
附 件: 1.外文资料翻译译文;2.外文原文。
指导教师评语: 成 绩 签 名 年 月 日 附件1:外文资料翻译译文
使用DSP技术的Viterbi译码器的性能分析
S. K. Hasnain,Azam Beg and S. M. Ghazanfar Monk
摘要
提高无线通信的速度需要一个可靠的解决数据转移的方案。信号信噪比在数字无线通信信道中是一个对经营业绩起主要的条款,为了提高性能,编码数据和纠错码的解决方案已经被介绍。
Viterbi解码器是用于这种目的的技术之一以及Viterbi算法用于解码。该算法是一个非常快速和有效的方法将编码数据从通道中解码。
在本文中,主要描述基带结构卷积处理单元和实施编码器以及Viterbi译码器。卷积编码率半和约束长度为3以及Viterbi解码率1/2和约束长度为3的使用TMS320C DSP芯片设计。 1.简介
Viterbi译码算法被维特在1967年发现并分析[1]。它是用在卷积信道编码的解码[2]。这是一个非常强大的技术,在以带宽为代价的前提下,它提供非常高的错误恢复。它有两种Viterbi解码方法:连续和完整。连续解码是在一定长度的位流,并允许实时解码。然而,该方案不使用完整的纠错能力。全解码执行的解码在整个编码块收到之后。它会导致解码的延迟,因为整个块收到之后任何解码才可以开始,这与连续解码相反,不过,它可以更有效的纠正错误。
前向纠错的目的是通过加入一些精心设计的冗余信息,提高通过信道传输数据的通道能力。加入这个冗余信息的过程被称之为通道编码。卷积编码和块编码是信道编码的两个主要形式。
卷积码的串行数据操作,一个或几个位在一个时间。分组码操作比较大的(通常,多达几百个字节)消息块。它有各种有用的卷积码和黑色代码,以及各种算法解码接收到的编码信息序列来恢复原始数据。
通过Viterbi译码的卷积编码是一种前向纠错技术,特别适合于这种传输信号主要由加性高斯白噪声(AWGN)[5,6]损坏的通道。可以认为,高斯噪声的电压分布随着时间的特点,可以说是使用高斯,或正常,统计分布,即一个钟形曲线。这个电压分布具有零均值和标准偏差,是接受信号的信号噪声比(信噪比)[4,5]的
一个功能。让我们假设一下,接收信号的水平是固定的。如果信噪比高,标准偏差的噪音小,反之亦然。在数字通信中,信噪比通常是衡量标准,它代表着每比特能量除以一面的噪声密度。
卷积码通常使用两个参数进行描述:代码速率和约束长度。代码速率,k/n,表示在一个给定的编码器循环周期内通过卷积码编码器的比特的数量(k)与卷积编码器的多信道输出符号(n)的比例。约束长度参数[6,7],K表示卷积编码器的“长度”,即多少k位阶段可使组合逻辑产生输出符号。参数m与K密切相关,这表明许多编码周期如何使输入位被保留,并用于编码后第一次出现在卷积编码器的输入参数m。参数“m”可以被看作是编码器的记忆长度。卷积码是用来保护传输的数据抵抗沟通渠道的噪声干扰。作为当前信息位有算法与卷积码中过去的一些信息比特有关,虽然它在保护数据方面显示了良好的保护能力,但是其解码的复杂性使得代码难以分析。 2.算法
Viterbi算法[3]涉及计算的相似性措施或距离,在时间上,它在接受信号和网格路径进入每个状态的时间之间。这些已被考虑删除网格路径的Viterbi解码器不可能是最大似然选择的候选人。当两条路径进入相同的状态,它会选择一个最好的度量;这就是所谓的幸存路径。这是所有国家的幸存路径的选择。解码器继续以这种方式推进深成的网格,解码器通过消除最有可能的路径来做决定。对不太可能路径的早期反应,降低了译码的复杂度。 3.Viterbi编码器
K卷积码是由n,k,K这三个整数来描述的。源数据块分割成k数据位也叫作信息位[5]。编码器将每个k位数据块转换成一个较大的块的位称为码位或信道符号。整数K称为约束长度参数,它代表编码移位寄存器中K-元组阶段的数目。
卷积码有一个重要的特征,编码器具有记忆卷积编码程序发出的n元组,不仅仅是一个输入k元组,而且也是以前的K-l输入k元组的一个功能。数据位与总位的比列,k/n被称为每个预示位信息代码的速度。 4.编码器的状态图
卷积编码器被称为有限石板的机器属于设备类,这种机器有记载过去信号的能力。状态提供了一些以前信号事件方面的知识和在未来的可能输出。
显示在图框中的状态,代表着最右边的k-l寄存器阶段的可能内容,和各个状
态之间的路径代表着从这样的状态转移中的输出分支。寄存器的状态被指定为a=00,b=10,c=01和d=11,如图:
图1:该图说明了所有可能的过渡态 5.编码器栅格
用网格节点来描述编码器的状态;第一排对应的状态a=00,第二个和后续行对应的状态b=10,c=01,d=11。在每个单位时间内,大棚需要2k-1个节点代表指出,在图2中显示了2k-1个可能编码。
图2:2个节点代表2个编码器的可能状态
6.解码器网格
解码过程背后的基本思想通过检查编码器与解码器网格对比可以得到最好的
k-1
k-1
理解。解码器的网格很方便分行标注在时间点上,通过收到的代码符号和相应分支中编码器的网格之间的海明距。消息序列是由“m”代表的。“U”代表编码分支机构的码字,“Z”表示噪声污染的接受序列。
所看到棚架上的分支代码体现了如图1所示的编码器的特点,被称为先验编码器和解码器。这些编码分支机构码字的代码。将有望从编码器的输出中走出来作为每个状态的过渡符号。Viterbi解码器的编码比特流块逐块作为输入。编码器中的状态图指定哪些状态可以从对方状态达成协议。例如,我们项目中所使用的编码器,只有零状态和二状态可以到达零状态。正因为如此,只有特定的输出组合是可能的,通过这个信息,我们可以纠正错误。编码器实现百分之几的速率,例如Viterbi译码,如图3所示。
图3:网格编码器上的分支代码
解码器在状态0时启动。在那里,只有2个可能的过渡是可行的:状态0和状态2,使输出点分别为0或1。在每个状态中,汉明距的计算是给定输入的。在这种情况下,11是输入,0和2的汉明距分别为状态0到状态0与状态0到状态2。那是状态0至状态0的过渡,预计投入00。然而在这种情况下,11收到的两位是错误的。同样,状态0至2的过渡中,11预期从而距离为0。
如图4所示这个网格图中的位置,它是可以切换到任何状态的,对于这些状态,它们的海明距离是可以计算的。经过前两个转换,每个状态可以到达其它两个状态,因此需要决定哪些使用过渡。在这点上每个状态的过渡保持最低的误差度量(以往所有海明距离的总和)以及其它的将会被丢弃。例如,在我们的例子中,状态0可
以从状态0和1中到达,错误的指标分别是4和1。路径度量选择给状态1.因此,对于任何给定的状态只存在唯一一个可能路径状态给出了最低误差度量。这最后一步是重复编码序列的长度。当程序完成!路径的最低误差度量的所有状态选择和解码输出对应于该路径的选择作为解码器的输出。
图4:网格图
7.分析与实现
1/2速率的Viterbi译码器已经落实有四种可能的状态。首先创建一个简单的卷积编码器,然后输入比特流编码。对于这个编码序列,要实施恰当的Viterbi译码器。
信息N位
循环
Y 状态 N 输入 Y U1 U2
图5:常规解码流程图
测试这个执行后,最终将它翻译成C语言代码转移成DSP汇编语言。前两个状态转换是特殊情况,因为所有的转换总是被使用,没有作出决定。在此之后,可以用一个循环,因为所有后续的转换时相同的。因此,前两个状态转换被循环,其余的是硬件编码。
对于每一个给定的状态和一个给定的输入,误差相关的度量是先计算的。一个XOR操作执输入和预期之间的可能的状态转换。海明距离给出了这样的结果和XOR的结果一样都是0,1,2。在DSP的单个机器指令下可以完成整个操作。然而由于时间所限,这些步骤在为每个状态重复(在这种情况下,四次)。每输入到解码器都重复上述步骤。
8.DSP套件TMS320C02的运行实现
在Matlab代码转换成C语言之后,由于DSP的TMS320C02支持C语言,因此编码器和解码器的设计算法得以实现。应用软件代码。开发环境与DSP已经被使用。代码开发的功能是,它可以将C语言代码转换成DSP汇编语言,但使用代码开发以及处理代码开发环境这一项目时应该知道一些DSP。在学习完代码开发和DSP套件所需的程序集之后,由在DSP中使用缓冲器(输入和输出缓冲)引起的DSP内存管理问题目前将被克服。
编码位数
附件2:外文原文(复印件)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务