基于FPGA的Viterbi译码器设计

合集下载

可配置的Viterbi译码器的FPGA实现的开题报告

可配置的Viterbi译码器的FPGA实现的开题报告

可配置的Viterbi译码器的FPGA实现的开题报告一、选题背景及意义随着通信技术的不断进步,数字通信技术在现代通信系统中占有越来越重要的地位。

Error-Correcting Codes是数字通信系统中广泛使用的技术之一,它能够在数据传输过程中发现和纠正错误,从而保证传输数据的可靠性。

Viterbi译码器是一种常用的Error-Correcting Codes解码器,它是由Andrew Viterbi于1967年提出的。

Viterbi译码器主要应用于数字通信、数据存储、卫星通信和数字广播等领域。

数字通信技术的迅速发展和应用推动了Viterbi译码器技术的不断完善和优化。

通过FPGA实现可配置的Viterbi译码器,能够在数码通信领域中发挥重要的作用,进一步提高传输的可靠性和传输速度。

二、相关研究现状现有的Viterbi译码器研究主要集中在理论算法和软件实现方面。

其中,Viterbi算法的研究涵盖了多种变化和改进,包括硬判决Viterbi解码器和软判决Viterbi解码器,以及不同的度量距离和状态迁移机制。

另外,还有一些研究对Viterbi译码器进行了不同水平的优化和改进,如采用并行算法和硬件实现等。

由于FPGA优秀的可编程性和高速性能,FPGA实现的Viterbi译码器成为近年来的研究热点之一。

三、研究内容和方法本课题主要研究可配置的Viterbi译码器的FPGA实现。

在实现过程中,主要包括以下几个方面:(1)研究Viterbi算法的基本原理以及主要思路;(2)确定FPGA实现的Viterbi译码器的框架,并设计相应的硬件电路;(3)通过Verilog HDL语言编写代码,实现硬件设计;(4)对设计代码进行仿真和测试,验证设计的正确性和实现的效果。

四、预期成果预期的成果为成功实现可配置的Viterbi译码器的FPGA实现,并在FPGA平台上进行验证。

实现的Viterbi译码器可以适应不同的码率和约束长度,并能够提供高速度和高处理能力。

一种Viterbi译码器的FPGA实现

一种Viterbi译码器的FPGA实现

砍4
吞吐率要求。 译码器的硬件实现可以 采用串行或者并行方式。 串行方式可以 通过对硬件单元的复用降 低电 路设计门数, 适合于K值较大的 情况, 但降低了数据的吞吐量。 同样基于数据吞吐率的 要求, 在 译码器的实现中,采用了全并行方式。 电 2 C 单元、 路主要由3 个A S 全局路径比 较和回溯逻辑组成。一个A S C 单元由4 个加法器、
元。对于约束长度K 7 译码,总计需3 个蝶形单元。 =的 2 对于译码码元的输出, 根据编码方采取的 策略, 有两种不同的 方式: 1 编码端采用固定长度的数据块。 、 在每一个数据块的尾部增加 K个 0 迫使每块数据输出 , 后的编码器状态复原为全0 。在译码端, 选择最终状态为全 0 的路径作为最佳路径,沿该路径行 进记录的信息位为输出的 译码信息. 这种方法实现起来有一定的简化, 不需要最终的 6 4条路径 的比 较。 但是, 编码效率降低了。 2 编码端信息流是连续的。 、 在译码端经过一段码流后 ( 一般为L (-0 K , = - ) 可以认为 51 ) 后 续的 码流与L 位以前的 码流相关性很弱, 选择最小路径度量值的记录信息作为输出。 考虑到要求较高的编码效率,我们在设计中采用了第二种方式. 在译码器的 输出处理上, 有两种方式: 回溯法和寄存器交换法。 溯法在输入码流达到一定 回
度量的最大值和最小值; K时约束长度。当K 7 三位软判决时, =, 路径度量的范围为0 2 -4. 因此,设计中路径度量值用 6 位二进制表示。为了保证各状态的路径度量值不溢出,需要对 路径度量值做归一化处理。
全局路径比 较器需要从2, 态路径 值中 最小 K个状 - 度量 选出 结果。 设计中 采用了比 器阵 较
条。
3 Vt b译码器的结构 . e i ir

基于FPGA的卷积码Viterbi译码器实现方法

基于FPGA的卷积码Viterbi译码器实现方法

1 卷 积码和格型图
设 计某 ( 3 , 2 , 3 ) 卷 积码 V i t e r b i 译码器 , 图 1为 该 编码 器 的编码 方框 图 。
译码算法等 。由于卷积码具有 网格编码 的特点 ,
维特 比 ( V i t e r b i ) 提 出 了最 大 似 然 ( Ma x i m u m L i k e l i . h o o d ,ML ) 译 码 算 法 J , 它 易 于 对 约 束 长 度 小 的卷 积码 实 现软判 决 译码 。文 献 [ 4] 基 于 状 态 机设 计 了 V i t e r b i 译码 器 , 该 方 法 需 要将 状 态 转 移矩 阵 和输 出
@ 2 0 1 3 S c i . T e c h . E n g r g .
基于 F P G A的卷积码 V i t e r b i 译码器实现方法
李 明阳 ’ 柏 鹏 屈 鹏 , 张毓 桐。
( 空军工程大学装备管理与安全工程学院 , 综合 电子信息系统与电子对抗技术研究 中心 , 理学院。 , 西安 7 1 0 0 5 1 )

h +m 一1 h+ m 一1
M ( r I ) =∑ M ( r ) =∑l g P ( r )
f =0 2 =0
( 2 ) ∞一 一 O 吣 O m 1 ∞ l m O 叭 O ¨ 1 叭 l ¨ 可 以将 一条 路径 的前 t 个 分 支 的部 分路 径 量度
矩阵存储 在查找 表 中, 译码 过程 中需 要搜 索查 找 表, 增加了译码 时间。文献 [ 5 , 6 ] 分析 了资源 复用
和译 码 时 间 的关 系 并 设 计 了相 应 的译 码 器 。本 文
借鉴该文思路设计 了一个码率 为 2 / 3的卷积码 的

一种串行Viterbi译码器的FPGA设计与实现

一种串行Viterbi译码器的FPGA设计与实现

第30卷 第5期2007年10月电子器件Ch inese Jou r nal Of Elect ro n DevicesVol.30 No.5Oct.2007FP G A Design of Ser ial V iter bi DecoderL IU Yan g 2mei ,YU N in g 2mei ,SO N G L i a n 2g uo ,WA N G Tao(Dept.of Elect ronic Engi neerin g ,Xi ’an Univ.of Technol ogy ,Xi ’an 710048,Chi na)Abstract :The t heor y of (2,1,6)convol ut ional encodi ng and Vit erbi decoding ba sed on U WB (Ult ra Wi dt h Band)com munication syst em i s int roduced.S i mul ta neously ,t he i mplementi ng circuit of serial Vi ter bi de 2coder and i t s sub 2module i s accomplished .The hardware design of Vit erbi decoder i s i mplemented sucess 2f ull y i n F PGA wit h Alt era company ’s Apex20ke series.It adopt s serial st r uct ure and t raceback algori t hmso as to only t ake up 2195L Es i n FP pared wi t h parallel decoder ,i t saves about 50%ha rdware re 2souce.K ey w or ds :UWB ;convolutional encode ;Vi terbi decoder ;t raceback EEACC :6120B;6150C一种串行Viter bi 译码器的FP GA 设计与实现刘阳美,余宁梅,宋连国,王 韬(西安理工大学电子工程系,西安710048)收稿日期:2006210225作者简介:刘阳美(19822),女,硕士,主要研究方向为超宽带UWB 通信系统及VLSI 设计,yangmeiliu2000@ ;余宁梅(632),女,博士,博士生导师,主要研究方向为专用集成电路设计技术及工艺的研究;宋连国(2),男,硕士,主要研究方向为SI 数字前端与OFDM 芯片的研究;王 韬(82),男,硕士,研究方向超宽带UWB 通信系统及VL SI 设计摘 要:介绍了基于超宽带(UWB )通信系统的(2,1,6)卷积码和Viter bi 译码基本原理,设计了串行Viterbi 译码器以及各个子模块实现电路,采用Altera 公司的Apex20ke 系列F P G A 来综合实现,完成了Viter bi 译码器硬件设计.该设计使用串行结构,回溯算法,占用L Es 仅2195个,与并行译码相比节省了约50%的硬件资源.关键词:超宽带;卷积码;Viter bi 译码器;回溯中图分类号:TN 764 文献标识码:A 文章编号:100529490(2007)0521890204 超宽带(UWB)是一种采用纳秒级脉冲信号宽度,占用吉赫量级信号频谱,发送功率极低,适用于短距离的无线通信技术.以高分辨率,高截获率,信息含量大和能探测隐蔽目标等优点而成为无线通信领域研究和开发的一个热点[1].降低数据传输的误码率,提高通信质量是一个关键问题.UWB 系统采用的IEEE 802.15.3协议规定了信息传输的差错控制方案是(2,1,6)卷积码和最大似然的Viter bi 译码方案.Vit erbi 译码算法是卷积码译码的一种主流算法,基于码的代数结构基础,利用了信道的统计特性,使译码错误概率降到很小.在码的约束度较小时,Vi ter bi 译码算法效率高、速度快,易于硬件实现.Vit erbi 译码实现时一般可采用3种结构:并行,串行,串并结合.并行Vit erbi 译码速度快,但实现所需的资源随卷积码约束度的增加呈指数增长.串行Viter bi 译码实现所需资源较少,但以牺牲译码速度为代价.串并结合的译码则是在译码速度和资源之间取一个折中.本文对U WB 系统采用的(2,1,6)卷积码和Viter bi 译码的实现技术进行了研究.在保证译码速度和尽量减少硬件资源的原则下,完成了U WB 系统的串行Vit erbi 译码器的F PGA 硬件设计与实现.8191979A C 194.1 V iter bi 译码器(2,1,6)卷积码的约束长度k =7,子生成元为(171,133),均为8进制数,生成多项式G(D)=[1+D +D 2+D 3+D 6,1+D 2+D 3+D 5+D 6],D 是延时因子.每个时刻输入1bit 原始信息,移位寄存器根据生成多项式进行异或运算,得出2bit 编码信息.移位寄存器根据输入信息的不同有规律地进入不同的状态[2].编码器结构和状态转移图如图1所示.(a )(2,1,6)卷积编码图 (b )状态转移图图1 卷积编码图和状态转移图Vit erbi 译码器的工作原理:依据编码器状态转移图,对输入数据进行分支度量计算,送入加比选(ACS 单元),选择较小累加度量的路径,保存其幸存路径信息,用具有最小度量路径的状态标号进行回溯并选择幸存路径信息译出码字.Vit erbi 译码器主要由分支度量计算模块,加比选计算模块,累加度量存储模块,最小度量判决模块和回溯与判决输出模块组成,如图2所示.串行译码通过控制逻辑实现对分支度量计算和蝶型(2个A CS 单元)的复用,只需要一组分支度量和蝶型,而全并行译码需要32个相同的单元,因此串行译码可有效地节省资源.图2 Viterbi 译码框图1.1 分支度量计算分支度量计算模块计算进入当前状态的两条分支路径的度量.1/2卷积码共有4个分支值:00,01,10,11.对于硬判决,分支度量是接收到的码字与分支值的汉明码距,软判决则是欧式距离[2].本文采用硬判决,因而计算汉明码距.由于k =7的卷积码一共有=6个状态,每个状态对应两条不同的分支,共有8个分支值这些值已经按图()状态转移图的规律生成存放在ROM 中采用F G 外挂ROM 而不用卷积编码器生成分支度量的方式,只用了FP GA 内的一个地址控制器,易于实现,有效的节省了硬件资源.1.2 加比选(ACS 单元)计算加比选(ACS )单元是整个Vit erbi 译码的核心,完成每个状态累加度量值的计算,比较并选出幸存路径信息.如图3所示ACS 的原理图,M (2i ,t -1)和M (2i +1,t -1)是t -1时刻2i 和2i +1节点对应的累加度量值,B M (2i ,t )和BM (2i +1,t )是t 时刻的分支度量值,M (i ,t )是计算得出t 时刻i 节点的累加度量值,M (i ,t)既作为下一译码周期的累加度量输入,又作为当前译码周期判断选择最小累加度量状态标号的输入,SU R (i ,t )是t 时刻的幸存路径信息.在实际设计中,使用了一个蝶型(2个ACS 单元),完成的操作如下:M (i ,t )=min (M (2i ,t -1)+[B M](2i ,t ),M (2i +1,t -1)+[BM ](2i +1,t ))M(i +32,t)=min (M(2i ,t -1)+[BM ](2i +1,t),M (2i +1,t -1)+[BM ](2i ,t ))图3 加比选(ACS)单元如果选的是蝶型上支M (i ,t )则幸存路径信息为“0”,如果选的是下支M (i +32,t )则幸存路径信息为“1”.由于卷积码的状态转换具有蝶型规律,与使用单个ACS 单元相比可以少读写一次累加度量的地址,从而在兼顾资源地前提下速度提高一倍.1.3 累加度量存储累加度量的存储是配合加比选(AC S )单元的关键操作,体现了整个Vi terbi 译码算法的速度.经典方式是由贝尔实验室最先提出来的“乒乓操作”,即:前一时刻读出数据的两块RAM 作为当前时刻的写入RAM ,前一时刻写入的两块RA M 作为当前时刻的读出RAM [4].由于这种方法要使用4块RAM ,不能很好的利用FP GA 资源.为了有效的节省资源,本文使用一块RAM ,采用改进的“乒乓操作”对累加度量进行存储和更新.在同一块RAM 中要读出一个状态的两个度量,同时还要保证读出和写入的数据不被覆盖,地址控制成了关键,具体实现如下1981第5期刘阳美,余宁梅等:一种串行Vit erbi 译码器的F P G A 设计与实现82k-1412.1b .P A :k =7卷积码共有64个状态,使用双口RAM ,读写地址和数据输入输出分开,同时读写,地址宽度为7.RA M 分为A ,B 两个区,A 区地址为0~63,B 区地址为64~127.首先用64个时钟周期对A 区RAM 进行初始化,初始化值为0,相当于写地址为0~63,写入数据为0.当初始化完毕时,开始AC S 运算,ACS 是组合逻辑运算,运算得出当前时刻的累加度量值存到B 区.这个时候按照蝶型地址规律,读地址依次为(0,1,2…63),写地址为(64,96,65…127).此时,第一个译码周期完成,历时64个时钟周期A 区数据已经读出,B 区数据为下一译码周期所要读出的累加度量.第二个译码周期开始,A ,B 区读写方式切换,A 区为写数据区,B 区为读数据区,读地址依次为(64,65,66…127),写地址为(0,32,1…63).第三个译码周期A ,B 区读写功能继续切换,地址控制与第一个周期相同,以后的译码周期与前面相同,直到译码结束.与此同时,蝶型单元每处理完一个状态,得到1bit 幸存路径信息.当所有的状态都处理完了以后,可以得到64bit 的幸存路径信息,将这64bit 作为一个单元存入幸存路径RAM.对于约束度为k 的1/2卷积码的硬判决译码,每一步的最大值和最小值之差即度量跨度不超过2(k -1),用二进制表示的度量跨度最多需要log 22(k -1)bit.当k =7时,最少可以用4bit 来存储累加度量值[3].传统的归一化方式是一个译码周期完成,找到最小的累加度量值,然后让所有的值都减去最小值,这样做比较浪费时钟和硬件资源.本文采用的除2归一法是一种既不浪费时钟而且结构简单节省资源,它更适合FPG A 实现的方法.具体实现如下:处理前一组信息时一旦发现有累加度量超过门限值(由数据位宽决定)就给出一个信号,在下次读出累加值的时候统一右移一位(相当于除以2).1.4 最小度量判决为了回溯的需要,处理完一组译码信息后要得到最小的累加度量值所对应的状态标号.如图4最小度量判决模块实现框图,采用图1(b )蝶型结构时,输出口依次为(S0,S32)、(S1,S33)…(S31,S63),要从这64个值中选出最小值的状态标号,首先用一个加法计数器产生一个(0,1,2…31)序列,计数器值和状态标号具有固定的对应关系,0代表处理(S0,S32),1代表处理(S1,S33),…31代表处理(S31,S63).然后采用串行比较结构实现选出最小值的功能最小值寄存器初值为55(数据位宽为8),然后让(S ,S3)对应的M (,)和M (3,)两个累加度量和55比较,得到一个最小度量M M 2ric 送入最小值寄存器,如果最小值来自S0的路径则最小状态Mi nStat e 是此时刻计数器的值,如果来自S32则最小状态Mi nSt at e 是此时刻计数器加32.下一时刻(S1,S33)的累加度量到达,将这两个值和上次的最小值比较,得到新的最小值,同时记下新的最小状态.依次类推,ACS 做完的同时也得到了64个累加值中最小的一个所对应的状态标号.这个状态标号是回溯的必要条件.图4 最小度量判决1.5 回溯与判决输出在Vite rbi 译码器中,除了累加度量存储器外,还有一个幸存路径存储器,它用来保存每一级所有节点的幸存路径,这些值将用于回溯单元产生译码器的译码输出.幸存路径存储器的结构主要有两种:一种是寄存器交换结构,另一种是回溯结构.前者采用专用寄存器作为存储主体,存储的是路径上的输入信号信息,利用数据在寄存器阵列中的不断交换来实现译码.这种方法虽然具有存储单元少,译码延时短的优点,但由于其内连关系过于复杂,不适合大状态Vit erbi 译码器的F P G A 实现;而后者也就是本文采用的回溯法利用通用的RAM 作为存储主体,存储的是幸存路径的格状连接关系,通过读写RA M 来完成数据的写入和回溯输出.其优点是内连关系简单、规则.k =7卷积码有64个状态,即一组幸存路径有64bit.实际应用中,为了保证译码的准确度,幸存路径的回溯长度通常取4~5倍约束长度,本文回溯长度定为42.如图5为回溯与判决输出框图.使用一个42×64的RAM 来实现幸存路径的存储.具体操作如下:当处理完第42组译码信息后,得到了此时的最小状态和42×64bit 的幸存路径信息.把该最小状态送入最小状态寄存器,同时从幸存路径RA M 中读出第42组的幸存路径,用最小状态标号去选择这64比特的幸存路径得到1比特信息,通过移位拼接运算完成状态更新后得到了前一次的最小状态,再用这个状态标号去选择第组幸存路径依次循环,从第组幸存路径选出的最小状态的最2981电 子 器 件第30卷8.2020t 2t 2i n et 42.1高位就是第1个译码比特.此时,第一组幸存路径信息已经不对译码造成影响,下一次回溯时,刚好把第43组幸存路径存储到第1组位置.此时以后的每个比特都按照此算法译出,直至完成全部译码.由于每回溯一次都可以用一组新幸存路径信息覆盖一组旧幸存路径信息,因而节省FPA G 硬件资源,也正是回溯法的优势所在.图5 回溯与判决输出框图2 电路功能验证与误码性能分析整个系统使用Verilog HDL 完成了设计,在Model sim 6.0平台上进行了仿真,并且分别在X ilinx ISE 和Quart us Ⅱ平台上进行了综合.选用Altera 的Apex20ke 系列FP G A 来综合实现,得到电路的等效L Es 仅为2195.比参考文献[3]中说明的全并行算法L Es 大于4000的硬件资源大约节省了50%.整个系统的FP G A 资源使用效率如表1所示.表1 F PGA 的使用效率系列AP EX20KE 器件EP20KE200EFC48422X 逻辑单元数2195/832026%管脚数20/3765%存储器比特数12288/10649611% 本设计一方面利用Mo del Sim 对Q uart us Ⅱ综合的网表进行了后仿真,验证结果如图6所示.sy 2sclk 是系统时钟,周期为100ns ,sysclk1是译码输入时钟,由于一个译码信息需要64个时钟周期,故sy 2sclk1是6400ns ,st a_t b 是回溯的状态,dec_bi t 是译出码字.图示为第一个回溯操作过程部分结果:当sysclk1输入了42组译码数据时,再经过42个sy 2sclk 周期的回溯,sta_t b 的最高位即是译码信息.图中粗线所示dec_bi t 为“1”的译码比特,与编码器输入结果一致,说明译码正确.同时利用Tekt ronix 的TLA60逻辑分析仪对下载好程序的FP GA 进行实测,得到电路波形与后仿结果一致.图6 回溯后仿真波形串行Vi ter bi 译码与并行译码相比只是实现结构不同,其核心算法加比选(ACS )完全一样,对误码性能不造成影响.图7是借助第三方工具Ma tlab 中的Si mulink 平台,把串行Vi terbi 译码用Matla b 语言编写为S 2Function 得到的误码性能.由图可见,误码率达到信噪比为5时误码率小于10-4的信道要求.图7 误码性能3 结论本文通过对U WB 通信系统的(2,1,6)卷积码Viter bi 译码的F PA G (Field Progra mmable G at e Array 现场可编程门阵列)实现算法的研究,设计了采用了单蝶型(2个ACS )串行方式,双口RAM ,改进的“乒乓操作”,深度为42的回溯算法硬判决Vit 2er bi 译码器.该译码器在满足译码速度的条件下与并行算法相比节省了约50%的硬件资源;并且可以通过改进串并方式和判决方式移植到其他系统中,因此便于与其他模块整合.参考文献:[1] 李明晶,谭晓辉.超宽带技术浅谈[J ].吉林省经济管理干部学院学报,2005,19(5):61263.[2] 王新梅,肖国镇.纠错码-原理与方法(修订版)[M ],西安:西安电子科技大学出版社,2001:4432460.[3] 陈春霞,王匡.基于FP GA 的串行维特比译码的实现[J ].计算机工程,2003,29(14):1692171.[4] 张荣兵,和应民.参数化Vi terbi 译码器的FP G A 实现[D].哈尔滨工业大学2005.[5] Truon g T K,Shih Mi ng 2Tang ,Reed Irving S , E.H.Sat ori 2us.A VL SI Design for a Trace 2Back Vit erbi Decoder[J ].IE EE Transact ion o n C o mmuicatio ns ,1992,40(3);6162624.3981第5期刘阳美,余宁梅等:一种串行Vit erbi 译码器的F P G A 设计与实现8。

关于基于Xilinx FPGA 的高速Viterbi回溯译码器的性能分析和应用介绍

关于基于Xilinx FPGA 的高速Viterbi回溯译码器的性能分析和应用介绍

关于基于Xi1inXFPGA的高速Viterbi回溯译码器的性能分析和应用介绍新一代移动通信系统目前主要采用多载波传输技术,基带传输速率较3G有很大提高,一般要求业务速率能达到30Mb/s以上。

约束长度卷积码以及Viterbi 译码器由于其性能和实现的优点,在新一代通信系统中仍然占有一席之地。

这就要求进一步提高Viterbi译码器的译码速率,同时优化Viterbi设计以减少由速率提高和约束长度的增加带来的硬件实现复杂度。

1Viterbi译码器基本结构Viterbi译码器主要由分支度量计算(BMU),度量累积存贮(PathMetric),度量比较判断(ACS)以及回溯译码(TraceBack)4个模块组成[1],如图1所示。

本文优化主要针对约束长度为9的1/2卷积码,生成多项式为561(oct),753(oct)。

BMU(BranchMetricUnit)模块计算接收的2个软信息与4种可能的编码输出的欧式距离,作为分支度量送入ACS模块。

ACS(Add_Compare_Se1ect)模块根据编码方式和状态转移将分支度量和256状态的度量分别进行累积相加,得到进入下一时刻的新度量,然后比较到达下一时刻同一状态的2种度量大小,选择小的度量,同时生成各状态的幸存比特输出。

TraceBack回溯模块由ACS生成的当前时刻的判决比特回溯1个时刻(1为回溯深度),得到1时刻前的状态和译码输出。

图1VitCrbi译码器的组成结上;—:2Xi1inxVirtexII的结构和功能VirtexII是Xi1inx公司的高性能系列FPGA o最高规模能达到8000000门,内部时钟高达400MHz0存贮单元具有高达到3M容量的真正双端口B1OCkRamo 运算单元中包括最多168b 的专用乘法器。

VirtexII 中的可配置单元为C1B(Configurab1e1og ic B1occks)。

C1B 中的资源可以灵活配置成多种结构。

FPGA_ASIC-卷积码的Viterbi高速译码方案

FPGA_ASIC-卷积码的Viterbi高速译码方案

投稿栏目:嵌入式与SOC——PLD CPLD FPGA应用卷积码的Viterbi高速译码方案A High-speed viterbi-decoding Scheme for Convolutional Code(1.南京师范大学分析测试中心,2.南京师范大学物理科学与技术学院)刘国锦1王济生2时斌1朱晓舒1(1. Analysis and Testing Center of Nanjing Normal University, 2. School of Physics and Technology of Nanjing Normal University) LIU Guo-jin1 WANG Ji-sheng2摘要:本文探讨了无线通信中广泛涉及的差错控制问题,介绍了卷积码的编译码原理。

提出了一种卷积码编码,及其高速Viterbi译码的实现方案,对译码的各个组成部分作了分析,并在FPGA中实现了该译码方案。

仿真结果表明,在纠正能力范围内,能够正确纠错并译码,且具有高速译码的优点,达到了预期的效果,该设计方案可以非常容易地应用到很多差错控制的通信系统中。

Abstract: This paper discusses the issue of error-control involved widely in wireless communications, and introduces the coding and endcoding principle of Convolutional Code. A scheme of encoding of Convolutional Code and its high-speed viterbi decoding is proposed, and the components of decoding are analysed, then the scheme is implemented in FPGA. The simulation result indicates that it can correct the error bits exactly within the range of capability error-correcting, and it has the advantage of high-speed decoding. Prospective effect is realized.This design scheme can be applied easily in many communication systems with error-control.关键词:差错控制;卷积码;Viterbi译码;寄存器交换Key words: error-control; Convolutional Code; viterbi decoding; register-exchange中图分类号:TN492 文献标识码:A0 引言在无线通信过程中,由于信道中噪声干扰的存在,会不可避免地造成发送端的码元经过有噪信道到达接收端后,接受的码元中发生了差错,从而影响了无线数据通信的可靠性。

基于FPGA的串行RS+Viterbi级联译码器的设计与实现

中级联 译码 器 均采 用 串行 结 构 , 少 了 资 源 占用 。 卷 积 译码 使 用 Viri 法 , 出 了其 初 给 减 t b算 e 给
始化 网络 、 支度 量 计 算 、 比选 、 分 加 累计度 量储 存 、 存路 径 储 存 和 回 溯等 主要 部 分 ; S译 码 采 用 欧 几 里 德 算 法 。 幸 R 给 出了伴 随 式 计 算 、 误 位 置 和错 误 值 多项 式计 算 ( 搜 索计 算 错 误 位 置 、 尼 算 法计 算 错 误 值 )模 二 和 计 算 解 码 输 错 钱 福 、

海 航

5 3
20 0 7年 第 4期 文章 编 号 :0 61 3 (0 7 0 —0 30 10 —60 2 0 )40 5 —5
AEROS ACE S P HANGHAI
基 于 F G 的 串行 R P A S+Vi ri tb e 级 联 译 码器 的设计 与实 现
d c ig emao at fte ag rtm ,sc ss n rm aclt n eo n .Th jrp rso h loi d h u h a y d o clua i ,mut o a cluain o ro o io n o l n mil ac lt fer rp st n a d i o i
出等 关键 部 分 。
关 键 词 : 联 码 ; S码 ;卷积 码 ;欧 几 里德 算 法 ;维 特 比 算 法 ;现 场 可 编程 逻 辑 阵 列 级 R
中图 分 类 号 : N 1 .2 T 9 1 2 文 献标 识码 : A
De i n a d I p e e t to fS ra sg n m lm n a i n o e i lRS+ Vie b n a e a e c d r Ba e n FPGA t r iCo c t n td De o e s d o

基于FPGA的卫星导航信号viterbi译码方法


DATA_OUT 即为译码后的结果 , 其速率是译码前 数据bit的1/2。
CLK C E DATA _IN0 DATA _IN1
D0_ 0 D1_ 0
D0_ 1 D1_ 1
D0_ 2 D1_ 2
ቤተ መጻሕፍቲ ባይዱ1.2 viterbi 译码
卷积编码的译码需要在一个预定的时间内 , 通过迭代算法选择各种可能的路径 , 以找到最佳 路径。通过把支路度量(局部距离)加到两个原状 态的最佳路径度量上 , 得到到达新状态 (J) 的两条 路径的度量值 , 从这两条路径的度量中选择一条 新状态(J)的路径和度量。Viterbi译码算法提供了 一种使数据-符号序列(格子路径)度量最小化的方 法。作为一种最大似然算法解码器,Viterbi译码算 法从接收序列中确定码序列 , 并使其和原发送序 列的匹配概率最高。 通常,Vit-erbi译码算法可分为 分支度量(局部距离)计算、状态度量更新和回溯跟 踪3个过程。 在卷积码译码中,Viterbi译码算法是纠错能力 很强的一种,已广泛应用于卫星通信系统。Viterbi 译码算法是一种最大似然译码算法。 Viterbi译码算法的步骤: 1) 根据接收码符号,计算出相应的分支量度 值; 2) 将进入某一状态的2条分支量度与其前面 的状态量度累加求和; 3) 比较到达同一状态的2条新的路径量度的 大小,选择最小者作为新的状态量度存储起来,并 记住与此路径(幸存路径)对应的信息码元; 4) 对所有的2m个状态都实施上述相加/比较 / 选择 (ACS) 运算; 路径量度最小的一条路径 ( 约为 以前码元长度的5倍)作为译码数据输出; 5) 将译码时刻向前延伸一步,重复以上步骤, 直至译码结束。
图1
(2,1,8)卷积码编码器基本结构
U ( D)G0 ( D ) 与时域运算 C1=u*g1 和 C0=u*g0 是等

HDTV接收机中Viterbi译码器的FPGA实现

HDTV接收机中Viterbi译码器的FPGA实现高清晰度数字电视HDTV 技术是当今世界上最先进的图像压缩编码技术和数字通信技术的结合。

它代表一个国家的科技综合实力,蕴藏着巨大的市场潜力。

数字电视地面广播编码正交频分复用COFDM 传输系统以其较强的抗多径干扰性能、易于实现移动接收等优点在HDTV 的研究中占有很重要的地位。

而COFDM 系统中编、解码技术是影响系统性能的一个重要因素。

本文正是基于一种最大似然译码--Viterbi VB 译码算法思想,从FPGA 实现的角度探讨在COFDM 系统中内码(收缩卷积码)的解码。

1 设计算法简述在HDTV 地面广播COFDM 系统中,所用内码为收缩卷积码,除1/2 主码率外,还有2/3、3/4、5/6、7/8 码率的卷积编码。

在实际的传输信道中,噪声一般是加性高斯白噪声(AWGN),输入AWGN 信道的是二进制信号序列。

为了充分利用信道输出信号的信息,提高传输系统译码的可靠性,首先把信道的输出信号量化,将Q 电平量化序列输入Viterbi 译码器,因此本文采用的VB 译码算法为软判决译码算法。

1.1 主码率1/2 的卷积码编码目前,在国际卫星通信和很多通信系统中,(2,1,6)码是首选的使用VB 译码的标准卷积码。

由于该码能使误码率达到最小,且能克服相位误差,所以在HDTV 地面广播COFDM 传输系统中,内码采用(2,1,6)码,它的子生成元为(171,133),均为八进制。

对应的生成多项式G D=1+D+D2+D3+D6 1+D2+D3+D5+D6 df=10。

其编码器的实现框图如图1。

由于(2,1,6)码有64 个状态,为直观起见,采用列表的方法来表述它的篱笆图,如表1 所示。

1.2 收缩卷积码的实现为了实现多码率传输,在提高码率的情况下不致使译码器的复杂性增加,在本设计中对(2,1,6)码进行增信删余(Puncctured)。

如图1 所示,在经上述编码后,对输出码字中的特定位置予以删除。

基于FPGA的高性能Viterbi译码器的设计与实现

基于FPGA的高性能Viterbi译码器的设计与实现
沈南;王华
【期刊名称】《中国有线电视》
【年(卷),期】2006(000)002
【摘要】对Viterbi译码器3个重要组成部分之一--幸存路径管理和存储模块进行优化设计,采用一种新的方法(改进的寄存器交换法)作为幸存路径管理方案,取消了译码时的回溯读操作.与采用传统回溯法的译码器相比,该译码器具有较低的译码时延、有效的存储空间管理和较低的硬件复杂度.在总体设计中对译码器的其他部分也进行了相应的优化设计,进行了综合布线后仿真,译码器输出的最大数据速率达到了90 Mbps.
【总页数】4页(P163-166)
【作者】沈南;王华
【作者单位】北京理工大学,北京,100081;北京理工大学,北京,100081
【正文语种】中文
【中图分类】TN911.22
【相关文献】
1.基于FPGA的串行RS+Viterbi级联译码器的设计与实现 [J], 向征;池中明;刘兴钊
2.基于FPGA的高速并行Viterbi译码器的设计与实现 [J], 童琦;何洪路;吴明森
3.一种基于FPGA的多通道复用Viterbi译码器的设计与实现 [J], 庞志锋;刘欣欣;王晓君
4.基于FPGA的卷积码Viterbi编码/译码器的设计与实现 [J], 张成;杨健
5.基于FPGA的高性能Viterbi译码器的设计 [J], 邱磊;张岩
因版权原因,仅展示原文概要,查看原文内容请购买。

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

/ 一 、
一 ,一
图2 ( , 1 )卷 积 码 状 态 图 2 ,3
结 合状 态 图可 得 出如 图3 示 的状 态 与 时 间 所
' 一/ 一 、
一\ ,一 一
关 系图 ,称为 网格 图。该 图设 输入 信 息数 目L 5 =, 所 以 画有 L N 8 时 间单 位 ( 点) + =个 节 ,图3 分别 中
并在Q atsI 进行 仿真 。首先 利用 编码 器对 已 ur 下 uI
知 的序列 进行 编码 ,产生 这个输 入序 列 的编码 码 字 ,并 对产 生 的编码码 字 进行人 为加 扰 ,用 以验 证 所 设 计 的V tri 码 器 对 错 误 信 息 的 纠错 能 i b译 e 力 。图5 示是该 译码 器 的仿真 图 ,对于 图5 所 ,通
t a 司的E 3 1 0 7 0 8 片的 (,1 )V tri e公 r P C 2F 8C 芯 2 ,7 i b译码 器 , 同时给 出 了时序 仿真 图。 e
关 键 词 :卷 积 码 ;V tri 码 ;F G i b译 e P A
0 引 言
在 现代 通信 系 统 中 ,要 使信 号 能够 更 可靠 地
法 。它 并不是 在 网格 图上一次 比较所 有可 能 的2
看 出 ,输入 的序 列 与译 码 输 出的序列 一致 ,故 可 证 明V t v 码器设 计 的正确性 。 i ri e 译
条 路径 ( 列) 序 ,而 是 接 收一 段 ,就 计算 、 比较 、
选 择一段 最可 能 的码 段 f 支) 分 ,从而使 整个 码序 列达到一个 有最 大似然 函数 的序列 。
第20 第5 1卷 年 月 2 期 0 5 1
瞬跨墓锚盛
V1 o o2 . . N5 1
Ma . 2 0 v 01
d i O3 6 / i n16 - 7 5 0 00 .1 o: .9 9js .5 3 4 9 . 1 .50 4 l .s 2
基于F G 的Vtri 码器设计 P A i b译 e
块 。其 中支 路度 量模块 用 于完成译 码 器输入 信 号 与 网格 图上 的可 能路径 信号 的分支 度 量计算 :加
网格 图 中所 有可 能的路径 也是2 条 。 设 编译 器送 出 的码序 列 为C,经过 离 散无 记
比选模 块 主要把 前一个 状态 的路径 度 量与 当前输
码器 的编 出码 为 例 ,来 说 明V tri 码 的方 法 和 i b解 e 过程 。图2 所示 是该 码 的状态 图 。
1 卷 积 码
前 向纠错 (E )是 目前 常 用 的一 种 差错 控 制 FC
方 法 .在这 种方 法 中 ,发送 端 发送 能够 被 纠错 的
码 .接 收端 则 在收 到这 些码 后 ,通 过 纠错译 码 器 来 发 现其 中的 错 误 并 自动 纠 正 接 收 码 字 中 的 错 误 。在 前 向纠错 方 法 中 ,卷 积 码及 其Vi ri 码 t b译 e
是 常用 的信道 编码 方案 。
卷 积 码通 常 用 ( ,k )表 示 ,其 中n 输 n ,N 为 出信 息 比特 ,k 输 入信 息 比特 ,N为约 束 长度 , 为 卷 积 码 的 编 码 效 率 为 R = / , 图 1 示 为 kn 所
输 出v 1
。。。。。。。。。。 一
过对 比原 始编码 序列 和译 码器输 出 的序列 ,可 以
m nd i

,Cs j l , 2 = , …,乩 ) 2
() 3
式 中 , 与G 是接 收序 列R与C序列 的Q 制 i 进
表示 。
Vtri 法 是 一 种 基 于 最 大 似 然 估 计 的 算 i b算 e
本 文所 设计 的 ( ,1 )V t b译 码器 可 在 2 ,7 i ri e
() 2
对 于二进 制 输入 且O进制 输 出的离 散 无记 忆
A ea 司 的Q ats I .开 发 环 境下 进 行 设 计 。 h r公 ur 0 u I8
信 道 ,实际上就 是寻找 与R 有最小 软距 离 的路径 , 而此时 的度量就 是软判 决距离 :
入端输入 1 比特 信 息 ,输 出 端 输 出2 比特 编 码 信 息 .并分 为上 、下 两路 并行输 出。
纠错码 来 降低信 号 受 噪声 的影 响 ,以 降低 传输 的
误 码 率 。 这 种 方 法 叫做 差 错 控 制 编 码 或 纠错 编 码 .其 思想 是 在发 送端 的信 息码 元 序列 中增加 一 些 监督 码元 .这些 监督 码 与信码 之 间有 一 定 的关 系 .接 收 端可 以利 用这 种关 系 由信 道译 码 器来 发
入信号 的分 支度 量相加 ,以得到该 分 支 的路 径度 量 .然 后 比较不 同分 支路径 度量 的大 小 ,同时 找 出最 小 的度 量值 ,并更 新该 状态 的度 量值 ,最 后 输 出状 态转 移信 息 ;路 径 管理模块 可 对加 比选 单
元输 出 的状 态转 移信 息进行 处理 ,以便为输 出判 决做准 备 。输 出模块 可根据 幸存路 径 管理单 元 的 输 出进 行输 出判决 ,最后输 出译码 信息 。
m x ob ,c j l , 2 a gP l _ = , …, ) 2

() 1
经计 算 可得 ,上 式 等价 于 寻找 与 R 最小 汉 有 明距 离 的路 径 ,即寻找 : m n Ii j l , 2 i d ) = , …, c 2

4 V tri 码 器 的F G i b译 e P A实现
现或纠 正错误 的码 元 。
2 V t b译 码 器 原 理 iri e
近年 来 ,维 特 比算法 具有 很 大 的发 展 , 目前 在数 字 通 信 的前 向纠错 系 统 中用 的较 多 。Vtri i b e 译码 的基本 原理 是把 已接 收 到 的序 列与 所有 可 能 的发 送 序列 进行 比较 。选 择 其 中码距 最 小 的一个 序列 作 为发 送序 列 。下 面 以 (,1 )卷积 码 编 2 ,3
忆 信 道 传输 后 送 入译 码 器 的是 序 列R,E 信 道 是 错 误序 列 ,则 有 :R C E = + 。译码 器 根据 接收 序列
R,可 以按 最大 似然 估计 准 则来 找 出编 码 器在 网 格 图上 所 走 过 的路 径 。这 个 过 程 就 是 译 码 器 计 算 、寻找 的最大 似然 函数 :
Ma . 2 0 v 01
2 1 年5 00 月

、、


oV- o/" o , / ;  ̄ lF 3

图 4 Vi r i 码 器 的 原 理 框 图 t b译 e
由 图4 见 ,V tri 码 器 大 致 可 以 分 为 四 可 i b译 e
个 部 分 :支 路 度 量 模 块 ( MU 、加 比选 模 块 B ) (C ) A S、幸存 路径 管理 模块 (MU S )和输 出产 生模
王 连 成
( 西安 电子科技 大学 电子工程 学院 ,陕西 西安 7 07 ) 10 1
摘 要 :卷 积 码及 其V tri i b译码 是 现 代 通信 系统 中 常 用的 一 种 信 道 编 码 方 法 。 文 中介 绍 了 e
Vtri 码 算 法的原 理 ,分析 了V tri i b译 e i b译码 器 的结 构 ,然后 用V r0 语 言 设计 了一种 基 于A - e ei g l 1
璺 旦 -
c 1 k
e i oda
曼三 国co ou t 丝 e l ne  ̄ 塑 hu t o
i rt £
图5 Vi ri t b译码 器的 仿 真 波形 图 e
Hale Waihona Puke 4 0电 子元 器 件 盔 用
2 1 . W . d c 0 05 W We a n c
标 以0 7 至 。设 编 译 器从 a 态 开 始 运 作 。该 网格 状
输出v 2
图1 (, 1 )卷积 码 编 码 器 框 图 2 ,7
收稿 日期 : 0 9 2 1 2 0 —1 — l
图 的每 一 条 路 径都 对 应 着 不 同的 输人 信 息 序 列 。
由于 所有 的 可能输 入 信息 序列 共有 2 个 ,因而其 “
w wed.n 2 1. 电 子 元 器 件 主 用 3 w . a 00 c c 5 9
第 1卷 2
第5 期
电子元 器 件壶 用
E e to i mp n n & De ieAp l ain l cr ncCo o e t vc pi t s c o
V0 .2 N . 1 o5 1
在 信道 中传 输 ,往 往需 要我 们 在信 道 编码 中采 用
f,1 )卷积码 的编码器 框 图。 2 ,7 ( ,1 )卷 积 码 编 码 器 由6 延 时 器 ( 1 2 ,7 个 图
中的D模 块 ,可用 寄 存 器 实 现)和 两 个模 二 加法
器组 成 .它 的编 码 约束 度 为7 ,码 率 为 12 / ,即输
5 结 束语
本文 通过在 Q ats I .下对 基 于E G ur 0 u I8 P A芯片
3 V tri 码 器 的 结构 i b译 e
由 以上 分 析 可 以得 出如 图4 示 的Vtri 所 i b译 e 码器 的原理框 图 。
lm e i
E 3 10 7 0 8 行V t b译码 器 进 行 了设 计 与 P C 2 F 8C 进 i ri e 验证 。结 果 表 明 ,本设 计 中 的Vi ri t b译码 器 能够 e 正确 地进行译 码输 出 。
相关文档
最新文档