3G测试系统中的Viterbi译码及DSP实现及其优化.docVIP

3G测试系统中的Viterbi译码及DSP实现及其优化.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3G测试系统中的Viterbi译码及其DSP实现及优化 来源:EDN电子设计技术 |?发表于:2007年07月10日 本文相关DataSheet: TMS320C54X????TMS320C55X????TMS320C55x????   摘要 介绍了一种用于测试TD-SCDMA手机终端测试平台中的关键技术——Viterbi译码。研究用约束度K=9的卷积编码和最大似然Viterbi译码的差错控制方案,在Viterbi译码算法中,提出了原位运算度量、保存路径转移过程和循环存取幸存路径等方法,能有效地减少存储量、降低功耗,使得K=9的Viterbi译码算法可在CCS集成环境平台和TMS320C55XDSP芯片上实现,其性能指标符合3GPP通信协议标准要求,文中给出了适用于DSP编程的算法,给出了DSP具体实现,同时给出了硬件的仿真结果。   0、引言   随着TD-SCDMA产业化进程的日益明朗,3G之战还未吹号,硝烟味已弥漫了黎明前的市场。这就要求尽快提供好的手机终端。对手机终端的性能测试越显得迫在眉睫。由于重邮信科3G研究院在TD方面有着很成熟的技术和经验,在此基础上我们不但推出了3G样机,而且致力于开发好的TD手机测试平台,本文所介绍的Viterbi译码方法是独具特色的TD测试平台中所用到的。3GPP中TD-SCDMA系统采用了3种信道编码方案:卷积编码、Turbo编码和不编码。不同类型的传输信道所使用的编? 码方案和编码效率是不同的。本文介绍针对卷积编码的Viterbi译码方案。针对DSP设计的特点,本文在不改变纠错性能的前提下提出了一系列的方法,如原位运算、保存转移、循环存取等,旨在将存储器的容量减到最小,将整体功耗降到最低。   1、Viterbi译码原理[1]   Viterbi译码算法(简称VA算法)是由Viterbi在1967年首先提出的,它是一种针对卷积码的最大似然译码算法。他不是在网格图上依次比较所有的可能路径,而是接受一段,计算、比较一段,保留最有可能的路径,从而达到整个码序列是一个最大似然序列。Viterbi译码算法优点是在码的约束比较小时,它比序列译码算法效率更高、速度更快,译码器也较简单。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2(N-1))。所以Viterbi译码一般应用在约束长度小于10的场合中。虽然有许多算法降低了复杂性、减少了运算量,但它们必然以牺牲性能为代价。本文研究的出发点是立足于不降低算法性能,寻求在实现最大似然译码时的优化方法。而这点我们主要是通过与硬件实现相结合做到的。Viterbi算法主要由路径度量的“加比选”运算、度量的更新、路径的更新、最大似然路径的回溯过程组成。   Viterbi译码算法流程图如图1所示。 图1 Viterbi译码算法处理流程   2、具体DSP实现及优化方法   2.1 分支度量   每收到一个符号就进行状态转移,Viterbi译码算法必须计算前一个状态到各个新状态的分支度量值,当采用硬判决输入时,分支度量值可用汉明距离表示;若用软判决输入时,采用欧氏距离来计算。本文实现是利用软判决来实现的。具体原理如下[2]:   对于编码速率为R=1/C的卷积码来说,欧氏距离:   其中C为码率的例数。即:R=1/C。上式可以分解为:   其中的   在一级中都是一样的。中间项的2只是一个常数可以不考虑。所以分支度量值可以简化为:   省去上式前面的负号,但在分支度量值比较时应取大值。将其中的Gn(j)用双极性表示。即0用+1表示,1用-1表示。则分支度量值变为:   所以在状态转移图中一级中的分支度量值的绝对值只有两个值。在译码过程中,由于度量的数值是累加的,会造成溢出,解决的办法是在每一步运算时将各个状态的度量减去前一步所有状态度量的最小值。那么度量的精度如何控制呢?也就是说,要用多少二进制位来表示度量既不溢出又使存储量最小?对于码率为 1/2,约束度为K的卷积码的硬判决译码,在每一步的度量的最大值与最小值的差不超过2(K-1)。由此可以知道度量跨度的最小二进制比特数为[log2 (2(K-1))]。当K=9时,可以用5比特二进制位来运算和存储每一步的度量。事实上,这一结论也可以从状态转移情况推得。假设在第i步某一状态具有最大度量且为2(K-1)+1+M(设最小度量为M),根据式(1)、(2)的度量递推规则,在第i-1步必有相邻连续两状态的度量大于2(K-1)-2 +M,在第i-2步必有连续4个状态的度量大于2(K-1)-4+M,在第i-S步必有连续2S个连续状态的度量大于2(K-1)-2×S+M,那么在第 i-(K-1)步必有连续2(K-1)个连续状态的度量大于M,而对约束度为K的卷积码

文档评论(0)

lyxbb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档