基于MATLAB-GUI的信号采集与分析系统设计
2015-03-09张世弘刘振兴
张世弘,刘振兴
(武汉科技大学信息科学与工程学院,湖北武汉 430081)
基于MATLAB-GUI的信号采集与分析系统设计
张世弘,刘振兴
(武汉科技大学信息科学与工程学院,湖北武汉 430081)
在测控以及故障诊断等诸多场合,需要根据不同的需求对信号采取不同的时频处理方法,现有的系统信号处理方法比较单一,难以满足不同场合的需求。从时频信号处理方法集成的角度出发,介绍了以MATLAB的图形用户界面(GUI)开发环境为基础的信号采集和处理系统的整体设计方案。进而阐述了从信号采集与生成、分析处理以及数据管理3个方面实现该系统的方法。实验结果表明:该信号采集与处理系统使用方便、稳定性好、具有高精确性。该系统提供良好的交互性和扩展性,能够用于实际信号分析与仿真实验。
MATLAB-GUI;串口通信;信号分析集成;可扩展性
0 前言
信号采集和信号分析是测控系统与故障诊断系统的重要组成部分,目前几乎所有的工程技术领域都涉及到信号处理。研究信号的时频结构,是信号处理过程中非常重要的分析手段,现有的产品提供的信号处理方法相对比较单一,有的只限于常规的频谱分析,有的提供了少量的几种方法,不具备扩展功能,只适合特定的专业应用领域。适用范围。而且普遍价格昂贵,加工工艺复杂,体积庞大,且生产技术要求较高[1]。近年来,随着计算机总线技术、网络技术、高速数据传输技术的快速发展提高和应用,虚拟仪器在测量与分析等众多领域发挥了越来越重要的作用[2]。文中充分利用MATLAB在处理数据和构建人机交互界面上的优势,构建虚拟仪器,将数据记录、新的时频信号处理方法、串口采集上位机等的功能进行集成,搭载多种时频信号处理算法,实现了集信号生成与通信、信号多角度分析以及数据管理等功能于一体的信号采集与分析系统,既能满足科学研究的需要,也能作为信号处理方法学习的示教系统。
1 MATLAB-GUI开发环境
MATLAB-GUI提供Windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB函数库的接口,进行系统开发方便直接。
其设计图形界面时有两种方法:(1)直接通过编写m文件来创建面向对象的应用程序;(2)使用MATLAB自带的图形界面开发环境GUIDE(Graph User Interface Developing Environment)实现。开发者可在GUIDE上直接创建按钮、文本编辑器等,组建系统的用户界面,并且通过直接设置控件的属性及相应代码,实现各个控件的函数回调功能。文中选择第二种方式。
在该系统的设计中,将通过模块化思想利用MATLAB函数,搭建整体系统框架,继而建立多个界面分别实现信号采集、分析与数据管理功能。最终,使用MATLAB系统LCC编译器,将本MATLAB-GUI程序转换为exe文件,使系统可以在不安装MATLAB的环境中正常运行。
2 系统总体方案
在MATLAB-GUI开发环境下设计信号采集与分析系统需要能够:
(1)既可以作为实际信号分析系统,也可以进行仿真实验,用于理论分析;
(2)搭载多种信号处理方法,可以从多个角度对信号进行处理;
(3)提供良好的人机交互仿真环境,便于用户针对不同信号选用不同分析方法进行信号检测与试验;
(4)提供一定的可扩展性,通过给定接口,方便用户扩展新算法,新功能。
据此,将系统分为如下3个模块:
(1)信号管理模块。实现对采集、生成以及分析后数据的管理,包括数据传输、存储等工作
(2)信号采集模块。实现单通道、多通道信号的实时采集,而且设计信号发生器,实现自定义信号的生成;
(3)信号分析处理模块。实现在线、离线信号分析处理功能,从多个角度对信号的时域、频域和时频域特征进行分析与处理,并且提供良好接口,实现新算法 (M文件或C文件)的动态加载。
信号采集与处理系统整体框架如图1所示。
图1 信号采集与处理系统整体框架
3 信号采集与管理设计
信号采集模块,分为实时采集部分与信号发生器部分。实时采集部分负责采集实际信号并用作实际分析;信号发生器部分负责产生仿真实验信号,作为理论分析的实验信号。信号管理模块为信号的调用、保存、新方法的开发提供保障。
3.1 信号采集功能实现
MATLAB的设备控制箱 (Instrument Control Toolbox,ICT)提供了对RS232与RS485串口通信的正式支持。MATLAB通过调用设备控制工具箱的serial类以及相关函数,来创建串口设备对象,得到设备的文件句柄,从而以操作文件的方式实现对PC串行口的读写操作。其基本步骤包括:创建串口对象并配置串口属性、连接串口对象和外围设备、串口读写数据、打开关闭串口以及清除串口对象。
(1)创建串口对象并配置串口属性
在创建一个串口对象时,利用set函数来设置串口对象的属性如:波特率、数据位、奇偶校验位、停止位和结束符等。
(2)连接串口对象和外围设备
在串口读写数据前,利用fopen函数打开串口,与相应的设备连接起来。当串口连接到设备,Status(串口是否连接到设备)属性更新为open,输入缓冲区和输出缓冲区数据将清空。
(3)串口读写数据
串口在进行数据读写时,通过fread、fwrite完成读写操作。串口对象遵循配置的属性值进行通信,通信数据可为二进制或者十六进制表示。
(4)关闭串口和清除串口对象
利用fclose函数断开串口和设备的连接,使用delete函数将其从串口对象中清除,后再利用clear函数从MATLAB工作空间中将其清除。
据此设计信号通信流程如图2所示。
图2 数据通信流程
信号采集完成后,系统针对信号数据搭建了分频系数——1/n分频,便于满足不同频率分辨率的分析要求。其分频原理如下:假设n=2,即1/2分频,在信号数据中按顺序从取出其中次序为2、4、6……的数据,另保存为新的信号。据此设计信号采集界面,实时采集信号过程如图3所示。
图3 信号采集界面
3.2 信号发生器功能实现
为了实现本系统可以进行信号处理仿真实验的目的,作者设计了信号发生器功能。
MATLAB-GUI中的文本编辑器控件可以对编辑框中的内容进行编辑、删除和替换。用户可以通过其编辑自定义函数,采样频率及信号长度等参数。进而,系统通过回调函数获取这些信息,生成自定义信号,实现信号发生器功能。通过函数的选择,可以实现任意信号的生成。如图4所示,使用信号发生器生成:
其中采样频率为1 024 Hz,采样点数为1 001的信号。
图4 信号发生器界面
3.3 信号管理部分
该系统集成信号采集与分析等多种功能于一体,故而信号的存储以及加载是系统必不可少的一部分。系统通过调用MATLAB-GUI开发环境中uiput-file和uigetfile函数,选择文件名和保存/打开的路径确定目标位置,然后利用save和load函数完成信号数据的保存或者加载。
据此,在该系统的设计中,系统将采集、生成的信号和信号分析处理后的每一组数据进行保存,且按n×m矩阵形式保存为文本文件或者Excel文件,并且,可以在系统中加载符合以上格式的信号数据进行分析。
4 信号分析设计
信号采集与管理完成后,信号分析同样是本系统的一个重要环节。系统设计对在线、离线信号从多个角度进行分析,包括时域、频域、时频域分析中多种信号处理方法。另外,设计具备友好的人机界面,集成MATLAB工具栏,方便使用者根据实际情况,在有限范围内进行适当调整和提取所需的分析数据。
4.1 频域、时域分析功能实现
系统中的信号频谱分析主要涵盖时域信号显示、FFT变换、功率谱变换和IFFT变换等功能,并且集成不同的窗函数供用户选择,可以对信号进行截短分析,以减少频谱能量泄漏对分析结果的影响。另外,该系统针对两组信号间的信号分析,搭载相关性计算、轴心轨迹计算和相位差计算等功能。用户通过加载信号数据文件,适当调整采样频率和采样点数等相关参数,即可对数据进行分析,进而获得所需要的信息。
据此设计频域、时域分析界面。在此通过信号采集模块采集到轴承振动信号数据,其中采集频率为10 000 Hz,采集点数为16 384。对其进行实时时域、频域特征分析,如图5、6所示。
图5 频域分析界面a
图6 时域分析界面b
4.2 时频分析功能实现
(1)极大重叠离散小波包变换分析功能
为了处理多分量的复杂信号,系统采用极大重叠离散小波包变换 (MODWPT)方法。
通过MODWPT可以将多分量的复杂信号分解为若干个瞬时频率和瞬时幅值都具有经典物理意义的分量之和,并且求出各个单分量信号的瞬时频率和瞬时幅值,再进行组合得到原始复杂信号完整的时频分布。
(2)Hilbert-Huang变换功能
为了准确反映信号的固有特性,实现复杂的非平稳信号的合理分析,系统采用了Hilbert-Huang变换(HHT)方法。
Hilbert-Huang变换由经验模态分解 (EMD)及Hilbert变换两部分组成。EMD本质是把1个信号进行平稳化处理,其结果是将信号中不同尺度的波动或趋势逐级分解开来,产生一系列具有不同特征尺度的数据序列—本征模态函数,再通过希尔伯特变换求得的瞬时频率及幅值。得到信号振幅—瞬时频率—时间的分布。
(3)广义解调功能
针对分析非平稳信号过程中可能产生的人为时频分割、虚假分量和模态混淆等问题,并且达到尽可能还原原始信号的时频分析曲线的目的,本系统还集成了广义解调时频算法。
广义解调时频算法通过选取一种信号变换的方法,将时频分布为倾斜或非线性的信号变换为时频分布为线性和平行于时间轴的信号。
据此,设计了时频分析界面,在其中分别设置了MODWPT窗口、HHT变换窗口和广义解调窗口,广义解调信号分量提取窗口。并且设计多分量的复杂非平稳信号:
其中采样频率为1 024 Hz,采样点数为1 024,对其进行时频分析,其结果如图7所示。
图7 时频分析界面
在该界面用户根据信号特征设置采样频率,MODWPT分解层数以及观测窗口参数—最低频率、最高频率和频率分辨率,即可对信号进行MODWPT、HHT和广义解调分析。
其中,对HHT变换窗口,用户可以通过设置观测本征模态函数的层数,来观测信号每个分量的特征。由于HHT变换中本征模态函数的层数是根据信号特征生成的,故而当输入观测层数大于实际层数时,系统自动弹出提示,而且当输入层数为0时,系统将信号完整的HHT变换结果呈现出来,在此我们感测第一层本征模态函数如图7左下窗口所示。
另外,系统可以通过设置信号广义解调分量序号,提取广义解调后的信号分量进行分析。如图7中,信号采样频率为1 024 Hz,且分解层数5,故而信号被分解成25个分量,每个分量频率的跨度=1 024/2×25=16 Hz。而通过逆广义解调可以清楚的观测到信号的两个分量分别存在于70 Hz和90 Hz附近,即在分量5(64~80 Hz)与分量6(80~96 Hz)中。在此观测分量5得到了满意的结果,如图7右下窗口所示。
4.3 可扩展功能实现
由于该系统是基于MATLAB-GUI开发的,提供了强大的数据处理功能以及良好拓展功能。据此作者设计了如下M文件拓展接口:
[x,y,z] =functionname(data,con,other1,other2)
x,y,z为系统输出;data为系统对象,con为约束条件,other1,other2为预留参数。用户通过设置合理的接口并且通过加载连接算法文件即可实现扩展功能,在使用过程中应能够动态加载新算法,大大提升了系统的可扩展性。
5 结束语
利用MATLAB-GUI编程环境,建立了集信号生成、实时采集、多种信号分析方法和信号管理于一体的信号采集和处理系统,可以便捷地从多种角度对信号进行分析。且随着信号处理方法的不断进步,可以方便地扩展新的功能。具有良好的实用性、交互性和可扩展性。在智能化程度、处理能力、性能价格比和可操作性等方面有着明显的优势。
[1]高新闻.智能仪表软件开发的自动化技术研究[D].上海:上海大学.2007:95 -109.
[2]秦辉,席裕庚.基于Matlab-GUI的预测控制仿真平台设计[J].系统仿真学报,2006,18(10):2278 -2281.
[3]李颀,张建军,李沙沙,等.基于串行通信的MATLAB GUI在压力传感器中的标定软件设计[J].计算机测量与控制,2010,18(7):1680 -1683.
[4]王世香.精通MATLAB接口与编程[M].北京:电子工业出版社,2007.
[5]张晓菲.广义解调在复合时变信号处理中的应用[D].武汉:武汉科技大学,2012:88-95.
Design of Signal Acquisition and Analysis System Based on MATLAB-GUI
ZHANG Shihong,LIU Zhenxing
(School of Information Science and Engineering,Wuhan University of Science and Technology,Wuhan Hubei430081,China)
In manuy cases of test,monitor and fault dignosis,it is in need of using different time frequency processingmethod to signals according to different demands.The present processingmethod of system signal is rather simple,which is difficult tomeet demands in different conditions.Starting from the time frequency signal acquisition and processingmethod,the overall design schemewas introduced of the system of signal acquisition and processing based on the development environment of graphical user interface(GUI)program ofMATLAB -GUI.Furthermore,the system realizingmethod was presented in three aspects of signal acquisition and generation,processing and analysis and datamanagement.The experimental results indicate that the system runs rapidly and stably,aswell as the signal data are collected and analyzed promptly and accurately.The system provides a good interactive and extensibility,which can be used in the actual signal analysis and simulation experiments.
MATLAB-GUI;Serial communication;Signal acquisition and analysis;Scalability
TP274.2
A
1001-3881(2015)21-113-5
10.3969/j.issn.1001 -3881.2015.21.027
2014-09-18
国家自然科学基金资助项目 (61174107)
张世弘 (1990—),男,硕士研究生,研究方向为工业过程控制、电气传动及电机故障诊断。E-mail:595932627@qq.com。