APP下载

基于VC++的时频分析软件设计

2014-09-01胡力文

新媒体研究 2014年11期
关键词:软件设计

胡力文

摘要针对基于Matlab开发的时频分析软件在工程应用中对大容量数据进行处理时存在着界面迟滞、显示速度慢、执行效率低下的问题,基于Viscual C++开发了一款时频分析软件,实现了小波时频滤波、模态参数识别以及主频识别功能。结果表明该软件具有操作简单灵活、运行速度快、执行效率高的特点。

关键词时频分析;Viscual C++;软件设计

中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2014)11-0012-02

当前,市场上广泛存在的基于Matlab开发的时频分析软件在对大容量数据进行处理时存在着界面迟滞、显示速度慢、执行效率低下等问题,其主要用于工程算法分析和相关算法理论的验证,不适应工程应用分析的基本需要。为了提高时频分析软件在工程分析中的应用效率,本文基于Viscual C++开发了一款时频分析软件,实现了小波时频滤波、模态参数识别以及主频识别功能。

1软件设计的功能需求分析

在软件设计之初,通过与相关设计人员的探讨,确定该软件的功能需求包括如下几点:①能够读取不同存储格式的数据文件,诸如txt文档、mat文件等。同时在向软件导入不合法(数据格式不符合要求)的文件时,软件将给出信息提示,而且能够对时域信号进行预处理,例如重采样等操作。另外,分析得到的数据文件结果必须能够进行保存,便于后续的其他分析对数据结果进行直接调用;②通过小波时频滤波方法达到对信号进行滤波除噪的目的。对于一些产生大噪声的设备进行强度模态试验时产生的数据而言,传统的直接估算频率响应函数的方式不能获得准确的结果,但频率响应函数的精度又对模态参数的识别结果产生直接影响。所以,为了提高所获得频率响应函数结果的精确度,通过采用小波脊线提取的方式进行滤波,将能够有效的将输入、输出信号噪声进行清除。这样不但能够获得具有良好响应特征的响应函数,而且使得系统的识别精度得到提升;③将Morlet小波为母小波,实现了小波模态参数识别的基本方法。该方法具有抗噪声能力强、模态识别精度高的特点,同时对密频状态下的模态形式具有良好的识别效果,而且还能将测量对象(多变量复杂系统)分解为若干个独立的单变量系统。这时,就能够将多参数复杂系统分解为单参数的简单系统模态识别,提高了系统的识别速度,可以对模态频率以及阻尼比进行快速估算。

2软件的整体设计

本次研究所设计的时频分析软件的基本结构包括这样几个部分:数据导入部分、数据分析与预处理部分、数据输出部分和数据表达部分。其中,数据导入以及数据输出部分主要是针对所输入和产生的数据文件进行直接操作,例如对数据分析文件的读写操作、分析结果的保存等。

数据的分析与处理是该软件算法的主体,其中主要包括小波时频滤波、模态参数识别和主频分析算法等。在设计过程中,考虑到软件后续使用过程中其可靠性和可维护性的提高,对软件采取了模块化设计的方式,将整个系统设计成为功能相对单一、结构独立的成体系构建方式,不但降低了整个软件系统的复杂程度,而且减少了整个开发过程中可能产生的错误,提高了软件设计的效率和质量。

在软件界面设计方面,其作为数据表达及可视化的主体部分,基于面向对象的程序设计方式,实现了快速显示二维图像(时频图、散点图、曲线图)以及显示数字列表(模态参数识别结果数据等)等功能。同时,通过采用基于windows消息映射机制的设计,实现了多样化的软件识别功能,例如右键菜单操作、选取极值点等操作。这是软件人机交互设计的一个重点,同时也是整个软件程序设计的难点。

在软件的模块设计划分过程中,根据软件的功能需要,将软件划分成为五个基本模块:数据输入及显示模块、小波时频滤波模块、小波模态参数拾取模块、主频分析模块以及处理结果显示与保存模块,用户通过读取输入的相关数据文件选择对应的功能模块对输入的数据信息进行处理,若需要预先对数据进行降噪处理然后再进行小波模态识别时,则可以直接选择小波时频滤波模块,在完成分析处理并保存信号之后,再将滤波后的数据重新导入进行分析,这时就需要选择小波模态识别功能模块。

3软件各功能模块的实现

因为C++语言的执行响应速度快,其速度几乎和汇编语言相当,加之其属于面向对象的编程语言,软件设计过程中选择C++作为开发的基本原因,同时将Visual Studio 2008的Viscual C++的基本工具,结合IT++类库,通过使用单文档视图结构的方式对时频软件进行开发,设计得到的主界面如图1所示。该软件界面根据功能模块而划分,主要包括菜单栏、工具栏、信息显示区域、图形显示窗口和状态栏等几个部分。

图1软件主界面

1)数据输入及显示功能模块。该模块的主要功能在于实现数据的输入以及针对数据的预处理,同时设置对应的工程分析单位、波形显示等。其通过分析数据加载界面,从工作计算机中选择待分析的数据,打开之后将其加载至计算机内存当中,其中可加载的数据类型包括mat文件和txt文本文件,其默认的数据格式是mat数据文件。

在数据加载至内存之后,软件将显示分析对象图形的工程单位,如图2所示。其中,“Time Unit”表示横坐标的工程单位是时间单位,“vibration Unit”表示所输入的数据的单位。在不设置时,软件默认的时间单位是S,纵坐标的单位是V。

图2软件工程单位设置

之后进入基本参数设置,需要对所输入的数据进行预处理。界面设置的操作指令包括文件名、数据大小、采样频率设置窗口以及其他的相关说明等。

在完成相关参数的输入之后,显示主界面将激活激励通道以及响应通道的相关波形,同时将在主界面数据基本信息当中显示数据的具体大小、采样率、频率分析区域、频率分辨率等相关信息。在设计过程中,为了避免出现不必要的误操作,在数据加载之前,加载菜单的文件菜单下除了“Data Load”子菜单可用之外,其他的相关功能均显示灰色(不可用状态)。

2)小波时频滤波功能模块。该功能模块设计原理是通过获得小波系数矩阵,基于Carmona从模值识别脊线的原理,提取获得小波脊线。这时,小波脊线将刚好是时域信号在时频域上的对应分布,之后利用脊线位置对应的小波系数重构得到滤波处理后的时域信号。通过这种预处理能够有效去除信号中的噪声,提高信号的整体信噪比。

在软件界面设计过程中,所加载的数据在经过数据加载和显示 模块之后,通过设定对应的滤波参数就能够进行小波时频滤波分析。

其中,相关的菜单操作包括:①小波变换(Wavelet Transform),点击该菜单之后将弹出进度条对话框,用来显示小波变换的进程,在计算机处理完成之后将自动关闭;②脊线爬升(Climb Ridges),点击该菜单之后将弹出进度条对话框,用来显示脊线爬升处理进度,在计算机处理完成之后将自动关闭;③脊线提取(Obtain Ridges),当所提取的脊线数据值超过了Nchain的值时,软件将弹出相关的提示信息,要求将阈值或者幅值进行调整,当不能提取脊线时则需要对爬升参数进行调整,重新进行脊线爬升操作;④信号重构(Reconstruction)。

3)小波模态识别功能模块。该功能模块是基于改进的Morlet小波为母小波,通过对系统脉冲响应信号实施持续的小波变换,从而获得处理后的小波系数矩阵,然后根据小波系数以及对应的模态参数之间的关系,针对通过小波系数脊线提取分离处理的频率信号采用取小波骨架包络线的自然对数及小波骨架相位斜率识别处理,得到整个系统结构的模态参数。

endprint

通过小波模态识别功能模块的处理后,将能够得到该结构的模态参数,包括阻尼比、结构的固有频率等。处理过程中,需要设定对应的模态识别参数,如图3所示。

4)主频分析功能模块。主频分析功能模块的主要功能是能够后的信号分析频段中主要频率岁时间变化的相关情况,其具体的参数设置界面如图4所示。界面显示的“Number of dot”为软件分析过程中傅里叶变换次数,一般的取值包括512、1024、2048、4096四种,考虑到计算精度和软件计算资源消耗,软件设置的默认次数是1024。在软件的主界面中可以直接点击“Main Frequency Analysis”进行对应的操作,之后通过主频分析即可以得到对应的值。

图3模态识别参数的设置

图4主频分析模块单参数设置

5)处理结果显示及保存功能模块。时频分析结果的显示及保存功能主要包括以图像形式显示处理数据的结果、保存数据结果等。为了便于后续软件的使用以及其他软件,诸如使用Matlab编写的软件直接调用分析结果,该软件还设计了保存成mat格式的数据接口。同时,还可以对一维数据(Orginal Signal、Main Frequency Result等)数据结果进行保存,其保存后的第一列显示为数据的时间信息,第二列则显示为数据信息。

针对软件的图形数据显示的控制,软件设计过程中专门设计了用于图形显示控制的快速显示控件——Cpoltcontrol。该控件是基于CStatic的类定义派生类实现的,将使得该空间易于与其他控件以及应用程序实现集成。满足了实际的工程应用需要,尤其是对大数据量的显示,可以根据所生成的实际信号形成标准化的坐标和图像,使用者可以按照自身的情况对坐标轴名称、单位以及标题等进行修改,并添加了针对图形的拷贝、保存以及右键菜单功能,增加了该空间的实用性。

4结论

文章针对时频分析软件的具体功能需要,设计了软件的整体系统构成,包括对软件的各个功能模块进行了详细的划分和详细设计,论述了各个功能模块设计过程中基于的设计原理,并介绍了软件的功能界面实现,为时频分析软件的设计提供参考。

参考文献

[1]苑冰洁,苑冰洁,穆晓敏,等.基于VC++的SDR处理平台可视化调试软件设计[J].科技信息,2010(35).

[2]李晓飞.小波分析在光谱数据去噪处理中的应用[D].上海交通大学,2009.

[3]朱玉东.基于组件的水下目标识别软件的设计与实现[D].哈尔滨工程大学,2011.

[4]颜国雄,王潜,童峰.基于Visual C和PC的软件水声调制解调系统[J].海洋科学,2009(8).

endprint

通过小波模态识别功能模块的处理后,将能够得到该结构的模态参数,包括阻尼比、结构的固有频率等。处理过程中,需要设定对应的模态识别参数,如图3所示。

4)主频分析功能模块。主频分析功能模块的主要功能是能够后的信号分析频段中主要频率岁时间变化的相关情况,其具体的参数设置界面如图4所示。界面显示的“Number of dot”为软件分析过程中傅里叶变换次数,一般的取值包括512、1024、2048、4096四种,考虑到计算精度和软件计算资源消耗,软件设置的默认次数是1024。在软件的主界面中可以直接点击“Main Frequency Analysis”进行对应的操作,之后通过主频分析即可以得到对应的值。

图3模态识别参数的设置

图4主频分析模块单参数设置

5)处理结果显示及保存功能模块。时频分析结果的显示及保存功能主要包括以图像形式显示处理数据的结果、保存数据结果等。为了便于后续软件的使用以及其他软件,诸如使用Matlab编写的软件直接调用分析结果,该软件还设计了保存成mat格式的数据接口。同时,还可以对一维数据(Orginal Signal、Main Frequency Result等)数据结果进行保存,其保存后的第一列显示为数据的时间信息,第二列则显示为数据信息。

针对软件的图形数据显示的控制,软件设计过程中专门设计了用于图形显示控制的快速显示控件——Cpoltcontrol。该控件是基于CStatic的类定义派生类实现的,将使得该空间易于与其他控件以及应用程序实现集成。满足了实际的工程应用需要,尤其是对大数据量的显示,可以根据所生成的实际信号形成标准化的坐标和图像,使用者可以按照自身的情况对坐标轴名称、单位以及标题等进行修改,并添加了针对图形的拷贝、保存以及右键菜单功能,增加了该空间的实用性。

4结论

文章针对时频分析软件的具体功能需要,设计了软件的整体系统构成,包括对软件的各个功能模块进行了详细的划分和详细设计,论述了各个功能模块设计过程中基于的设计原理,并介绍了软件的功能界面实现,为时频分析软件的设计提供参考。

参考文献

[1]苑冰洁,苑冰洁,穆晓敏,等.基于VC++的SDR处理平台可视化调试软件设计[J].科技信息,2010(35).

[2]李晓飞.小波分析在光谱数据去噪处理中的应用[D].上海交通大学,2009.

[3]朱玉东.基于组件的水下目标识别软件的设计与实现[D].哈尔滨工程大学,2011.

[4]颜国雄,王潜,童峰.基于Visual C和PC的软件水声调制解调系统[J].海洋科学,2009(8).

endprint

通过小波模态识别功能模块的处理后,将能够得到该结构的模态参数,包括阻尼比、结构的固有频率等。处理过程中,需要设定对应的模态识别参数,如图3所示。

4)主频分析功能模块。主频分析功能模块的主要功能是能够后的信号分析频段中主要频率岁时间变化的相关情况,其具体的参数设置界面如图4所示。界面显示的“Number of dot”为软件分析过程中傅里叶变换次数,一般的取值包括512、1024、2048、4096四种,考虑到计算精度和软件计算资源消耗,软件设置的默认次数是1024。在软件的主界面中可以直接点击“Main Frequency Analysis”进行对应的操作,之后通过主频分析即可以得到对应的值。

图3模态识别参数的设置

图4主频分析模块单参数设置

5)处理结果显示及保存功能模块。时频分析结果的显示及保存功能主要包括以图像形式显示处理数据的结果、保存数据结果等。为了便于后续软件的使用以及其他软件,诸如使用Matlab编写的软件直接调用分析结果,该软件还设计了保存成mat格式的数据接口。同时,还可以对一维数据(Orginal Signal、Main Frequency Result等)数据结果进行保存,其保存后的第一列显示为数据的时间信息,第二列则显示为数据信息。

针对软件的图形数据显示的控制,软件设计过程中专门设计了用于图形显示控制的快速显示控件——Cpoltcontrol。该控件是基于CStatic的类定义派生类实现的,将使得该空间易于与其他控件以及应用程序实现集成。满足了实际的工程应用需要,尤其是对大数据量的显示,可以根据所生成的实际信号形成标准化的坐标和图像,使用者可以按照自身的情况对坐标轴名称、单位以及标题等进行修改,并添加了针对图形的拷贝、保存以及右键菜单功能,增加了该空间的实用性。

4结论

文章针对时频分析软件的具体功能需要,设计了软件的整体系统构成,包括对软件的各个功能模块进行了详细的划分和详细设计,论述了各个功能模块设计过程中基于的设计原理,并介绍了软件的功能界面实现,为时频分析软件的设计提供参考。

参考文献

[1]苑冰洁,苑冰洁,穆晓敏,等.基于VC++的SDR处理平台可视化调试软件设计[J].科技信息,2010(35).

[2]李晓飞.小波分析在光谱数据去噪处理中的应用[D].上海交通大学,2009.

[3]朱玉东.基于组件的水下目标识别软件的设计与实现[D].哈尔滨工程大学,2011.

[4]颜国雄,王潜,童峰.基于Visual C和PC的软件水声调制解调系统[J].海洋科学,2009(8).

endprint

猜你喜欢

软件设计
CAN总线通信技术在电梯监控系统中的应用
基于单片机SPCE061A的字幕机点阵式字母电子显示屏的设计制作
电力参数监测系统研究
基于STM8S903K3的序列打螺丝夹具的软件设计
一种VHDL语言代码重用的方法
系统工程方法在计算机软件设计中的应用分析
基于Java语言的手机软件开发技术分析
计算机软件可维护性路径研究
智能温室控制系统的研究与开发