一种并行Viterbi译码器制造技术

技术编号:23771379 阅读:60 留言:0更新日期:2020-04-12 00:00
本发明专利技术公开了一种并行Viterbi译码器,是实现软件基带中的关键技术。本发明专利技术实现了MPI多进程并行检测输入序列软件框架、基于OpenMP的多Sections实现数据分段覆盖并行Viterbi译码架构和自定义线程动态调度模型。在提升Viterbi译码性能的同时保证了数据完整性,自定义线程动态调度模型可根据数据码率动态调整工作线程数量和一次并行译码的数据吞吐量,从而获取译码结果输出时延与译码性能之间的平衡。

A parallel Viterbi decoder

【技术实现步骤摘要】
一种并行Viterbi译码器
本专利技术涉及一种并行Viterbi译码器,尤其设计一种基于MPI和OpenMP技术的并行Viterbi译码器。适用于测控系统中软件基带等利用纯软件实时或事后解调产品中,实现卷积编码的Viterbi译码功能,属于通信

技术介绍
在通信系统中,信号在信道传输过程中,尤其是在长程传输中,可能经过多种恶劣的环境,受到外界噪声的影响,接收端得到的信号可能与发送端存在偏差。为了降低系统的差错率,提高通信的可靠性,就需要信道编译码技术。卷积码和Viterbi译码广泛用于现代通信系统中进行前向纠错,CCSDS(ConsultativeCommitteeforSpaceDataSystems国际空间数据系统咨询委员会)推荐码率有1/2、2/3、3/4、5/6和7/8。目前,应用于通信系统中的基带设备中实现Viterbi译码功能的方法是基于FPGA(FieldProgrammableGateArray现场可编程门阵列)IPCore。随着通用计算平台性能和并行编程软件技术的提升,利用纯软件实现信号软解调的软件基带应运而生。码率为m/n的Viterbi译码输入卷积码序列的起始码元有n种可能,而基于FPGAIPCore的Viterbi译码器在实际应用中,依次顺序的对n种可能性进行译码和判断,找到其中正确的一种。在找到正确的译码结果前,Viterbi译码器输入的卷积序列会被丢弃,造成数据损失。在现代无线通信系统中,尤其是随遇接入通信及深空通信系统,每一个数据码元都十分珍贵。因此,在实际Viterbi译码器的实现中,应综合考虑译码速度、码率和如何保证数据吞吐率的前提下尽量降低译码器在数据序列检测时造成的数据损失。
技术实现思路
本专利技术提供了一种无输入卷积码序列数据损失的并行Viterbi译码器。并且提升纯软件实现Viterbi的计算性能,满足工程应用需求,同时,专利技术了并行粒度可动态调整的并行方案。本专利技术的技术解决方案是:一种并行Viterbi译码器,用于对卷积编码(n,m,K)进行Viterbi译码,其特征在于包括n个Viterbi译码进程,n个共享缓冲区、n个帧同步进程;Viterbi译码进程、共享缓冲区和帧同步进程一一对应;Viterbi译码进程,用于对卷积码序列进行Viterbi译码,将译码结果写入对应的共享缓冲区;帧同步进程从对应的共享缓冲区中读出译码后数据,并进行帧同步处理,一旦完成帧同步,则发送帧同步锁定消息同时发送给n个Viterbi译码进程;帧同步锁定消息包括发送该消息的帧同步进程序号、帧同步标志位;共享缓冲区用于Viterbi译码进程和其对应的帧同步进程之间进行数据交互,共享缓冲区中数据的生产者为Viterbi译码进程,数据的消费者为帧同步进程;Viterbi译码进程,接收到帧同步锁定消息后,判断是否是本Viterbi译码进程对应的Viterbi译码结果已经完成帧同步,如果是,则继续进行译码工作,如果不是,停止译码工作;进入到n个Viterbi译码进程的卷积码序列通过外部输入的卷积码序列扩展而成,具体为:进入到第1个Viterbi译码进程的卷积码序列与外部输入的卷积码序列相同;进入到第i个Viterbi译码进程的卷积码序列相对于外部输入的卷积码序列偏移i-1个数据位,i=1~n。所述Viterbi译码进程包括L个Viterbi译码模块,通过OpenMP方法实现并行译码,具体包括如下步骤:(1)、对进入到Viterbi译码进程的卷积码序列按照时间顺序进行分段处理,得到M个数据段,记为第1数据段~第M数据段,所述M小于等于L;所述每个数据段长度相同,且大于K,如果最后一个数据段不足K个码元,则填0补充;第j+1数据段开头的N个数据位为第j数据段的尾部的N个数据位,N大于等于K;(2)、从L个Viterbi译码模块中取出前M个Viterbi译码模块并行对步骤(1)所得到的第1数据段~第M数据段分别进行译码,得到第1个译码结果~第M个译码结果并存储至共享缓冲区;所述第j个译码结果的尾部和第j+1个译码结果的头部存在连续N/2个数据位相同,对于该重复的连续数据位,存储时只取第j个译码结果的尾部或者第j+1个译码结果的头部存储至缓冲区中。所述N为2的整数次幂。所述第1个Viterbi译码模块输出的译码结果~第L个Viterbi译码模块输出的译码结果分别存入缓冲区的固定地址区间中,第k个Viterbi译码模块输出的译码结果对应的地址区间与第k+1个Viterbi译码模块输出的译码结果对应的地址区间连续,帧同步进程从缓冲区中前M个固定地址区间中顺序提取数据位,得到译码序列。所述Viterbi译码模块的数量M可调。本专利技术与现有技术相比的有益效果是:(1)、本专利技术根据MPI多进程并行执行不同输入序列的Viterbi译码和帧同步,使得Viterbi输入序列检测过程不丢数;(2)、本专利技术利用OpenMP的多Sections实现数据分段覆盖并行Viterbi译码,编程简单易行,可明显提升Viterbi译码性能;(3)、本专利技术设置分段覆盖区长度的原则有利于以字节为单位的数据处理软件实现;(4)、本专利技术自定义线程动态调度模型可根据数据码率动态调整工作线程数量和一次并行译码的数据吞吐量,从而获取译码结果输出时延与译码性能之间的平衡。附图说明图1为本专利技术的并行Viterbi软件框架示意图;图2为本专利技术的(2,1,7)Viterbi译码输入序列关系图;图3为本专利技术的自定义线程动态调度程序结构图;具体实施方式本专利技术提供一种用于软件基带或软解调过程中,能够满足多码率、高吞吐率,包括MPI多进程并行检测输入卷积码序列软件框架、基于OpenMP的多Sections实现数据分段覆盖并行Viterbi译码架构和自定义线程动态调度模型的并行Viterbi译码器。为使本专利技术的目的、技术方案和优点更加清晰,下面结合附图和具体施例对本专利技术进一步详细描述。一种并行Viterbi译码器,用于对卷积编码(n,m,K)进行Viterbi译码,该译码器包括n个Viterbi译码进程,n个共享缓冲区、n个帧同步进程;Viterbi译码进程、共享缓冲区和帧同步进程一一对应,如图1所示。所述卷积编码(n,m,K)中,n表示编码器每一次输出的比特位数,m表示编码器每一次输入的比特位数,K表示卷积码的约束长度,代表当前编码器输出与之前的多少个输入比特相关。其中,根据卷积编码的特点,n值最小设为2,最大设为8。并行Viterbi译码器创建进程个数最小为4,最大为16,或者根据应用要求,设置为最大n值的两倍;以卷积编码(2,1,7)为例,进行Viterbi译码时,激活2个Viterbi译码进程和2个帧同步进程,并打开2个共享缓冲区。第1个Viterbi译码进程和第2个Viterbi译码进程分别对图2所示输入的卷积码序列1和序列2进行Viterbi译码,将本文档来自技高网
...

【技术保护点】
1.一种并行Viterbi译码器,用于对卷积编码(n,m,K)进行Viterbi译码,其特征在于包括n个Viterbi译码进程,n个共享缓冲区、n个帧同步进程;Viterbi译码进程、共享缓冲区和帧同步进程一一对应;/nViterbi译码进程,用于对卷积码序列进行Viterbi译码,将译码结果写入对应的共享缓冲区;帧同步进程从对应的共享缓冲区中读出译码后数据,并进行帧同步处理,一旦完成帧同步,则发送帧同步锁定消息同时发送给n个Viterbi译码进程;帧同步锁定消息包括发送该消息的帧同步进程序号、帧同步标志位;/nViterbi译码进程,接收到帧同步锁定消息后,判断是否是本Viterbi译码进程对应的Viterbi译码结果已经完成帧同步,如果是,则继续进行译码工作,如果不是,停止译码工作;/n进入到n个Viterbi译码进程的卷积码序列通过外部输入的卷积码序列扩展而成,具体为:进入到第1个Viterbi译码进程的卷积码序列与外部输入的卷积码序列相同;进入到第i个Viterbi译码进程的卷积码序列相对于外部输入的卷积码序列偏移i-1个数据位,i=1~n。/n

【技术特征摘要】
1.一种并行Viterbi译码器,用于对卷积编码(n,m,K)进行Viterbi译码,其特征在于包括n个Viterbi译码进程,n个共享缓冲区、n个帧同步进程;Viterbi译码进程、共享缓冲区和帧同步进程一一对应;
Viterbi译码进程,用于对卷积码序列进行Viterbi译码,将译码结果写入对应的共享缓冲区;帧同步进程从对应的共享缓冲区中读出译码后数据,并进行帧同步处理,一旦完成帧同步,则发送帧同步锁定消息同时发送给n个Viterbi译码进程;帧同步锁定消息包括发送该消息的帧同步进程序号、帧同步标志位;
Viterbi译码进程,接收到帧同步锁定消息后,判断是否是本Viterbi译码进程对应的Viterbi译码结果已经完成帧同步,如果是,则继续进行译码工作,如果不是,停止译码工作;
进入到n个Viterbi译码进程的卷积码序列通过外部输入的卷积码序列扩展而成,具体为:进入到第1个Viterbi译码进程的卷积码序列与外部输入的卷积码序列相同;进入到第i个Viterbi译码进程的卷积码序列相对于外部输入的卷积码序列偏移i-1个数据位,i=1~n。


2.根据权利要求1所述的一种并行Viterbi译码器,其特征在于:Viterbi译码进程包括L个Viterbi译码模块,通过OpenMP方法实现并行译码,具体包括如下步骤:
(1)、对进入到Viterbi译码进程的卷积码序列按照时间顺序...

【专利技术属性】
技术研发人员:田梦雪刘文俊曾海彬游莎莎郦家骅王静温王亭亭
申请(专利权)人:北京遥测技术研究所航天长征火箭技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1