基于VC++的动态信号分析系统的设计方案

最新更新时间:2014-03-10来源: 21IC关键字:VC++  动态信号 手机看文章 扫描二维码
随时随地手机看文章

随着科技水平的不断提高,机械工程振动测试技术也随之进入了一个崭新的阶段。动态信号分析作为一门以捕捉和处理各种动态信息为目的的综合技术在当代科学技术中占有相当重要的地位。近年来,多通道、高性能动态信号分析系统推出并已广泛应用于各个领域。并且随着使用者对动态信号的分析需求越来越多样化,使得柔性化设计成为动态信号分析系统研制的主流方向。国外的动态信号仪器采样精度高、功能强大,但产品的价格相对很高。而目前国内的测试分析系统与国外的相比,还有一定的差距。因此,研制拥有自主知识产权的实时的动态信号分析系统有着非常现实的科学意义和工程实用价值。

基于此,本文以Windows XP系统为开发平台,采用面向对象的编程技术和VC++为开发工具,研制一套基于VC++的动态信号分析系统。软件开发采用模块化的设计细想,把各种功能对象化并进行封装,提高了各模块的可移植性和重复使用性。系统可实现对单个和多个信号的实时同步采集,并能对信号进行分析处理,还能实现数据分段存储和波形回放查看。

1 系统总体设计

系统总体设计的好坏直接关系到整个测试分析任务的成败以及完成质量的好坏。从硬件上看,系统总体上由计算机、USB 接口、数据采集硬件、传感器等组成。

从软件上看,该系统包括固件程序、驱动程序及应用软件。

固件程序是采集卡商家以写好烧进采集卡硬件的程序,负责采集卡的采集工作。

驱动程序和应用软件则装在计算机中,驱动程序是遵循USB协议编写的负责应用软件与采集卡正常通信的程序。

应用软件是人机交互接口,是实现信号分析处理各项功能的关键部分。

软件系统设计与开发是本项目开发的重点和难点。利用VC++为开发平台,进行系统软件设计。本项目的软件系统设计主要包括:软件系统总体框架设计、数据采集模块设计、信号分析与处理模块设计、数据存储模块设计等。

动态信号分析系统总体设计框图如图1所示。

2 系统统一架构

软件设计以Windows XP 系统为开发平台,采用面向对象的编程技术和VC++ 6.0为开发工具实现。软件开发采用模块化的设计细想,把各种功能对象化并进行封装,提高了各模块的可移植性和重复使用性。采用统一的软件体系和总体模块组成结构,即每个模块都包含程序控制、参数设置、数据分析和数据显示四个子模块。

其中参数设置模块、数据分析模块和数据显示模块为功能模块,程序控制模块是系统的中枢部分,它负责协调各个模块有效的配合和工作,接受操作者给出的各种指令,调用相应的分析模块算法,并把分析结果通过数据可视化接口显示给用户。子模块的菜单、工具条及快捷键是程序控制模块的外在表现,并通过这些外在的表现与操作者交互,转化为各个功能模块能够理解的内部指令,统一调用功能模块,实现用户预期的指令目标。

数据分析模块采用动态链接库技术,集成和封装了系统所需的算法,并提供接口供程序控制模块调用,是每个子模块的核心部分。

数据显示模块负责将数据处理的结果以丰富的方式呈现给用户,供用户对处理结果进行评判或进一步的处理。

四个子模块的组成关系如图2所示。

3 系统的软件设计

软件系统设计与开发是整个分析系统开发的重点和难点。采用VC++为开发平台,进行系统软件设计。

软件系统设计主要包括:软件系统总体架构设计、数据采集模块设计、信号分析与处理模块设计、数据存储模块设计等。

软件系统总体架构设计见第2部分,不再赘述。数据采集模块、数据分析与处理模块和数据存储模块。三个模块之间,相互联系,其功能分别如下:

数据采集模块:采集卡参数设置、采集设备的启停控制和复位,实现数据采集功能(连续采集或单次采集);数据分析和处理模块:通过从数据采集模块或存储模块的获得数据,结合分析参数的设置,实现信号实时波形显示、频谱分析、相关分析、包络谱分析、统计特征分析等;数据存储模块:实现数据的存储和读取,并回放显示、分析处理的功能。

3.1 系统界面设计

程序设计中,选用单文档结构来编制应用程序。

基本布局设计如下:窗口顶部为菜单工具条区域,左下部分为数据显示区域,右下部为数据信息浏览和控制区域。系统主界面如图3所示。

首先将客户区分割为1行2列两个部分:左侧为电压值数字显示窗口,关联的类为CADDigitView(派生自CScrollView);右侧为图形显示窗口,关联的类为CAD-WaveView(派生自CScrollView)。参数设置及分析控制采用2个对话栏,派生自CDialogBar,用户可以通过其进行采集卡参数设置和信号采集、分析控制。由于程序功能较为简单,故在界面上几乎就可以进行全部的操作,使用上极其方便。

3.2 主要处理算法

3.2.1 FFT

频谱分析是数字信号处理技术的一个非常重要的手段,以便能清楚的看到某波形的频谱分布情况.而要对一个输入信号源作频谱分析,将其由时域信号转变为频域信号,就必然要用到傅里叶分析。快速傅里叶变换(Fast Fourier Transform,FFT)的迅速发展,使数字频谱分析取得了突破性的进展。FFT的算法种类较多,而且选择使用的方式也各不一样,本文选用时间抽选奇偶分解快速离散傅里叶变换。

基2型FFT算法的步骤如下:

(1)将原始序列按下标的奇、偶性质不断分解,一直由一个N 项序列分解为N 个单项重排序列;

(2)计算N 个单项序列的DFT.此时,N = 1,而0  n  N - 1,所以,n = k = 0,于是:

即单项序列的DFT就是其自身,这样就求得了N 个单项重排序列的DFT;

(3)对N 个单项重排子序列的DFT两两合成,最终得到一个N 项序列的DFT,这就是原始序列的DFT.

根据上面的指导思想,就可编制FFT计算程序。

在进行FFT时,按照“蝴蝶图”所描述的计算方法对输入的时域序列按奇偶分解后的序列排序而输出的频域序列仍是按自然顺序排列的。此方法无须中间存储单元,但需要倒一次序.

下面代码用于完成对原始采样时域序列的快速傅里叶变换,A,M 分别表示指向原始采样数据数组的指针和序列长度的2的整数次幂:

1 kHz 矩形波频谱图,包括实谱、虚谱、幅值谱、相位谱如图4所示。

3.2.2 相关性分析

在信号分析中,相关性是一个非常重要的概念,它表达了两个信号(或一个信号不同时刻)之间的线性相关程度。

相关函数及其离散化数据计算公式为:

式中:N 为采样点数;Δt 为采样间隔;n 为时间序列;r为时延序列(时间位移数)。

自相关分析算法:

(1)标准方法

根据式(3)直接计算采样数据之间的平均乘积,然后以此作为自相关函数估计。本次即采用该方法设计算法;

(2)间接方法

该方法得到的不是通常的自相关函数,是“循环”相关函数。该方法通过在原数据补0后经FFT,计算其自功率谱后做IFFT,取前半部分而得到其自相关函数。

互相关函数及其离散化数据计算公式为:

互相关分析算法:

(1)标准方法

根据式(5)直接计算采样数据之间的平均乘积,然后以此作为互相关函数估计。本次即采用该方法设计算法;

(2)间接方法

该方法同FFT,计算其互功率谱后做IFFT,取前半部分而得到其互相关函数。

两个不同频率的正弦波信号的相关信号如图5 所示,因为频率不同,所以不相关,其波形接近值恒为零的直线。

3.2.3 包络线分析

信号的包络通常有3种提取方法:Hilbert幅值解调法、检波-滤波法和高通绝对值解调法。

Hilbert法解调出的包络是对信号绝对值的包络,其解调幅值代表真实包络,且在ARM系统中,Hilbert变换可以方便地借助FFT来实现,所以,本文采用Hilbert变换法提取信号的包络。

具体的步骤如下:

(1)对x(t) 做FFT,得X(k),k = 0,1,2,-,N - 1,注意k = N 2,-,N - 1 对应负频率;

(2)Z(k) 的取值:

(3)对Z(k) 做逆FFT,即得到x(n) 的解析信号z(n) ;

(4)| z(n)|即为 x(n)的包络。

通过以上分析编程实现了对信号的包络解调。

图6 所示为一调制波波形,对其进行包络分析,结果如图7所示。

4 闪屏现象及其解决方案

VC 中基于MFC 编写的程序中,窗口的移动缩放、鼠标点击等操作都会引起窗口重绘.本应用程序中使用绘图方式输出采集数据、信号波形图、频谱图等,绘制比较复杂,也比较消耗CPU时间,因此频繁的重绘会引起画面闪烁,影响信号动态显示分析效果,为此这里采用了双缓存技术,解决闪屏问题。

双缓存技术就是先在内存中准备一块区域,把要显示的位图都加载到内存中,然后调用BitBlt函数,把内存设备复制到显示设备上,这个过程比较简单,就是将图面的每个像素一次复制到输出设备,不需消耗太多的时间,这样就可以防止闪屏,改善显示效果。

双缓冲绘图主要代码如下:

5 系统测试分析

为验证系统的正确性和可靠性,产生如下信号:

取分析长度(时间块)T = 10 s,从式中可以看出有4种频率分量,分别为1 Hz、6 Hz、9 Hz、20 Hz,取采样间隔为0.01 s,绘制其时域波形图及频谱图分别如图8和图9所示。

通过FFT后的数据,发现频谱幅值在各频率点处的大小(图中未标注)分别为500、1 000、1 000、500,经过计算,符合时域中信号幅值分别为1、2、2、1,并且通过FFT,成功分离出了原始信号中4 种频率分量:1 Hz、6 Hz、9 Hz、20 Hz,这也验证了FFT 算法的频率分辨能力。

6 结论

针对目前动态信号测试分析系统的现状,以Windows XP系统为开发平台,采用面向对象的编程技术和VC++为开发工具,本文提出了一套基于VC++的动态信号分析系统的设计方案。方案可实现对单个和多个信号的实时同步采集,并能够对信号进行分析处理,还能实现数据的分段存储和波形的回放查看。通过实验测试,所研制的系统可以满足测试中的各种分析要求,验证了本方案的可靠性和实用性。

关键字:VC++  动态信号 编辑:探路者 引用地址:基于VC++的动态信号分析系统的设计方案

上一篇:基于 C++ builder 的高采样率动态信号实时绘图研究
下一篇:基于蓝牙技术的北斗终端通信模块的设计

推荐阅读最新更新时间:2023-10-12 22:36

TMS320VC5402和PC机的UART研究与设计
1 引言 TMS320VC5402以其低成本、低功耗、资源多的特点在通信、控制领域得到了广泛的应用。片上集成了最大192kB存储空间(64kB RAM、64kB ROM、64kB I/O),具有时分多路串口TMD,2个缓冲串口BSP、8位并行主机接口HPI、可编程等待状态发生器等,完全可以满足数据处理及控制要求。基于 5402构建的应用系统中必不可少的是各种数据通信接口的设计。与并口相比,串行接口的特点是减少器件引脚数目,节省了硬件系统的体积,降低了接口设计的复杂性。实际应用中,各系统之间需要实现异步串行数据传输和通信,而DSP5402具有同步串口,与标准的异步串行接口不同,本文针对这种应用,设计实现了DSP5402和PC
[嵌入式]
STM32F105VC 低功耗
STOP模式: static void RCC_Close(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, DISABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD |RCC_APB2Periph_GPIOE |RCC_APB2Periph_ADC1 |RCC_APB2Periph_AFIO |RCC_APB2Periph_ADC2 |RCC_APB2Periph_SPI1, DISABLE ); R
[单片机]
基于TMS320VC33-150的声探测系统设计
引言 被动声源探测定位技术是一种利用声学传声器阵列和电子装置接收运动目标的辐射噪声,以确定目标所处位置的技术。 本文正是基于声探测技术原理和成熟的微电子技术, 采用TI公司的32位浮点DSP芯片TMS320VC33-150来实现声源目标的探测定位算法,并辅之以ADC、CPLD、单片机等器件来实现声源信号的采集、系统逻辑控制以及通信功能。对于数字电路的逻辑控制功能,本文选用了Altera公司的CPLD芯片EPM7128AETC100-10来实现。该芯片功耗低、资源丰富、内部延时固定,有助于时序逻辑电路的设计。本系统主要分为两部分:声探测系统数字电路的硬件实现和DSP软件设计。系统现已完成调试,运行稳定,探测效果较好。    系统功
[应用]
VC++用ActiveX控件与单片机串行通信
在单片机应用系统中,经常需要通过RS-232串行口与微机进行通信。目前在各种操作系统中,Microsoft的Windows较为常见,而且大多为Windows95/98等32位平台。以往在Windows平台上的串行通信多使用其提供的API函数来实现,这种方法使用起来需要许多底层设置,因而较为繁琐,并且难以理解。Microsoft推出的ActiveX技术提供了另外一种实现串行通信的方法。这种方法不仅相对较为简单,而且非常实用。尤其是Visual C++这种可视化面向对象的编程环境中,可以真正把串口看作一个对象,编程时只需简单的设置,理解起来也很容易。下面详细讨论Microsoft提供的串行通信ActiveX控件的使用方法。该控件的相
[单片机]
IOTECH可直接测量温度的动态信号分析仪
           近日,IOTECH公司推出基于USB的动态信号分析仪(DSA)655u,该分析仪可报告许多振动分析和监测应用中的关键部分,具有温度和电压两种输入通道。655u是600系列中首款可直接测定温度的分析仪,具有5个温度输入通道和10个电压或直接集成的电子压电输入通道。该单元可与大部分热电偶型和RTD兼容,并提供开放的热电偶检测。输入电压范围±40V,支持多种模拟输入类型,包括加速度计、速度计、接近型传感器、麦克风、流速计或其他电压输入应用。通过前面板上的10个BNC连接器可输入模拟信号,板上的螺钉端子连接器可输入温度信号,并具有8个数字I/O通道。
[测试测量]
MS320VC5402 HPI接口与PCI总线接口设计
数字信号处理器DSP(Digital Signal Processor)是一种特别适合于进行数字信号处理的微处理器,凭借其运算速度快、功能强等特点,在各个领域的应用越来越广泛。但在很多场合下需要将DSP的各种外围设备同计算机连接,以实现数据传输。通常情况下可利用DSP的串口或I/O口来实现,但无论是接串口还是接I/O口都要占用DSP的硬件资源,同时数据的传输速度有时也不能满足系统的要求。为了解决这一问题,将DSP的HPI口通过PCl2040芯片桥接到PCI总线。本文以 TMS320VC5402 (简称VC5402)为例,介绍DSP的HPI口及其与PCl2040的接口设计。   1 HPI接口功能及特点   主机接口
[模拟电子]
全球VC纷纷入局 人工智能将如何引爆医疗行业
美国宾夕法尼亚州中部地区西邻匹兹堡、东邻费城,相比于宾州其它较大的城市,中部地区历来不为企业家和投资者所重视。但这里确实有一些经济优势不应忽视,宾州的许多制造业创企都位于此处,这里让追求自动化工厂流程的创企有机会接触潜在客户。该地区最大的城市之一兰开斯特是当地综合医院(Lancaster General Health)的所在地。该院是一家拥有研究能力的大型医院,附近的哈里斯堡是该州首府,健康保险公司Capital Blue Cross也位于此处。 总部位于兰开斯特的早期风投基金Aspire Ventures专注于投资和孵化医疗科技公司,特别关注结合人工智能的解决方案。事实证明,Aspire Ventures和上述医院以及寿险公司的
[机器人]
TMS320VC54x处理器McBSP接口的设计和实现
摘 要:以低速语音编解码系统为例,介绍了TMS320VC54x数字信号处理器的多通道缓冲串口的软硬件设计,给出了具体的设计思想和实现方法。 关键词:数字信号处理;语音编解码;接口;TMS320VC54x   模数接口是数字信号处理(DSP)系统中一个重要的组成部分,其设计和实现直接影响到信号处理的质量,许多A/D、D/A转换芯片都采用并行的数字接口,与DSP接口时需要设计相应的译码电路。TMS320VC54x系列芯片配备了多通道带缓冲能力的串行口(MultichannelBuffered SerialPort,McBSP),为设计模数接口提供了极大的便利。   McBSP具有双向的自动缓冲单元,缓冲单元有自己的循环寻址寄存器
[应用]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved