




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2010年 3月 第 3期电 子 测 试ELECTRONIC TESTMar.2010 No.3 TD-LTE系统中咬尾卷积码译码器的FPGA实现林 丹 1,李小文 2(1 重庆邮电大学 计算机学院,重庆 400065;2 重庆邮电大学 通信学院 重庆 400065摘要:在LTE中,为了获得正确无误的数据传输,要采用差错控制编码技术。LTE中是采用 Viterbi 和 Turbo 加速器来实现前向纠错。咬尾卷积码保证格形起始和终止于某个相同的状态,它具有不要求传输任何额外比 特的优点。本文提出一种在FPGA中实现的咬尾卷积码的 Viterbi 译码算法,并在 Xilinx 的 XC3S500E
2、 芯片上 实现了该算法,最后对该算法性能进行了分析。关键字:LTE系统;咬尾卷积码;Viterbi译码; FPGA实现中图分类号:TN492 文献标识:AFPGA implementation of a tail-biting convolution decoder application on TD-LTE system Lin Dan1,Li Xiaowen 2(1 College of Computer Science and Technology, ChongQing University of Posts and Telecommunications, ChongQing, 4000
3、65, P.R.China;2 College of Communication,ChongQing University of Posts and Telecommunicat ions,ChongQing,400065Abstract:In LTE system, the error control coding techniques was used for attaining accurate data transmitting. Viterbi and Turbo accelerators applied on LTE to achieve the FEC. Tail-biting
4、convolution code trellis to ensure a start and terminate in the same state, it has does not require any additional bits transmitted advantages. This paper presented an FPGA implementation of Viterbi algorithm based on tail-biting convolution codes. This decoder was implemented in Xilinxs XC3S500E ch
5、ip. Finally, the algorithm performance was analyzed.Keywords:LTE system; Tail biting convolution code; Viterbi decoder; FPGA0 引言LTE 采用下行正交频分多址(OFDM ,上行 单载波频分多址 (SC-FDMA的方式 1。OFDM 是 LTE 系统的主要特点,它的基本思想是把高速数 据流分散到多个正交的子载波上传输,从而使子载 波上的符号速率大大降低,符号持续时间大大加长, 因而对时延扩展有较强的抵抗力,减小了符号间干 扰的影响 2。在 LTE 系统中,为了获得正确无误
6、的 数据传输,要采用差错控制编码技术。很多数据通信标准采用卷积码作为前向纠错 的方法 3。采用这种编码方式的数据通常都使用 Viterbi 译码器进行译码,Viterbi 译码器受格形状态 概率和分支度量的约束。传输的数据通常由一串 0比特结尾,以强制编码器回到 0状态,这样译码器 能从已知的状态开始译码,但是信道必须传输额外 的符号 4。另一种方法是保证格形起始和终止于某个相同 的状态,称之为咬尾技术,它具有不要求传输任何 额外比特的优点。咬尾在几种流行的通信标准里使 用,如 IEEE802.16,LTE 等。本文介绍了在 FPGA 中实现的咬尾卷积码的 Viterbi 译码算法。算法在整体
7、延迟一段时间后,正 确输出译码结果。1 咬尾卷积码咬尾卷积码的约束长度为 7,编码率为 1/3。卷 积码的编码器配置如图 1所示。编码器的移位寄存器的初始值应当设置为输入 流的最后 6位信息比特,这样移位寄存器的初始和 最终状态保持一致。若用表示编码器的 6个移位寄存器,则移位寄存器的初始值应当设 置为 :编码输出流,and对应于第 1、第 2和第 3个比特,分别如图 1所示。咬尾试图解决传输多余的终止比特的问题。在 包传送之前,包的最后 Z 个数据比特用来初始化编码器移位寄存器,也就是编码器的起始状态和终止 状态由包指定。这也隐含了在传输第一个符号前整 个数据包对于编码器来说必须是可用的。另
8、一种方法是先用开始的 Z 个数据比特初始化 编码器,在这个时间内不传输任何输出符号,然后 余下的(N-Z个数据比特进行编码并传送,开始 的 Z 个比特紧跟在最后进行编码。这种方式同样使 编码器的初始状态和终止状态相同。这种方法的优 点是在编码开始前不需要获得整个数据包,但是接 收器接收到的编码后的序列不是正序。咬尾技术具有以下优点 :不影响编码率,总的传输比特为 N/R; 不影响卷积码的错误校验属性。这项技术也有以下缺点 :译码延迟增加了,因为必须确定正确的起始 状态和回溯的初始状态 ;接收器复杂度略微增加。2 实现2.1 传统viterbi译码Viterbi 译 码 算 法 5是 由 Vit
9、erbi 于 1967年 提 出的降低计算复杂度的算法。它是计算网格图上在 时刻 到达各个状态的路径和接收序列之间的相似 度,或者说距离,去除不可能成为最大似然选择对 象的网格上的路径,即,如果有两条路径到达同一 0= 133 (octal1= 171 (octal2= 165 (octal图1 1/3编码率的咬尾卷积编码器 状态,则具有最佳度量的路径被选中,称为幸存路 径。对所有状态都进行这样的选路操作,译码器不 断在网格上深入,通过去除可能性最小的路径实现 判决,从而降低译码器的复杂性。Viterbi 译码算法一般的实现流程如图 2所示。 由图 2可以看出 Viterbi 算法的主要实现过
10、程可分为 4大部分 :分支度量计算(BMC ; 加比选(ACS ; 存储幸存路径存储器(SSM ; 输出判决(OD 。 图2 Viterbi译码算法处理流程在某些应用中,Viterbi 译码是根据接收到的符 号逐数据块进行译码,与邻数据块之间是相互独立的, 即在每个数据块内进行译码, 各数据块之间相互独立 6。从图 3我们可以清楚的看到,对输入的数据通过编码器进行卷积编码,到最后的输出译码结果, 总过经历了以下几个过程 :(1对输入的数据进行卷积编码,编码速率为 1/2,即每输入一个比特编码输出两个比特。(2将每次编码输出的两个比特量化为相应的数值,通过每一组数值计算出该组 4个状态(s0,
11、s1,s2,s3的分支度量值,即 BM 值。(3进行加比选(ACS运算,同时保存路径 信息。如图 2,首先在 0时刻给 4个状态(s0,s1, s2,s3赋初始路径向量值(PM :假如起始点为 状态 s0, 则状态 s0的初始路径向量值为 PM0=100(该数值根据实际的情况来定,如回溯深度和分支度量 值等,以便计算 ,状态 s1,状态 s2,状态 s3的初 始路径向量赋值为 PM1=PM2=PM3=0。(4ACS 过 程。 因 为 到 达 每 一 个 状 态 的 有 两 条 路 径(见 图 3 , 例 如 到 达 状 态 s0(00的 两 条路径分别是 s0(00和 s1(01,从中选出到达
12、 s0路 径 度 量 值 最 大 的 一 条 路 径 作 为 幸 存 路 径。 如 图 2, 若 从 0时 刻 到 1时 刻 :BM0=-8,BM1=0, maxPM0+BM0,PM1+BM1=PM0+BM0=92, 所 以 1时刻到达状态 s0的保留路径为 0时刻从状态 s0来的路径,从而更新 1时刻 s0的 PM0=92,同时由 于 1时刻到达 s0的是“0”路径,所以保存的该时刻 s0的路径信息是 0(若是“1”路径,则保存的 该时刻 s0的路径信息为 1 ,以此类推可求出该时 刻到达状态 s1,s2,s3的幸存路径,存储该路径信息, 更新其路径度量值 PM。(5输出判决(OD ,即回溯
13、过程,就是根据回溯深度以及 ACS 过程中所保存的 PM 值和幸存路径信息进行相应的算法回溯出译码结果。 图3Viterbi译码实现过程 接收到的数据包本次忽略B l o c k 0的输出数据回溯并输出Block 0的数据为Block 0提 供 训 练序 列 , 忽略 输 出 数据构建格形TB Block 0TB Block 0TB Block 02.2 咬尾卷积码的viterbi译码实现在多数的咬尾应用里,在传输之前使用数据包的最后 Z 个比特来对编码器状态进行初始化,这样在一个数据包内编码器具有相同的起始和终止状态,对于最佳译码来说,译码器的应该从这个状态开始构建格形,否则,由于在包的开始
14、阶段进行错误校正会降低似然度,从而导致 BER 增加。如果一个数据包内有多个回溯长度,一种方法是在包的末尾译码第一个 TB 块(传输块 。假定数据包终止于正确状态,TB 块 0的格形构建开始于正确的起始状态,如图 4所示,这个例子假定一个数据包包含了(N+1个回溯长度。图4 咬尾卷积译码在数据包的开始阶段,TB 块 0用来确定 TB 块1的正确起始状态。由于在构建格形时并不知道从哪一个状态开始,因此此时译码的 TB 块 0可能是不正确的,先忽略 TB 块 0的数据输出。在末尾重新插入块 0,则块 N 可以作为训练序列,为块 0提供正确的起始状态。这种方法明显地为块 0增加了额外的译码延迟。除了
15、起始和终止的数据块外,其他的数据块都是按正常方式解码,每个块的终止状态都自动地为下一个块提供起始状态。另一种方法是先输入数据块 N,忽略输出数据。这种技术给格形结构的 TB 块 0提供了正确的起始状态。这个块之后紧跟着块 0到块 N 的数据。TB块 0在末尾处再次输入以给 TB 块 N 的译码提供训练序列。这种方法的优点在于译码器端所有的数据 都是以正确顺序输出。缺点是必须等待所有的包被 接收完才能开始译码。若一个数据包只含有一个回溯长度的数据,那 么可以把块 0通过译码器 3次,则以上的方法同样 有效。第一次给格形结构确定正确的起始状态,第 二次构建格形,第三次进行正确的训练以使回溯开 始于
16、正确的状态(见图 5 。图5 单个数据块TB 块 0必须通过 3次,若只通过了 2次,则 会增加 BER,导致几乎所有的包都错误解码。在第 6节的性能分析中的曲线显示了其性能。3 仿真结果使 用 verilog 语 言 7在 ISE 8中 进 行 综 合、 实 现,布线后的时序仿真图如图 6,图 6为正确的维 特比译码时序仿真图,输入的比特序列为一串随机 数,经过卷积编码后输入到 Viterbi 译码器,最后输 出的译码序列与输入序列一致。本译码器实现了正 确的译码功能。图6 时序仿真图接收到的数据包本次忽略Block 0的输出数据回溯并输出Block 1的数据输出Block 0的数据,并为B
17、lock N提供训练序列为Block 0提 供 训 练序 列 , 忽略Block 1的 输 出 数据回溯构建格形TB Block 0TB Block 0TB Block 1TB Block 1TB Block N 4 性能分析图 7显示了一个 32个符号的数据块,约束长 度为 3。图中咬尾编码的数据块通过译码器 3次的 曲线, 与一个标准连续流(非咬尾译码器几乎相同。 数据块通过译码器两次的曲线显示相当坏的 BER 性 能。对于更大的约束长度,由于选择正确起始状态 的似然性的降低会使性能更差。 图7 BER性能参考文献:1 3GPP TS 36.201 v8.1.0: LTE Physical
18、 Layer-GeneralDescription(Release 8S. 2008-05; 7-8.2 3GPP TS 36.211 v8.3.0: Physical Channels andModulation (Release 8S. 2008-05; 71.3 郑宇驰,周晓方,闵昊.OFDM 系统中 Viterbi 译码器的设计及 FPGA 验证 J.复旦大学学报,2005, 44(6:923-927.4 Bill Wilkie and Beth Cowie.Viterbi Decoder BlockDecoding-Trellis Termination and Tail Biting.XAPP551 (1.0 February 14,2005.5 张宗橙.纠错编码原理和应用 M.西安 :西安电子科技大学出版社 ,2003.6 Martin R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村盖房签合同范本
- 乡镇库房建造合同范本
- 创业老板合同范本
- 1997施工合同范本
- 公司购买材料合同范本
- 保险劳务合同范本
- mpp管采购合同范本
- app广告合同范本
- 加盟痘痘合同范本
- 住房公证合同范本
- 初中物理科技小论文【6篇】
- 蕉岭县幅地质图说明书
- 学院中层正副职民主测评表
- 不宁腿综合征
- 检修期间安全措施
- 2023年湖南中医药高等专科学校单招考试职业技能考试模拟试题及答案解析
- 八年级数学下册同步练习(全册)
- 机房工程机房建设验收报告
- 安全生产条件核查表
- 冀教版六年级下册数学全册教案完整版教学设计(含教材分析、教学计划及进度表)
- GB/T 2951.21-2008电缆和光缆绝缘和护套材料通用试验方法第21部分:弹性体混合料专用试验方法-耐臭氧试验-热延伸试验-浸矿物油试验
评论
0/150
提交评论