新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的振动信号采集及文件存储系统

基于ARM的振动信号采集及文件存储系统

作者:时间:2016-09-12来源:网络收藏

3.2 算法设计和软件流程实现

LPC1768微控制器内置一个8通道的12位A/D转换器,而该采集系统仅用到单路信号输入,可以实现较高频率的采样,提高了采集数据的精度。软件设计思想是在系统初始化后首先进行模式的判断,分为采集模式和USB通信模式。在采集模式下,正式数据采集存储前先进行数据预采集,对预采集的信号进行采样处理,计算采集到的信号的幅值差,并与满量程3.3 V进行判断是否需要调节和计算出调节值。通过I2C总线来调节AD5245,预调节完成后进行正式,把采集到的数据进行数字滤波并存储到数组中,数组中的数据通过SPI总线存储在中,存储完成后通过功放播放语音信号提示完成。USB模式主要为中数据与PC机的通信。主流程如图5所示。

基于ARM的振动信号采集及文件存储系统

3.2.1 信号幅值检测的算法

在程控放大器的设计中,对被测信号振幅的检测至关重要,它是实现程控放大的关键。以往的程控放大器,多数是根据被测信号的幅值来调节程控放大器的放大倍数,此方法比较适合直流信号的检测。交流信号的幅值是变化的,若根据被测信号的幅值调节程控放大器的增益,需要时刻改变程控放大器的增益,这将浪费CPU的很多资源,影响了A/D转换的速度,限制了被测信号的范围。因器件程序的计算和器件的延时也会给测量结果带来很大的误差,不适合做高频信号的采集。

故本设计采用预采集进行幅值判断,具体方法为开辟定长的数组Buffer用来存储预采集信号,同时注意在设定此Buffer长度的时候,一定要满足该长度至少为待采集信号的一个周期,然后对预采集信号进行处理判断,确定调节值及调节方向。

对预采集信号的处理:首先要计算出数组中的最大值和最小值,由于定义的数组可能较大,故给出一种新的算法代码,以大幅提高其效率(n很大时)。具体做法是:每次成对地处理数据,先将一对元素进行比较,然后把较大者与当前最大值比较,较小者与当前最小者比较,因此每两个元素需要比较3次。具体实现时需考虑n的奇偶,n为奇数,3×(n /2)次;n为偶数,3n/2—2次,因此总的比较次数至多为3×(n-2),大大提高了计算的速度。

根据以上算法可得△V=Vmax-Vmin,故需要调节的放大倍数β约为:

基于ARM的振动信号采集及文件存储系统

这样就计算出了需要调节的AD5245_W的调节值,通过I2C总线通信完成调节,进而进行数据的正式采集。

4 实验结果及分析

通过对系统进行设计和实现,并对系统进行了测试,在采样频率为50 kHz下,对振动信号进行采样分析,预采集信号时间长度为50 ms,正式采集长度为4 00ms,由频带为1~10 kHz的激励源来激振被测物体,同时实验存储数据格式为标准的WAV格式。通过USB接口上传到PC,用上位机频谱分析软件对实验数据原信号和频谱分析进行对比试验,试验现象如图6所示。

基于ARM的振动信号采集及文件存储系统

通过对普通采样系统和本系统采样的原信号对比,可见在相同振动激励下普通系统采集出信号的幅值最大值约为1000,并未填满A/D转换采集模块最大的量程4096而本系统通过对信号的放大,可将采集信号幅值最大提高到4 000左右,在一定程度上提高了的精度。

对普通采样系统和本系统采样信号的频谱分析图进行对比,如图7所示。

基于ARM的振动信号采集及文件存储系统

可见普通采集系统的信号的频谱分析不仅能量值较小,而且易受到其他频率波的干扰,信噪比较低,影响了对信号特征的有效分析,而本采集系统则能较好地解决此类问题。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭