一种通信系统链路级定浮点混合仿真方法与流程

文档序号:12490553阅读:363来源:国知局
一种通信系统链路级定浮点混合仿真方法与流程

本发明涉及链路级仿真领域,尤其是一种通信系统链路级定浮点混合仿真方法。



背景技术:

现代通信系统,例如光通信系统、地面移动通信系统和卫星通信系统等,在物理层都会使用一系列的通信技术来保证信息的顺利传输,例如信道编译码、调制、正交频分多址或码分多址、参数估计和均衡检测等。这些通信技术的实现需要先找到合适的并可实现的算法方案,因此算法方案设计是实现通信系统的首要及关键一步。一般来说,会在Matlab或者C语言平台上设计并构建通信系统的物理层仿真链路。此仿真链路上主要包括发射、信道和接收三部分,各部分包括各种通信技术功能模块。在链路上对各模块试验不同的算法方案以验证其性能,最终确定性能维度均衡的算法方案。算法方案设计主要有两个过程:浮点设计和定点设计。浮点设计阶段主要完成算法方案的理论设计。而定点设计阶段主要负责把理论算法方案改造成适合不同硬件平台的可实现方案。

改造过程主要指计算过程的定点定标化。改造过后需要验证定点方案与原浮点方案的性能差异,一般要求达到一定的差异指标,这样才能保证最终的实现能够达到理论设计时的性能目标。这样就催生了一个仿真需求:在仿真链路上能够灵活的对各模块进行定浮点运算的切换控制,以求能够实现仿真链路上定浮点模块的混合仿真。这样就能够检查所关心的一个或者若干个模块的定点设计与浮点设计相比所造成的整体性能差异。目前已有的链路级仿真方法没有涉足此需求的相关描述。而已有的定点仿真描述大多集中于模块级定标方法,也没有链路级定浮点混合仿真方法的相关描述。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种通信系统链路级定浮点混合仿真方法,在仿真链路上能够灵活的对各模块进行定浮点运算的切换控制、实现仿真链路上定浮点模块的混合仿真以及检查所关心的一个或者若干个模块的定点设计与浮点设计相比所造成的整体性能差异。

本发明的目的是通过以下技术方案来实现的:一种通信系统链路级定浮点混合仿真方法包括:

S1收集各模块定浮点代码;

S2对各运算模块的仿真代码进行定浮点混合改造;

S3把经过定浮点混合改造的各模块以及纯控制模块按照数据处理顺序连接起来;

S4建立配置文件;

S5开始进行链路级的定浮点混合仿真。

优选的,所述的收集各模块定浮点代码同时需确定仿真链路中各模块之间的接口是统一使用浮点类型还是定点类型。

优选的,所述的对各运算模块的仿真代码进行定浮点混合改造包括:

S21在接口的输入参数中加入各参数的定点定标参数,加入一个定浮点指示参数来控制所执行的运算模式;

S22判断定浮点指示参数的设置和模块间统一接口类型是否相同,如不同需进行数据类型转换,反之不需要转换;

S23将定浮点代码集合在一起,通过定浮点指示参数来选择执行哪段代码;

S24判断定浮点指示参数的设置和模块间统一接口类型相同,如相同直接将运算结果输出;反之需要进行数据类型转换后再将运算结果输出;

S25将输出参数相对应的定点定标值作为输出参数加入到模块的输出接口中进行输出;

优选的,所述的定浮点指示参数当它为1的时候执行定点运算,为0的时候执行浮点运算。

优选的,所述的连接需遵循以下原则:前级模块的运算输出和定标输出作为后继模块的运算输入和定标输入。

优选的,所述的纯控制模块和其他模块的连接不需要考虑定点定标的传递问题。

优选的,所述的建立配置文件给各个定浮点混合模块设置一个定浮点指示变量,这些定浮点指示变量也作为各模块自己的定浮点指示参数来输入,从而可以通过在配置文件中修改变量值来控制各模块的运算模式。

优选的,所述的配置文件中还给出仿真链路中定点运算所需要的初始变量和定标参数。

优选的,初始变量和定标参数是不能依靠运算模块运算自己产生和传递的参数,它们是整个链路级仿真的输入。

本发明的有益效果是:本发明摈弃了一个仿真模块只固定进行浮点和定点其中一种运算的设计思想。通过修改模块接口,集合定浮点计算代码以及对接口数据进行转换等措施,使模块能够灵活地根据参数进行浮点或者定点计算,同时保证了模块间接口数据类型的无变化。这样就使浮点运算模块和定点运算模块可以无阻碍的连接起来。最终通过在配置文件中集合所有仿真模块的定浮点指示参数完成了所有模块运算模式的可控性。这样的仿真链路可在配置文件中设置各个模块自己的定浮点运算模式,可以达到一条链路上参数控制的定浮点模块混合仿真的目的。

附图说明

图1为本发明流程图;

图2为仿真代码结构示意图;

图3为链路级的模块连接改造形式;

图4为配置文件的形式。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

如图1所示,一种通信系统链路级定浮点混合仿真方法包括:

S1收集各模块定浮点代码;同时确定仿真链路中各模块之间的接口是统一使用浮点类型还是定点类型,这个可根据自己使用的需要确定。

S2对各运算模块的仿真代码进行定浮点混合改造;纯控制模块不需要进行改造,每个运算模块的改造包括:

S21在接口的输入参数中加入各参数的定点定标参数,用于定点运算的输入参数与它们的定标参数一一对应;并且加入一个定浮点指示参数来控制执行浮点还是定点运算;假设定浮点指示参数的参数名为Fix_En。

优选的,浮点指示参数的参数Fix_En为1的时候执行定点运算,为0的时候执行浮点运算。

S22如果发现定浮点指示参数Fix_En的设置和S1确定的模块间统一接口类型不同,那么在代码的最开始进行定浮点数据类型转换。

在一个实施例中,如果S1确定统一接口为浮点格式,而模块的Fix_En设置为1,那么就需要把运算所需要的所有输入数据和参数转换为定点数据类型。转换所需要的定标参数在S21中已经作为输入参数加入了。

在另一个实施例中如果Fix_En的设置为0,那么就和统一接口数据类型一致,则不需要把输入数据和参数进行数据类型转换。

S23把模块的定浮点代码集合在一起,通过定浮点指示参数例Fix_En来选择执行哪段代码。

S24和S22描述的输入情况一样,如果发现定浮点指示参数Fix_En的设置和S1确定的模块间统一接口类型不同,那么在运算之后需要对运算结果进行类型转换后再输出。

在一个实施例中S1确定统一接口为浮点格式,而此模块的Fix_En设置为1,那么就需要把运算得到的定点结果转换为浮点数值输出。

在另一个实施例中S1确定统一接口数据类型一致,则不需要进行类型转换直接把运算结果输出。

S25在代码的最后,无论模块是浮点运算还是定点运算,都把输出参数相对应的定点定标值作为输出参数加入到模块的输出接口中进行输出。

S3把经过定浮点混合改造的各模块以及纯控制模块按照数据处理顺序连接起来;把经过定浮点混合改造的各模块以及纯控制模块按照数据处理顺序连接起来。

优选的,运算模块的连接遵循以下原则:

前级模块的运算输出和定标输出作为后继模块的运算输入和定标输入。纯控制模块和其他模块的连接不需要考虑定点定标的传递问题。

S4建立配置文件;文件中给各个定浮点混合模块设置一个定浮点指示变量,这些定浮点指示变量也作为各模块自己的定浮点指示参数来输入,从而通过在配置文件中修改变量值来控制各模块的运算模式。

优选的,配置文件中还给出仿真链路中定点运算所需要的初始变量和定标参数等。

优选的,初始变量和定标参数指的是不能依靠运算模块运算自己产生和传递的参数,它们是整个链路级仿真的输入。

S5开始进行链路级的定浮点混合仿真。

如图2所示,在一个实施例中假设一个仿真链路有4个模块:A、B、C和D,并且这四个模块顺序连接。对这些模块的仿真代码进行定浮点混合改造后,它们的仿真代码都有的结构图中以A为例。

如图3所示,Ain_n代表输入参数,Ain_n_Q代表其对应的定点定标参数。Aout_n代表输出参数,Aout_n_Q代表其对应的定点定标参数。Fix_En_A是A模块的定浮点指示参数。各个模块定浮点混合改造完成之后,链路级的模块连接改造成的形式。

如图4所示,前一个模块的输出全部作为后续模块的输入,并且四个模块顺序连接,这是简化的描绘,实际情况可能是多样的,最后配置文件的形式。

最终通过设置Fix_En_A、Fix_En_B、Fix_En_C和Fix_En_D的值就可以灵活地进行这四个模块的定浮点混合仿真了。

以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1