地震监测系统AETA的数据处理设计与实现
2018-01-23金秀如雍珊珊王新安庞瑞涛韩朝相曾敬武
金秀如,雍珊珊,王新安,庞瑞涛,韩朝相,曾敬武
(北京大学深圳研究生院 集成微系统科学工程与应用重点实验室,广东 深圳 518055)
0 引 言
地震前兆信号种类较多,包括地声、电磁辐射、地温、地应变、重力异常、地电阻率、地下化学成分等[1-2],这些前兆信号在很多历史震例中都被仪器或动物或人所观察到[3-4]。但是,至今还没有一种或多种前兆信号被公认为是可信的、确切的地震发生的预测依据。
笔者认为,地震尤其是大地震的孕育和发生应该有显著的多种前兆信号的出现,但是目前尚没有一致的公认的前兆信号,可能是因为:
(1)由于地质结构不同,导致各地观测到的地震异常信号的表现不一致。
(2)由于地震监测仪器的布设没有覆盖地震发生区域,导致获得的地震异常信号不能系统完整地进行普适性分析。
(3)如果再考虑震源深度等因素,将会更加复杂,导致更多的不一致性。
为了解决上述问题,消除地质结构对监测信号的影响,需要加大地震监测仪器的布设密度,建立完善的监测网络,捕捉完整的数据进行分析[5]。为此,提出了一种可以密集布设、成本低、易于安装,无需人员看护,可无线/有线传输数据,可长期放置地下的多分量地震监测系统。
1 多分量地震监测系统AETA
北京大学深圳研究生院集成微系统实验室研制的多分量地震监测系统AETA由地声传感探头[6-7]、电磁传感探头、数据处理终端以及云平台数据存储和分析系统组成,如图1所示。
图1 多分量地震监测系统AETA
地声传感探头和电磁传感探头由传感器、传感器信号调理模块、采集电路和传输电路组成,采用无磁不锈钢的结构设计,埋设于地下2米或者山洞内,数据处理终端放置在室内。通过有线或者无线网络将数据发送到云平台进行存储、分析、显示等[8]。数据处理终端支持双探头连接,支持数据本地处理和存储,支持远程运维和访问。通过对地震频发区域密集布设该系统,实时对该地区的多种前兆信号在地震孕育的过程中的变化以及震前的突变进行监控,对地震孕育机制研究和地震预报有着重要的意义[9]。
多分量地震监测系统AETA的指标定义如下:
(1)地声传感探头:监测频段0.1 Hz~50 kHz,从次声波、声波到部分超声波波段,灵敏度为3LSB/pa@0.1 Hz~50 kHz,18位分辨率,采样率为低频500 Hz,全频150 kHz。
(2)电磁传感探头:监测0.1 Hz~10 kHz,0.1~1 000 nT较宽动态范围的甚低频、超低频电磁波段,灵敏度为>20mV/nT@0.1 Hz~10 kHz,16位分辨率,采样率为低频500 Hz,全频30 kHz。
该系统已经在云南、四川、西藏、河北、北京、广东布设50多套,进行现场试验研究。
2 系统的数据处理分析与设计
2.1 全频原始数据处理的分析
地声传感探头采集信号的频率范围为0.1 Hz~50 kHz,采样率为150 kHz,采样精度为16 bits的数字信号。1分钟数据量是17.58 MB,1个小时数据量为1.03 GB,1天数据量为24.72 GB,1个月数据量(全文1个月均按照30天计算)为741.586 GB,那么1年的数据量(全文1年均按照365天计算)就是9 022.5 GB。要完整地保持全部原始信号,需要的带宽和存储资源近10 TB。
电磁传感探头采集信号的频率范围为0.1 Hz~10 kHz,采样率为30 kHz,数据输出为16 bits的数字信号。1分钟数据量是3.43 MB,1个小时数据量是0.201 GB,1天数据量是4.83 GB,1个月数据量是144.84 GB,那么1年的数据量就是1 762.21 GB。要完整地保持全部原始信号,需要的带宽和存储资源近2 TB。
如果保存地声传感探头和电磁传感探头一年的所有原始数据,需要的带宽和存储资源约12 TB,这给带宽、存储资源带来了巨大的负担,同时也极大地增加了成本。如何降低数据的传输和存储要求,而又不影响数据观测和分析,是必须权衡的问题。
经过现场试验获得的地声和电磁原始数据,对比发现地声数据和电磁数据均值的变化反映了地声和电磁信号的变化均是一个分钟级的变量,如图2所示。
图2 电磁和地声信号的均值波形图
因此,对于地声和电磁全频和低频原始数据按照10分钟进行一次时间窗口范围内的数据截取,全频原始数据每10分钟抽样1秒钟的连续数据发送至云服务器,则每小时电磁和地声全频原始数据量为351.56 KB和1.72 MB,至此需要保存和发送的电磁和地声全频数据的数据量将变成约17.65 GB/年,大大减轻了带宽和存储的压力。
2.2 低频原始数据处理的分析
来自探头的原始数据为覆盖监测频段的全频数据,为了关注低频段数据的变化情况,对全频原始数据进行低频滤波获得小于200 Hz的低频数据,采样率为500 Hz。时间窗口采用每10分钟取连续1分钟的全频原始数据进行低频滤波,然后发送至云服务器。低频原始数据的数据量统计如下:
每10分钟的数据量为58.59 KB,每小时数据量为351.56 KB,每天的数据量为8.24 MB,每月的数据量为247.2 MB,每年的数据量为2.94 GB。由于电磁和地声探头的低频数据的采样率均为500 Hz,所以数据处理终端需要发送至云服务器的低频数据的总量是5.88 GB/年。
针对全频电磁数据、全频地声数据均存在连续型、脉冲型,甚至阶跃型的波动[10-12],为了便于分析人员进行更加直观的异常分析工作,进一步对数据进行特征值提取。特征值包括均值、振铃计数和峰值频率提取(主频率成分提取)。均值可标示信号能量值,振铃计数可探测相对背景值的突发事件发生,峰值频率提取可体现信号在频域的变化。
3 多分量地震监测系统数据处理实现
由于特征值的数据量和运算量不大,对于计算资源、带宽以及存储的需求较小,所以对于特征值的提取既可以在数据处理终端上实现,也可以在云服务器上进行。在项目初期,采用数据处理终端对原始数据进行特征值提取的方式,然后再将特征值和原始数据一起发送到云服务器。在后续的数据观测和分析过程中,发现各个台站的信号背景值不一,在特征值提取时阈值设定不能采用统一的值。所以为了兼顾特征值提取的个性化实现,后续软件版本均采用数据处理终端上传原始数据到云服务器,云服务器对原始数据进行特征值的提取。
多分量地震监测系统的数据流如图3所示。数据处理终端一方面将来自传感探头采集的原始数据按照时间窗口进行连续滤波获得低频数据,并上传到云服务器;另一方面按时间窗口截取一段原始数据作为全频数据上传到云服务器;云服务器将原始数据保存的同时,分别计算低频数据和全频原始数据的特征值,然后保存至数据库。下面扼要说明每一个环节的实现过程。
图3 AETA系统的数据流图
3.1 原始数据处理
传感探头与数据处理终端均按照TCP/IP协议传输数据和命令[13-14],数据按照图4所示的格式进行传输。其中Precode代表2个字节的前导码0xffff,数据包的包头Head包括2个字节探头ID号,1个字节数据包序列号SeqNo,MSG_Type代表数据的类型,MSG_Len代表数据的长度,SumCheck代表对头部数据进行和校验值,MSG代表数据,CRC16_Check代表对数据进行计算产生的16位循环冗余校验码。
数据处理终端首先对来自探头的数据进行解包分析,根据图4的数据格式解包,获得最原始的数据信息。数据处理终端第二步则是对来自探头的全频数据进行低通滤波[15],获得0.1~200 Hz的低频数据,该数据的采样率为500 Hz,数据精度仍然为16位。低通滤波器的设计采用两级滤波,对于地声信号,第一级滤波首先将150 kHz采样的信号进行3 kHz的低通滤波,然后降采样至10 kHz,第二级滤波将10 kHz的采样信号进行200 Hz的低通滤波,然后降采样至500 Hz;同理电磁辐射信号,第一级滤波首先将30 kHz的采样信号进行1 kHz的低通滤波,然后降采样至3 kHz,第二级滤波首先将3 kHz的采样信号进行200 Hz的低通滤波,然后降采样至500 Hz。
图4 传感探头与数据处理终端进行数据通信的数据格式
具体如表1所示。
表1 滤波参数
通过借助Matlab信号处理工具箱里专用的滤波器设计分析工具FDAtool来产生设计滤波器并获得窗系数,具体步骤如下:
(1)在命令窗口键入FDAtool命令,启动滤波器设计分析器,调出FDAtool界面;
(2)在Filter Type选项中选Lowpass,在Design Method中选择FIR滤波器,接着在FIR中选择Window(窗函数)法;
(3)在Filter Order中选择Specify Order(指定阶数),输入数值为64;在Opitions框中选中“Scale Passband”;在窗类型(Window)下拉框选择“Taylor”;
(4)在Frenquency Specification选项中,在fs(采样频率)、fc(通带截止频率)中分别键入相应的频率值。
根据上述步骤得出窗系数,然后基于C++语言在Linux系统下实现滤波算法,并将算法实现封装成通用的类[16-17]。
考虑到不同地区的网络条件不同,部分地区的传输方式需采用无线传输。该方式受到流量成本的限制,所以根据各地运营商的流量资费情况,以2 GB/月的套餐作为基本标准。基于第二节的分析,原始数据的发送和保存采用了时间窗口抽取片段连续数据的方法,每个月数据处理终端发送至云服务器的总数据量为1.96 GB,低于流量套餐标准。因此,对于全频原始数据,数据处理终端每10分钟上传1秒钟的数据到云服务器,低频原始数据则按照每10分钟取1分钟的低频数据,然后上传至云服务器。
数据处理终端在网络通畅时,截取后的全频和低频原始数据将按照数据处理终端与云服务器的通信协议将数据打包发送至云端,数据格式如表2所示。当网络中断时,需要将数据保存在本地,当网络恢复则会将本地存储中的数据补传至服务器,这里采用sd卡来存储网络异常期间的数据。
表2 终端与服务器通信的数据格式
帧头消息帧尾前导码长度版本帧类型帧号终端号帧头校验类型消息内容帧校验
包由帧头、消息以及帧尾组成。帧头主要是该包的描述信息,其中前导码为两个字节的0xffff,长度代表的是整个包的字节长度,占4个字节,版本是该数据格式的版本,占一个字节,帧类型包括request帧、response帧、post帧以及ack帧,终端号是数据处理终端的ID;消息由消息类型和消息内容组成,消息类型包括登录认证消息、时间同步消息、数据上传消息等多种类型,消息内容就是向服务器发送的详细内容;帧尾主要是给消息做16位循环冗余校验的校验码,保证消息传输的正确性。
3.2 数据的特征提取
云端数据的处理包括均值、振铃计数和峰值频率的提取,具体算法为:
(1)全频数据的均值计算是取10分钟周期内的1秒钟的数据对应的绝对值求平均,而低频数据则是取10分钟周期内1分钟内的数据对应的绝对值求平均,主要是反映信号振幅的强弱;
(2)振铃计数的计算是先设定一个阈值,然后再逐个数据点遍历,当相邻两个数据点满足前一个数据小于阈值后一个数据大于阈值,则振铃计数就加1,振铃计数反映了相对背景值的突发事件的发生;
(3)峰值频率的提取首先利用蝶形算法对信号作快速傅里叶变换[18],得到信号的频谱,再通过比较得出最大值,此处最大值的位置P即为频谱峰值频率点;再根据f=1/N*Fs*P(N为快速傅里叶变换点数,Fs为采样频率),可得出频谱峰值频率的实际值,而P所对应的幅值即为频谱峰值幅值。这里全频和低频信号都采用8 192个点做FFT,所以频谱的分辨率为Fs/N,即全频信号为150 kHz/4 096=36.62 Hz,低频信号的频谱分辨率为500 Hz/4 096=0.12 Hz。
3.3 多分量地震监测系统数据流正确性测试
为了验证该系统数据流的传输以及数据处理的正确性,搭建测试平台。其中模拟探头利用Visual C++基于MFC框架编写的模拟产生对应采样率下某个频率的宽频带的正弦波数据的软件[19]。通过在模拟探头中设置对应的探头ID号、传感器编号、信号频率、信号的最大值和最小值、一个数据包的点数以及发送的时间间隔,产生近似实际传感器监测频段范围的信号,通过设置的参数理论上计算的结果和经过整个测试通路写入数据库的结果进行比较来判断该系统的数据处理和传输的正确性。测试覆盖了地声和电磁原始数据的所有频段,不同的幅值范围,确保实现的正确性。表3给出了模拟电磁信号几组测试数据以及测试结果。
表3 部分测试结果
通过表3可以看出,由于分辨率的影响,在误差允许的范围内,实际结果与理论结果相符,证明数据处理终端和服务器数据处理的正确性。
4 系统的远程监控
远程监控和维护是通过服务器和数据处理终端的交互来完成的[20]。数据处理终端除了对探头的数据做相应的处理之外,还对探头的运行状态、终端的运行状态进行监控,并且支持远程的系统维护。具体包括:
(1)传感探头应用程序和终端应用程序的版本升级。版本升级是系统运行过程中必不可少的,所以一个可靠的系统必须要能够支持远程的版本升级,AETA系统的升级主要涉及探头应用程序的升级、数据处理终端应用程序的升级以及服务器应用程序的升级,由于服务器的升级在云端可以直接进行,在这里就不加以介绍。在数据处理终端运行了在线升级程序,该程序通过ftp协议从服务器下载应用程序文件到指定目录下,通过升级程序可以下载任何需要升级的应用程序文件到运行目录。同理探头中也同样运行了在线升级程序,通过ftp协议从数据处理终端下载探头应用程序。由于通过ftp协议可以下载需要的任何文件,运维人员不仅可以升级应用程序同样可以升级应用程序相应的配置文件[21]。如果只是对软件的局部功能进行改进或者对存在的漏洞和缺陷进行修改,可以使用高质量的软件补丁,而不是对整个程序代码进行修改然后编译生成二进制文件对旧文件进行覆盖,重新启动运行[22]。
(2)传感探头和数据处理终端的远程重启。通过服务器往终端发送命令,实现设备的远程重启。数据处理终端在与云服务器连接之后会每隔固定的时间向服务器查询是否有需要执行的命令,如果运维人员想重启数据处理终端,只要在数据库中填写相应的重启命令然后加载到服务器上,数据处理终端就会获得此条需要执行的命令并执行。同理如果需要给某个探头重启,数据处理终端得到待执行的命令后会发送给指定的探头,探头再去解析该命令并完成该命令执行。
(3)传感探头在线情况监控。相对于探头来说,数据处理终端是一个并发的服务器,每当有探头连接到终端,终端就会产生一条该探头的连接日志并立刻将日志发送到云服务器,云服务器会实时将接收到的日志信息保存至数据库。同时探头连接到终端后会向终端发送自己的状态信息,终端会将该状态信息结合终端采样的探头工作电压和电流进行整理然后发送到服务器,通过服务器就可以实时查看该探头的运行状态。同理如果某个探头因为某种原因跟终端断开了连接,终端会上报一条该探头掉线的日志信息,终端就不会再向服务器上传该探头的状态信息。通过日志和探头状态运维人员可以及时得知探头是否运行正常。
(4)同理,通过状态和日志机制,终端也可以实时向服务器上传自己的工作电压电流等运行状态信息以及运行过程中产生的重要运行日志。由于状态、日志以及命令机制是可扩展的,因此运维人员可以在服务器上查看到足够的系统信息,有助于运维人员对故障的提前预防以及出现故障后及时查找原因。有了以上机制,运维人员可以对AETA系统进行远程的监控和维护。
为了让系统的监控和维护更加便捷化、信息化,平台化,保证系统的安全稳定运行,正着手建设运维管理系统[23]。
5 结束语
介绍了多分量地震监测系统AETA的数据处理设计与实现,综合考虑传输带宽、存储空间的限制,以及远程监控和运维。在国家地震局的领导下,该系统已经在云南、四川、西藏、河北、北京、广东布设50多套,进行现场试验研究,目前运行良好并且已经积累了一定的数据,正在与地震相关专家一起进行数据的进一步分析工作。
[1] 郑治真.我国前兆地声的观测与研究[J].地球物理学报,1994,37:251-260.
[2] 赵永红,王 航,杨家英,等.地震预测方法II:评述[J].地球物理学进展,2014(2):630-637.
[3] 潘震宇,卓 群,刘仲达,等.水氡浓度和环境参数的分层神经网络研究[J].地震地磁观测与研究,2012,33(3):110-114.
[4] 褚庆忠,武 泽,邵先杰,等.地震重力异常形成机理及其在地震预报中的作用[J].地震工程学报,2014,36(1):201-206.
[5] SUZUKI M,SARUWATARI S,KURATA N,et al.A high-density earthquake monitoring system using wireless sensor networks[C]//Proceedings of the 5th international conference on embedded networked sensor systems.[s.l.]:ACM,2007:373-374.
[6] 林 科,王新安,张 兴,等.一种适用于大地震临震预测的地声监测系统[J].华南地震,2013,33(4):54-62.
[7] 曾敬武,雍珊珊,郑文先,等.适用于大地震临震预测的地声传感单元[J].计算机技术与发展,2015,25(12):133-137.
[8] 范素娟,田军锋.基于Hadoop的云计算平台研究与实现[J].计算机技术与发展,2016,26(7):127-132.
[9] FLORIDO E,MARTNEZ-LVAREZ F,MORALES-ESTEBAN A,et al.Detecting precursory patterns to enhance earthquake prediction in Chile[J].Computers & Geosciences,2015,76:112-120.
[10] 丁 丹,倪四道,田晓峰,等.地震相关的声音现象研究进展[J].华南地震,2010,30(2):46-53.
[11] 朱 星.岩石破裂次声探测技术与信号特征研究[D].成都:成都理工大学,2014.
[12] 钱书清,仁克新,吕 智.伴随岩石破裂的VLF,MF,HF和VHF电磁辐射特性的实验研究[J].地震学报,1996,18(3):346-351.
[13] 韩朝相,雍珊珊,郑文先,等.基于FPGA的大地震前兆传感信号采集模块[J].计算机技术与发展,2015,25(12):1-5.
[14] LAKSHMAN T V,MADHOW U.The performance of TCP/IP for networks with high bandwidth-delay products and random loss[J].IEEE/ACM Transactions on Networking,1997,5(3):336-350.
[15] LEE E A,MESSERSCHMITT D G.Static scheduling of synchronous data flow programs for digital signal processing[J].IEEE Transactions on Computers,1987,36(1):24-35.
[16] 郑 莉,董 渊,傅仕星.C++语言程序设计[M].北京:清华大学出版社,1999.
[17] 陈闳中.Linux在嵌入式操作系统中的应用[J].同济大学学报:自然科学版,2001,29(5):564-566.
[18] COCHRAN W T,COOLEY J W,FAVIN DL,et al.What is the fast Fourier transform?[J].Proceedings of the IEEE,1967,55(10):1664-1674.
[19] 侯俊杰.深入浅出MFC:使用Visual C++ 5.0 & MFC 4.2[M].武汉:华中科技大学出版社,2001.
[20] BROWN S J.Networked system for interactive communication and remote monitoring of individuals:U.S.,5 997 476[P].1999-12-07.
[21] 赵卫绩,刘井莲.基于FTP协议的客户端自动更新程序的设计与实现[J].科学技术与工程,2010,10(34):8591-8593.
[22] 姜 文,刘立康.应用软件维护中的补丁开发与管理[J].计算机技术与发展,2015,25(11):11-16.
[23] 万天翼.基于ITIL的运维管理系统的设计[J].数字技术与应用,2010(7):117-119.