基于FPGA的卷积码Viterbi译码器性能研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的卷积码Viterbi译码器性能研究
陈新永;杨瑞娟;肖玉芬;曾浩
【摘要】基于FPGA的卷积码Viterbi译码器,其性能与译码算法参数设置密切相关.在采用VHDL语言设计实现译码器的基础上,通过仿真,分析了Viterbi译码器参数的设置情况,就幸存路径长度、编码存储度等参数对FPGA译码器性能的影响进行了讨论,并给出了这些参数的最佳取值.对卷积码编译码参数设计具有较好的指导性和实用性.
【期刊名称】《现代电子技术》
【年(卷),期】2008(031)007
【总页数】3页(P97-98,102)
【关键词】卷积码;Viterbi译码;VHDL;幸存路径
【作者】陈新永;杨瑞娟;肖玉芬;曾浩
【作者单位】空军雷达学院,湖北,武汉,430019;空军雷达学院,湖北,武汉,430019;空军雷达学院,湖北,武汉,430019;重庆邮电大学,通信与信息工程学院,重庆,400065【正文语种】中文
【中图分类】TN919.3
卷积码是一种前向纠错控制(Forward Error Control,FEC)编码方式,其特点是接收端根据接收码字自动检测和纠正信道传输引入的错误。

由于FEC方式不需要反馈信道,译码实时性比较好,控制电路比较简单,因此,卷积码在卫星通信、数字
话音通信等实时性要求较高的场合有着重要的应用。

卷积码的编译码器的实现可以利用EDA技术,采用硬件描述语言VerilogHDL或VHDL等进行FPGA编程设计,这种实现方式在集成度、可靠性和灵活性方面可达到比较满意的效果。

在设计卷积码FPGA译码器时,需要考虑所用芯片规格、成本、系统计算量以及时延等因素。

目前现有文献多对卷积码的实现进行研究,而对译码算法中参数设置情况研究较少[1,2]。

本文采用VHDL语言,在设计实现卷积码FPGA编译码器的基础上,通过
仿真对Viterbi译码算法中的参数进行了讨论。

1 Viterbi译码算法
Viterbi译码算法由维特比在1967年提出。

Viterbi译码算法实质上是最大似然译码,他巧妙利用编码网格图的特殊结构,从而降低计算的复杂性。

例如图1即为(2,1,2)卷积码的网格图。

这里(n,k,m)分别指码组宽度n,信息元个数k和编码存储度m,称m+1=N为编码约束度。

图1 (2,1,2)卷积码网格图
该算法思想是:计算网格图上在时刻L到达各个状态的路径和接收序列之间的相
似度;在形成的多条路径中,去除不可能成为最大似然选择对象的网格图上的路径,即,如果有两条路径到达同一状态,则具有最佳量度的路径被选中,称为幸存路径。

对所有状态都将进行这样的路径选择操作,译码器不断在网格图上深入,通过去除可能性最小的路径实现判决。

Viterbi译码算法步骤如下[3]:
(1) 用数组p(i,j),c(i,j)描述网格图结构。

p(i,j)表示到达状态i的第j个前状态,其对应的码字是(i,j)。

(2) 计算第L时刻接收码RL相对于各码字的相似度,亦称作分支量度BM(Branch Metric)。

BML(i,j)=W[c(i,j)⊕RL]
(3) 计算第L时刻到达状态i的最大似然路径之相似度,也即路径量度PM(Path Metric)。

PML(i)=min{PML-1(i)[p(i,j)]+BML(i,j)}
(4) 译码输出并更新第L时刻、状态i对应的幸存路径。

具体步骤是:
① 将到达状态i的最大似然路径的前状态j所对应幸存路径作为本时刻状态i的幸存路径,即SL(i)=SL-1(j);
② 选择具有最小(最似然)PM那个状态对应的幸存路径最旧的码字作为译码输出;
③ 将各状态幸存路径最旧的码字从各移存器移出,再将到达各状态的最大似然路
径在时刻L所对应的码字从移位寄存器的输入端移入幸存路径SL(i)。

2 FPGA编译码器
编码器结构比较简单,其所选用的系列器件可选性较大,这里选用Altera公司MAX7000器件系列,他的制造工艺是E2PROM,集成度(逻辑门数)为600~10 000,管脚延时为6 ns,工作频率可以达到151.5 MHz。

译码器的整体结构相对
要复杂一些,因此所选用的系列器件要求较高,本文选用Altera公司FLEX10K器件系列,他的制造工艺是SRAM,集成度(逻辑门数)为1万~25万。

下面以(2,1,2)卷积码为例进行设计,如图2所示。

图2 (2,1,2)卷积码
采用VHDL语言进行编程设计,经Max+PlusⅡ编译、仿真,结果如图3所示。

图3(a)中D为原始比特信息,Z为编码输出;图3(b)中A为接收码,Y为纠错译码,D为译码输出。

对比知该译码器实现了正确译码。

图3 (2,1,2)卷积码编译码器仿真结果
3 译码器性能分析
对于(n,k,m)卷积码,其编码存储度(移位寄存器单元的数量)为m,幸存路径有2m 条。

每条幸存路径(或信息序列)存储器单元数是n*D,其中,n是卷积码码组宽度,
D是需要存储的码组的个数。

D的取值一般考虑取m的整倍数,称D为幸存路径长度。

编码存储度和幸存路径长度的取值问题关系到芯片规格、传输时延等问题。

若D很大,则译码器的存储量太大而难以实用。

一般情况下,当译码进行到第5
级(每级包括m个时刻)以后,每个状态幸存路径的前几个分支已基本重合在一起,这就是说每个路径存储器不必存储D个很大的码序列。

译码时,当译码器接收并
处理完第D个码组后,译码器中的幸存路径存储器已全部存满,当译码器开始处
理第D+1个码组时,他就对幸存路径存储器中的最顶端的码组做出判决并输出。

按照上述Viterbi译码步骤,采用Matlab仿真,在AWGN信道下,当D取m
的2~9倍时,即D=N*m,N=2,3,…,9,得(2,1,2)卷积码的传输性能如图4所示。

图4 (2,1,2)卷积码译码性能
当编码存储度增加时,卷积码译码性能也有所提高。

依照上述编译码过程,得出(2,1,3)卷积码的传输性能如图5所示。

图5 (2,1,3)卷积码译码性能
对比仿真结果图4与图5 ,可得出如下结论:
(1) 适当增加幸存路径的长度可以提高译码器的纠错能力。

图4中N值由2递增
到9的过程中,其误比特率逐渐降低。

(2) 幸存路径的长度在增加到一定值时,译码器纠错能力趋于稳定。

当N值增加到6以上,误比特率降低幅度大为减小,曲线有合二为一的趋势。

因此,可以认为幸存路径长度D取编码存储度的6倍以上就可以取得比较好的译码性能。

(3) 增加寄存器数目(即编码存储度m)可以适当提高译码性能。

图3(a)与图3(b)中寄存器数目分别为2和3,对比两图可知,在N值和信噪比取值相同的情况下,
后者的误比特率较低。

需要说明的一点是,编码存储度m取
值不宜过大,在Viterbi译码过程中,他将分别对应2m个状态、路径量度和2m
条幸存路径,译码器存储单元与计算量将随m成指数地增加。

Odenwalder[4]给出的常用卷积码的短编码存储度为2~7。

4 结语
本文探讨了广泛用于远距离实时通信的卷积码Viterbi译码器的实现及其传输性能。

采用硬件描述语言VHDL和Altera公司高性能FPGA芯片使方案设计具有较强的灵活性。

本文对译码算法中幸存路径长度和编码存储度参数的取值问题给出了比较合理的结果,在卷积码编译码设计中具有较好的指导性和实用性。

参考文献
[1] 赵旦峰,刘会红.卷积码Viterbi译码算法的FPGA实现[J].现代电子技
术,2004,27(1):41-43.
[2] 刘建强,殷贤华.卷积码Viterbi译码器的FPGA设计与实现[J].现代电子技
术,2004,27(9):47-48.
[3] 曹雪虹,张余橙.信息论与编码[M].北京:北京邮电大学出版社,2001.
[4] 徐平平,宋铁成.数字通信[M].北京:电子工业出版社,2004.
[5] 王新梅,肖国镇.纠错码——原理与方法[M].西安:西安电子科技大学出版社,2001.。

相关文档
最新文档