基于计算中间件的雷达信号处理模块库的构建方法及应用的制作方法

文档序号:6386500阅读:473来源:国知局
专利名称:基于计算中间件的雷达信号处理模块库的构建方法及应用的制作方法
技术领域
本技术属于软件化雷达信号处理系统设计领域,也可以扩展到其他相关的信号处理领域,如声纳、通信等,涉及嵌入式系统开发中的中间件技术,具体指的是计算中间件技术。
背景技术
传统的雷达信号处理系统在设计上通常采用面向代码的定制开发的方法,系统设计者在设计一个雷达信号处理系统时通常需要面临手工编写代码,设计者不仅要编写信号处理算法本身而且还需要编写各处理器之间的通信程序,在数字信号处理中,通常存在多种硬件系统平台,传统的定制开发的方法所编写的集运算与通信为一体的代码往往缺乏通用性和平台可移植性;另外,在雷达信号处理中,通常可以将一种复杂的粗粒度的处理算法分割成多个细粒度的基本处理算法环节,而这种细粒度的基本处理算法可以组合成其他的粗粒度的雷达信号处理算法,这样,传统的面向代码的各运算环节一体化的开发模式,通常不具有代码可重用性,这种开发模式效率很低。雷达信号处理系统的设计者需要一种具有通用化、模块化、参数化和可视化特点的雷达信号处理算法开发方式来代替传统面向代码的开发模式,这样能够极大的减轻用户程序开发的负担,大大提高雷达信号处理系统的开发效率和灵活性,使得用户可以专注于算法功能本身的实现与组合,同时无需编写任何处理器间通信程序,灵活、高效地开发和集成复杂的应用软件,使得雷达信号处理任务能够在多处理器平台上实现灵活移植和应用。中间件是位于平台(硬件和操作系统)和具体应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在雷达信号处理系统中,可以使用不同的硬件平台,既可以有不同的硬件内部架构,也可以有不同的外部互连拓扑。若要在统一的集成开发环境中在不同的平台上开发不同的雷达应用系统,中间件的作用就是将异构的平台抽象成可配置的虚拟平台,使其提供统一的程序接口和通信服务。反之,从用户应用程序开发的角度看,中间件也可以为上层开发环境提供平台无关的信号处理接口和数据流通信接口以及任务对底层硬件的映射方法,使得用户软件的开发实现平台间可移植性,减小开发难度,缩短开发周期。基于计算中间件技术的软件化雷达信号处理系统的处理算法模块化,就是以研究HPEC (High Performance Embedded Computing,高性能嵌入式计算)系统技术中间件(Middleware)标准的发展框架为背景,开发支持在PowerPC平台、集群平台以及多DSP处理器平台等多平台的可跨平台移植的通用雷达信号处理模块库。

发明内容
本发明所要解决的技术问题是提出一种基于计算中间件技术的应用于软件化雷达中的通用雷达信号处理模块库的构建方法,采用该方法,雷达信号处理任务开发者可以构建一套较为完备的常用数学和雷达算法函数,该函数库能够提供基本运算和常用函数功能,同时屏蔽平台细节,向上提供面向功能的统一接口,完全独立于系统架构,具有平台无关性。另外,该模块库可以被自动代码生成器重用,自动转换成指定硬件架构的调用库。使用该方法,可以使雷达信号处理任务开发者专注于算法功能本身的实现,灵活、高效地开发和集成复杂的可以在多处理器平台上灵活移植的应用软件,执行效率与手工编程性能相近。本发明的特征在于,是在计算机中依次按照以下步骤实现的步骤(I):计算机建立通用的雷达信号处理函数模块库,其中包括细粒度的基本数学运算函数模块库和粗粒度的常用雷达信号处理算法模块库,所述粒度是指对应的模块库中运算单元的细化或综合的程度;所述细粒度的基本数学运算函数模块库至少含有下述各个函数模块幂函数、三角函数、矢量数学函数、矩阵数学函数、标准操作函数、统计操作函数、滤波操作函数、变换类函数、矢量实用函数以及包括版本检测在内的函数;所述粗粒度的常用雷达信号处理算法模块库至少含有下述各个算法模块子库窄带常用处理算法、窄带长时间积累处理算法、宽带逆合成孔径雷达成像算法和空时二维算法在内的各模块子库;步骤(2):为所述的每个基本数学运算函数模块或常用雷达信号处理算法模块建立一个函数或算法具体实现文件;所述函数或算法具体实现文件包括注释段和代码段,其中所述注释段至少包括模块或函数的名称、模块或函数的类别、模块或函数的功能描述、模块或函数的输入输出端口个数、输入输出数据类型、输入输出数据格式、模块参数列表、版权信息和版本信息;所述代码段包括对该模块或函数相应的模块头文件以及实现该模块功能所必需的其他库文件的包含,以及函数或算法的具体实现代码;步骤(3):为步骤(2)所述的各模块或函数具体实现文件建立相对应的模块头文件,其中包括相应的函数或模块名称的声明、供程序统一调用的函数或模块的接口以及函数或模块的参数;步骤(4):建立一个供所述基本数学运算函数模块库或常用雷达信号处理算法模块库使用的用于描述其中全体函数或模块的模块库头文件,其中包括了对各个所述的模块头文件的包含。本发明具有以下有益效果及优点1.可以构建丰富的软件仿真模型库与丰富的运算单元模块库,可根据实际应用,以建立完整的雷达信号处理流程;2.通用化、模块化、参数化和跨平台可移植特点的雷达信号处理算法开发方式来代替传统面向代码的开发模式,提高了雷达信号处理系统的开发效率;3.构建的模块库完全独立于系统架构,具有平台无关性,同时可以被系统设计者自己开发的具有自动代码生成功能的集成开发环境所使用;4.用户可以自由选择一个雷达信号处理流程是由多个细粒度的基本数学运算模块组合实现还是单单由粗粒度的通用雷达信号处理算法模块实现,这对于多处理器硬件平台具有重要意义;5.利用构建的模块库本身就可以生成模块库的帮助文档,实现自文档化;6.构建的模块库具有灵活性,可以方便地将现有的模块库替换成经过特殊优化的第三方函数库或者转换成指定硬件架构的调用库。


图1为本发明的程序流程框图;图2为构建的通用雷达信号处理模块库组成结构示意图;2. 1,函数具体实现文件示意图,2. 2,雷达信号处理模块库组成示意图;图3为脉冲压缩处理任务的两种模块库使用方法示意图;图4为如何实现现有模块库对第三方模块库接口的兼容示意具体实施例方式为解决上述技术问题,本发明所采用的技术方案为一种基于计算中间件技术的应用于软件化雷达中的通用信号处理模块库的构建方法,其特征在于所述的通用雷达信号处理模块库包含多个通用雷达信号处理模块,其中既有粗粒度的常用雷达信号处理算法库又有细粒度的基本数学运算库(这里的粒度反映的是模块库中运算单元的细化或综合的程度),每一个模块包括一个函数功能具体实现文件和相应的头文件;函数功能具体实现文件包含注释段和代码段;注释段包含模块/函数名称、模块/函数类别、模块/函数功能描述、模块/函数算法描述、输入输出端口信息、输入输出数据格式、模块参数列表、版权信息和版本信息等;代码段由C/C++语言进行描述,应包含对该模块/函数对应的头文件的引用以及其他模块功能实现必需的库文件(如math, h和complex.h等)的引用;在所述的头文件中声明相应的函数名称和参数形式,为程序调用具体的函数实现提供统一的函数接口;对所述的通用雷达信号处理模块库的使用可以通过在由实现实际硬件平台支持的代码段和其他平台无关的代码段共同构成的代码框架中嵌入对所需模块的调用来实现;上述的平台相关的代码段可包含硬件平台初始化(如寄存器初始配置、外部存储和中断配置等)、通信环境初始化(如分配通信Buffer)、运算Buffer分配、处理器通信协议实现(如共享内存、DMA等方式)等,平台无关的代码段可包含模块执行环境初始化、模块参数获取、运算变量初始化、调试代码段、用于计算模块运行时间的代码以及对具体函数实现的调用等;对所述的通用雷达信号处理模块库只需建立一个对第三方模块库接口的映射文件就能够方便地被替换成第三方开发的经过特殊优化的函数库,使用者只需要在映射文件中声明所要替换成的第三方函数库的函数调用形式;所述的通用雷达信号处理模块库能够被具有图形化模块化开发、自动代码生成、调试与测试功能、多硬件平台处理器支持的软件化雷达集成开发环境所使用,能够高效开发出复杂的雷达信号处理软件。下面结合附图和实施例对本发明装置的使用方法做进一步说明。主要包括以下四部分内容一、基于计算中间件技术的雷达信号处理模块库的开发方法;
二、如何在实际硬件平台上使用构建的雷达信号处理模块库;三、完成常用雷达信号处理任务的两种模块库使用方法;四、构建的雷达信号处理模块库如何与第三方开发的经特殊优化的模块库的兼容。对于基于计算中间件技术的雷达信号处理模块库,本发明采用如下步骤来构建步骤1:根据实际雷达信号处理的功能需求确定通用雷达信号处理函数库的组成,其中需包括细粒度的基本数学运算库和粗粒度的常用雷达信号处理算法库,一种可行的细粒度的基本数学运算库如表I所示,一种可行的粗粒度的常用雷达信号处理算法库如表2所示;步骤2 :根据实际雷达信号处理功能需求与相关雷达信号处理知识,针对每一个模块设计出处理算法,确定输入输出端口个数、输入输出数据类型、输入输出数据格式与模块参数列表;步骤3 :用软件开发方法编写模块的头文件,声明相应的函数名称和参数形式;步骤4 :根据步骤2中设计的算法为每一个模块编写功能具体实现文件;步骤5 :为编写的模块的功能具体实现文件头部添加注释段;步骤6:新建一个描述模块库全体的头文件,向其中加入刚刚编写的模块的头文件中的内容。步骤7 :参照步骤2 6所述方法开发其他信号处理算法模块,注意这时在进行步骤6时无需再新建一个头文件。本发明的流程框图如图1所示。使用本发明所述的方法最终构建的通用雷达信号处理模块库的组成结构如图2所示。如需在实际硬件平台上使用本发明构建的模块库进行雷达信号处理时,通常还需要完成相应硬件平台的配置、处理器间通信配置、运算与通信存储缓冲区分配等任务,完成这些任务的相关代码既有与实际硬件平台相关的,也有硬件平台无关的。如果指定了硬件平台,我们就可以从完成这些任务的相关代码中独立出一个与该平台对应的代码框架,同时将与具体信号处理算法相关的部分空出来,用户在使用时就可以根据自己的需要,在该代码框架中嵌入对本发明构建的模块库中相应模块的调用,然后配置好模块相关参数,就完成了该硬件平台上雷达信号处理程序的设计。虽然说上述的代码框架是平台相关的,但是对于某一指定的平台,该代码框架大体上是相同的,在具体应用中,只需要修改框架中的模块参数获取部分、通信与计算变量分配、变量初始化部分(这些是与具体使用的信号处理算法相关的),再将模块调用部分换成对其他所需信号处理模块的调用,就在该硬件平台上实现了一种新的雷达信号处理算法。事实上,这些改动完全可以基于一个特定模板由自动代码生成器来完成,所以,本文所述的基于计算中间件技术的雷达信号处理模块库的构建方法对一个具有图形化参数配置和自动代码生成器的集成化开发环境具有重要意义。对于一个常用的简单雷达信号处理任务,通常可以有两种处理方式一种是通过将细粒度的基本数学运算单元进行组合来实现,一种是直接使用粗粒度的常用雷达信号处理算法库中的模块来实现。其优点在于,在有多个处理器时,可以将一个雷达信号处理任务分割成独立的细粒度的基本数学运算单元,将它们分别分配给不同的处理器;在处理器数量较少时,如只有一个处理器时,就需要直接使用常用雷达信号处理算法库中的粗粒度的模块来完成(当然也可以通过手工设置在这个处理器上串行执行上述的细粒度的基本数学运算模块来完成,但是这样就等同于在一个处理器上执行了一个粗粒度的雷达信号处理算法模块,本质上和第二种处理方式相同)。可见,本发明所述的通用雷达信号处理模块库的构建方法对处理器的数量具有很好的适应性,使用者可以灵活地为处理器进行任务分配。为实现与第三方开发的经特殊优化的模块/函数库的兼容,本发明主要采用如下方式来实现步骤1:建立一个头文件,通过宏定义的方式实现对现有模块库与第三方模块/函数库的接口映射,映射文件内容具体格式可参见实施例4,该步骤只需要对需要进行替换的模块库进行,且要求两个库的参数列表和输入输出端口个数与类型必须相同,顺序可不同;步骤2 :在实际调用模块/函数的文件中,插入一段宏,插入位置为该文件中的对头文件的引用部分,宏的内容具体格式可参见实施例4。该段宏的功能是通过检查第一行的宏定义,该行主要用于表征使用什么库(现有的模块库还是第三方模块库),来选择是引用对第三方全部模块/函数进行声明的头文件和步骤I中建立的映射头文件,还是引用对现有的模块库中的全部模块/函数进行声明的头文件。如图4所示,步骤I中所述的映射文件的作用是实现接口转换,可以将第三方函数库的接口转换成现有的模块库的接口,以实现接口的统一。有了这样一个文件,对于用户而言,第三方函数库的接口就和现有的模块库接口没有任何区别,在需要使用第三方函数库时就省去了更改以前编写的对模块库的函数调用的麻烦。如果使用者事先就考虑了与第三方模块库的兼容问题而在调用模块/函数的文件中加入了步骤2中所述的宏,那么通过建立步骤I中所述的这种映射,对于用户而言,第三方模块/函数库就与现有模块库具有相同的接口,这样就可以实现在不改变原有雷达信号处理系统中任何程序的情况下使用第三方开发的函数库。而且通过改变第一行的宏定义,就可以灵活地在现有模块库和第三方模块库间切换。实施例1本实施例主要介绍使用本发明所述的方法构建的一个雷达信号处理的模块(计算输入向量的COS值)的各组成部分的内容。该模块的头文件内容如下extern void e_vcos(float *a, int ia, float *c,int ic,int n);该模块的功能具体实现文件内容如下
权利要求
1.一种基于计算中间件的雷达信号处理模块库的构建方法,其特征在于,是在计算机中依次按照以下步骤实现的步骤(I):计算机建立通用的雷达信号处理函数模块库,其中包括细粒度的基本数学运算函数模块库和粗粒度的常用雷达信号处理算法模块库,所述粒度是指对应的模块库中运算单元的细化或综合的程度;所述细粒度的基本数学运算函数模块库至少含有下述各个函数模块幂函数、三角函数、矢量数学函数、矩阵数学函数、标准操作函数、统计操作函数、 滤波操作函数、变换类函数、矢量实用函数以及包括版本检测在内的函数;所述粗粒度的常用雷达信号处理算法模块库至少含有下述各个算法模块子库窄带常用处理算法、窄带长时间积累处理算法、宽带逆合成孔径雷达成像算法和空时二维算法在内的各模块子库;步骤(2):为所述的每个基本数学运算函数模块或常用雷达信号处理算法模块建立一个函数或算法具体实现文件;所述函数或算法具体实现文件包括注释段和代码段,其中所述注释段至少包括模块或函数的名称、模块或函数的类别、模块或函数的功能描述、模块或函数的输入输出端口个数、输入输出数据类型、输入输出数据格式、模块参数列表、版权信息和版本信息;所述代码段包括对该模块或函数相应的模块头文件以及实现该模块功能所必需的其他库文件的包含,以及函数或算法的具体实现代码;步骤(3):为步骤(2)所述的各模块或函数具体实现文件建立相对应的模块头文件,其中包括相应的函数或模块名称的声明、供程序统一调用的函数或模块的接口以及函数或模块的参数;步骤(4):建立一个供所述基本数学运算函数模块库或常用雷达信号处理算法模块库使用的用于描述其中全体函数或模块的模块库头文件,其中包括了对各个所述的模块头文件的包含。
2.根据权利要求1中所述的基于计算中间件的雷达信号处理模块库的构建方法而提出的一种使用方法,其特征在于,在用一个或多个处理器执行简单的雷达信号处理任务时可以通过直接使用粗粒度的常用雷达信号处理算法模块库或者通过把细粒度的基本数学运算函数模块库中的函数模块进行组合来实现。
3.根据权利要求1中所述的基于计算中间件的雷达信号处理模块库的构建方法而提出的一种使用方法,其特征在于,在一个实际的硬件平台上使用所述的通用的雷达信号处理函数模块库时,在所述计算机中构造一个代码框架,其中包括模块库头文件、实现实际硬件平台支持的代码段以及和平台无关的代码段,所述的实际硬件平台支持的代码段包括至少含有寄存器初始配置、外部存储配置、中断配置在内的硬件平台初始化配置、运算缓冲区分配、至少包括共享外存、DMA在内的处理器通信协议实现、至少包括分配通信缓冲区在内的通信环境初始化,所述的平台无关的代码段,包括环境初始化、获取模块参数、运算变量初始化、调试代码段、模块运行时间计算以及调用具体函数模块的代码,所述具体函数模块是指用户根据自己需要选择的所述通用的雷达信号处理函数模块库中的模块以及配置好的相关参数。
4.根据权利要求1或3所述的基于计算中间件的雷达信号处理模块库的构建方法而提出的一种使用方法,其特征在于,在需要替换的模块库与基于中间件的雷达信号处理模块库这两者在参数列表和输入输出端口个数、类型相同条件下,按以下步骤实现与第三方开发的经优化的模块或函数的兼容第一步建立一个实现接口转换的映射头文件,实现基于计算中间件的雷达信号处理模块库与第三方开发的经优化的模块或函数的映射关系;第 二步在权利要求3所述的用于实际调用模块库的代码框架中,加入以下部分使用宏#define所表示的对需要使用的模块库类型的声明,表示判断是否使用所述的基于计算中间件的雷达信号处理模块库的宏#ifdef current以及对该相应的模块库头文件的包含, 表示判断是否使用第三方开发的经优化的函数模块库的宏#elsif defined vendorl以及对该模块库头文件的包含,以及对第一步中所述的用于实现所述雷达信号处理模块库与第三方开发的模块库的兼容的映射头文件的包含。
全文摘要
基于计算中间件的雷达信号处理模块库的构建方法及应用,属于软件化雷达信号处理系统设计组成,其特征在于模块库既有细粒度的基本数学运算库,又有粗粒度的复杂的雷达信号处理算法;每一个模块包括一个函数功能具体实现文件和与之对应的头文件,构建的模块库全体由一个单独的头文件描述;函数功能具体实现文件包含注释段和代码段两个部分。本发明可以实现雷达信号处理算法的模块化与通用化,具有较好的第三方模块库兼容性,可以灵活地选择雷达信号处理任务实现方式,同时提高了雷达信号处理系统的开发效率。
文档编号G06F9/44GK103019744SQ20121059299
公开日2013年4月3日 申请日期2012年12月31日 优先权日2012年12月31日
发明者汤俊, 朱伟, 罗军, 鉴福升, 汤小为, 李宁 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1