高性能维特比在卫星导航接收机中FPGA实现

上传人:飞*** 文档编号:5664126 上传时间:2017-09-07 格式:DOC 页数:9 大小:45KB
返回 下载 相关 举报
高性能维特比在卫星导航接收机中FPGA实现_第1页
第1页 / 共9页
高性能维特比在卫星导航接收机中FPGA实现_第2页
第2页 / 共9页
高性能维特比在卫星导航接收机中FPGA实现_第3页
第3页 / 共9页
高性能维特比在卫星导航接收机中FPGA实现_第4页
第4页 / 共9页
高性能维特比在卫星导航接收机中FPGA实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《高性能维特比在卫星导航接收机中FPGA实现》由会员分享,可在线阅读,更多相关《高性能维特比在卫星导航接收机中FPGA实现(9页珍藏版)》请在金锄头文库上搜索。

1、 高性能维特比在卫星导航接收机中 FPGA 实现摘要:卫星定位接收机中卷积码译码即维特比译码器,在处理器中面临占有资源较多、处理时间过长等问题,为了减少处理器资源的占用和提高处理速度,采用并行加比选蝶形单元的的方法,在 fpga 平台上用硬件描述语言设计一种高性能维特比译码器,作为 gps l2 频点和 galileo e1 频点接收机的通用译码器,在 gps和 galileo 接收机上运用,大大减少资源使用,提高接收机的处理速度。关键词:viterbi 译码器; gps /galileo 接收机; 卷积码; fpga引言在现代通信系统中,要使信号能够更可靠地在信道中传输,往往需要在信道编码中

2、采用纠错码来降低信号受噪声的影响,以降低传输的误码率。卷积码及其 viterbi 译码是常用的信道编码方案13 。卷积码在 gnss 接收机中得到应用,其中约束长度k=7,码率为 1/2 的卷积码已经成为商业卫星通信系统中的标准编码方法。在卫星定位系统中,gps l2 频点和 galileo e1 的电文均采用卷积码编码,目前在定位接收机中用软件进行 viterbi 译码较多,为了提高处理速度通用性,本文设计一种基于 fpga 的通用高速 viterbi 译码器,能作为 gps l2 和 galileo e1 的电文的译码器,大大减少资源使用,提高接收机的处理速度和减少软件复 杂度,从而节约处

3、理器的资源。1 卷积编码及 viterbi 算法基本原理卷积码包含由 k 个寄存器组(每组包括 k 个比特,k 通常取 1)构成的移位寄存器和 n 个模 2 加法器,其中 k 是约束长度,编码器的输出由当前输入数据和寄存器组中的数据共同决定。对于 gps l2 和 galileo e1 均为(2,1,7)卷积码,其生成多项式为g=(171,133),电路图如图 1 所示。(2,1,7) 卷积码编码器由6 个延时器(图 1 中的 q-1 模块, 可用寄存器实现)和两个模 2加法器组成,它的编码约束度为 7,码率为 1/2,即输入端输入 1 b 信息,输出端输出 2 b 编码信息,并分为上、下两路

4、并行输出4 。图 1(171,133)卷积码生成电路对信号进行卷积编码后,通常采用 viterbi 算法(va)译码。viterbi 算法是对于卷积码的最大似然译码,即利用概率译码。1967 年 viterbi 第一个提出了这个算法,forney 对这种算法及其性能做了可读强、见解深刻的描述1 。最大似然译码函数,就是在已知收到的信道输出序列,找到最有可能的传输序列,即通过网格图找出一条路径对应,要求路径输出的码序列具有对数最大值。对于二进制对称信道来说,函数的最大化等价于在网格图中找到与接收序列之间有最小汉明距离的路径5 。viterbi 算法是通过动态规划的方法找出网格图中具有最大度量 的

5、最大似然路径,即局部最优等效全局最优。在每一步中,它将进入每一状态的所有路径进行比较,并存储具有最大度量值的路径,即幸存路径,步骤为4:(1) 从时刻 l=m 开始,计算进入某一状态的单个路径的部分度量值,并存储每一状态的幸存路径及其度量值。(2) l 增加 1,l=m+1,将进入某一状态的分支度量值与前一段时间的幸存度量值累加,然后计算进入该状态的所有最大度量的路径,决定并存储新的幸存路径及度量,并删除所有其他路径。(3) 若 ll+m,重复步骤(2),否则结束。该算法主要包括两个工作:计算度量并比较,其决定幸存路径;另一个是记录幸存路径及其相关的度量值。2 基于硬件描述语言的 viterb

6、i 算法viterbi 算法一般采用回溯法和寄存器交换法。为了减少控制的复杂度,本文采用回溯法,译码器由分支度量(bmu) 、加比选(acs)蝶形运算、存储单元、回溯(tb)单元 4 个基本部分组成6 ,见图 2。图 2viterbi 译码器基本结构利用二元卷积来说明 va 译码过程如图 3 所示。图 3(2,1,3) 卷积码生成电路图图 4 为用实线表示输入为 0 时走的分支,虚线表示输入为 1 走的分支,任意给定一个序列,在 网格图中就有一个特定路径,图 4 中, u=(1011100) ,输出的编码为 c= 11_10_00_01_10_01_11。图 4 二元(2,1,3)卷积码网格图

7、 2.1 分支度量单元路径度量单元是计算实际接收到的码元与期望码元之间的差别。g1 与 g1 比较,g2 与 g2 比较,若接收信号为 0,期望值为 0 时,度量值为 0,期望值为 1 时,度量值为 1;若接收信号为 1,期望值为 0 时,度量值为 1,期望值为 1 时,度量值为 0。两个比较结果和作为最终度量结果输出。按此规律计算当前状态下进入下一个状态的度量值。2.2 加比选蝶形单元加比选(acs)单元是完成幸存路径的延伸和判决向量的生成,计算过程包括度量值的累加、比较、选择路径操作7 。对(2,1,3)卷积码而言,共 4 个状态,组成 2 个蝶形运算单元;而(2,1,7)卷积码则 64

8、个状态,组成 32 个蝶形单元。在 k=7 的卷积码中,有 64 个状态的路径,所以根据待译码的长度,适当增加累加值的位宽,防止度量值溢出。2.3 幸存路径存储单元幸存路径存储是用来存储每次蝶形运算完成单元后所选择的路径,存储单元的大小为译码深度乘以状态个数。对每一个加比选过程的存储,实际就是对幸存路径的存储。 2.4 回溯单元由 va 算法可知,在网格图上经过大约 5 倍的约束长度之后,所有幸存路径将汇聚到一起。因此选择合适的回溯长度 l,并从任一条路径开始(比如 0 状态)开始回溯,当回溯到 l 个节点时开始输出译码比特。3gps l2 和 galileo e1 接收机的高性能 viter

9、bi 译码具体模块设计根据 gps 和 galileo 的接口文件,l2 频点电文采用(2,1,7)卷积码的形式,码多项式为(171,133)o,且与galileo e1 的卷积码格式相同, galileo 采用分段卷积的形式,参与卷积的为每页中不包含同步头的部分,即 120 位进行卷积。为了能同时作为 gps 和 galileo 的译码器,设计译码深度为 120的译码器。接收机的 viterbi 译码模块包括:地址译码模块、数据加载模块、viterbi 译码模块、输出控制模块。为了提高译码器的性能,viterbi 译码模块的加比选蝶形单元采用 32 个并行结构,提高运算速度。图 5gps/g

10、alileo 接收机 viterbi 译码模块结构 3.1 地址译码及数据加载地址译码包括总线读写译码,由于 viterbi 模块作为一个独立模块,内部地址采用自己的译码设计。深度为 120 的 viterbi 译码器,需要输入 240 个卷积码,对于 总线 32 位 cpu,需要 8 次写入完成数据输入。最少需要 8 个地址单元,viterbi 译码输出最少需要 4 个地址单元,译码状态中断输出,状态位清除,即整个译码器模块需要 14 个地址单元。地址线需要 4 根即可。地址译码电路采用组合逻辑设计。译码状态中断输出、状态位清零采用不同时钟域同步。数据加载模块是加载寄存器内数据,然后按照顺序

11、,1 次按 2 位串行输出。3.2viterbi 译码模块viterbi 译码模块采用的译码深度为 120 的(171,133)o 译码设计,译码器结构如图 6 所示,由译码控制单元、度量值计算单元、蝶形运算、幸存路径存储、回溯输出单元构成。图 6 基于 fpga 的 viterbi 译码器结构(1) 蝶形运算单元。按照(2,1,7) ,多项式为(171,133)卷积码特点,基本蝶形单元分布见图 7。对于约束长度为 7 的卷积码,共计 64 个状态,形成 32 个基 2 的蝶形运算单元见图 8。图 7 蝶形单元分布示意图图 8 基二蝶形单元蝶形单元的输入信号为上次的度量和,与接收码本蝶形单元中

12、理论输出码的码距度量,如图 9 所示。图 9 蝶形运算单元网表输出信号为幸存路径、度量值和,选择输出为 1,不选输出为 0,如表 1 所示。 表 1 蝶形单元输入输出信号输入输出信号名称含义 inputdin_a 加比选后的值,与期望值的码距 inputdin_b 加比选后的值,与期望值的码距 inputgama_a 度量值的和 inputgama_b 度量值的和 outputgama_outa,输出度量值的和 outputgama_outb 输出度量值的和 output sela_1 幸存路径选择 outputselb_1 幸存路径选择(2) 幸存路径存储。经过蝶形单元运算的输出,幸存路径,

13、64 个状态,幸存路径为 64 位,表示该状态有或无,每进行一次蝶形运算,存入一个 64 位路径信息,存储器的写入控制信号和地址信息由状态控制单元发出,存储空间为 12064 b。(3) 回溯及输出。回溯过程即从地址最后向前一次读取幸存路径的值,得出译码电文。如图 10 所示。图 10 回溯及译码输出结构示意图(4) 状态控制单元。状态控制单元是对整个译码过程的控制,复位后,系统处在空状态,收到输入的待译数据后,进入加比选状态,按照数据流顺序进行加比选蝶形运算操作,进入到译码深度的长度的加比选后,转入译码回溯输出单元,从最后一个回溯到第一个时,即完成回溯,同时输出译码电文和译码完成中断,系统再

14、次进入等待状态,如图11 所示。图 11 译码状态控制状态图 4 仿真及接收机测试结果gps/galileo 接收机通用的 viterbi 译码器设计通过 modelsim 仿真,能够得出正确译码结果89 ,编码后在 240 个码序列的228 之前加入 1 位或 2 位错误码,均能正确纠错,得到正确的译码结果。译码延时 260 个时钟周期。最大译码数据吞吐率达240(1501 000 000/260)=138 mb/s。如图 12 所示。图 12viterbi 译码器仿真结果译码模块在 altera stratix 系列 ep2s180f1020i4 fpga 平台上,利用 quartus 8.0 进行综合和时序分析,最大速度可以达到 150 mhz,资源使用量为:aluts占用 2 679,logic registers 占用 1 465,与文献4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号