探地雷达(Ground Penetrating Radar简称GPR)又称地质雷达,透地雷达,是用频率介于10^6-10^9Hz的无线电波来确定地下介质分布的一种方法。
探地雷达方法是通过发射天线向地下发射高频电磁波,通过接收天线接收反射回地面的电磁波,电磁波在地下介质中传播时遇到存在电性差异的界面时发生反射,根据接收到电磁波的波形、振幅强度和时间的变化特征推断地下介质的空间位置、结构、形态和埋藏深度。
探地雷达的用途:US RADAR探地雷达可用于检测各种材料,如岩石、泥土、砾石,以及人造材料如混凝土、砖、沥青等的组成。雷达可确定金属或非金属管道、下水道、缆线、缆线管道、孔洞、基础层、混凝土中的钢筋及其它地下埋件的位置。它还可检测不同岩层的深度和厚度,并常用于地面作业开工前对地面作一个广泛的调查。目前,已经有许多国外的探底雷达产品,但是其价格昂贵,且带有一定局限性。因此鉴于探地雷达具有广泛的用途对其进行了开发研制,目前已研制成功。由于篇幅限制,文中在此重点介绍数据采集部分和显示软件。
1 数据采集
在探地雷达数据采集试验中,所使用的是HY-6070 C通用数据采集控制板,它具有ISA总线接口能,进行模拟电压和数字电压之间的转换,在计算机的控制下构成信号采集、监视输入系统和模拟量电压信号、数字电压信号输入系统。HY-6070 C板上安装有12 bit分辨率的A/D转换器,其通过率为40 kHz。可以为用户提供18路双端输入和16路单端输入两种模式为。模拟电压可以设置输入范围,可以是0~5 V,土2.5 V,±5 V。此板还提供了1路12 bit D/A转换模拟电压输出通道。在HY-6070 C板上还装有可编程定时/计数器82C54,其中82C54的定时/计数器1和定时/计数器2级连,用以生成定时启动A/D转换的信号。定时/计数器O单独引出,供用户使用。HY-6070 C板支持软件触发、定时触发和外触发3种A/D电路启动转换工作方式。支持软件查询和中断申请数据传送工作方式。HY-6070 c板还为用户提供了16路数字输入/输出通道信号,接口电平符合TTL电平标准。
文中利用软件编程启动HY-6070 C板的A/D转换功能。在软件触发方式下,每次启动A/D转换前由软件切换通道,然后发送A/D转换启动命令来触发A/D转换。当A/D转换完成后,可通过软件查询A/D完成位,当程序测到A/D完成位为“1”时,即可读取A/D转换的12 bit数据。
A/D采样程序步骤如下:
(1)设置板上的模拟信号输入通道(共16个通道,编号为0~15);
(2)设置A/D触发方式,这里设置为软件触发;
(3)开始触发A/D转换;
(4)等待并查询A/D转换完成标志;
(5)对接收到的数据进行存储。
在HY-6070 c数据采集卡内预先分配了各种地址,程序通过访问这些地址并对其进行相应的读写操作来控制A/D采样的实现。在实际应用中,可以直接利用由C语言编制的应用程序来控制采集卡进行A/D转换,只需调用头文件为dos.h中的outport(address,data)(address为地址值,data为要向该地址输出的数据)与inportb(ADaddress)(ADadress是A/D转换数据所存储的地址)两个函数即可,但是应用程序的使用环境必须是DOS操作系统。这给应用程序的使用者带来了诸多不便。因此为了让用户方便使用,作者制作了基于Windows操作系统的显示软件。由于 Windows操作系统不能像DOS那样直接读取采集卡的板内地址,因此要想面向数据采集卡编程,首先需要安装数据采集卡的驱动程序,既让Windows 操作系统能够识别到此硬件。在接下来的编程中还必须使用到数据采集卡自带的两个文件,HKIoMFC.H和HKIoMFC.lib,在这两个文件中定义了对采集卡进行控制的变量与函数体,编程时即可直接调用。
2 显示软件
利用Visual C++6.0在Windows操作系统下开发应用程序主要是使用MFC(Microsoft Fbundation Class)类库。MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。使用MFC类库的优点:首先,MFC提供了一个标准化的结构,这样开发人员不必从头设计创建和管理一个标准Windows 应用程序所需的程序,而是从一个比较高的起点编程,可节省大量的时间;其次,它提供了大量的代码,指导用户编程时实现某些技术和功能。MFC库充分利用了 Microsoft开发人员多年开发Windows程序的经验,并可以将这些经验融入到自己开发的应用程序中去。
Visual C++6.0集成环境对MFC提供了多种界面友好的辅助工具,用AppWizard可以生成新的类,可以对类成员进行维护。MFC提供了一种机制,把 Windows的消息与类的某个成员直接联系起来,减少程序员中间的处理过程。比如在菜单中加了一个命令项,指定其命令ID,然后用 ClassWizard可以指定此菜单ID与类的成员函数相联系,所需要的编程就是实现该成员函数的代码,其他代码均由MFC和Class-Wizard 负责处理。这种机制提高了程序开发效率,而且Visual C++提供了MFC的所有源代码,这些源代码不仅可供参考,还为应用程序的调试提供了方便,源代码的开放性也是MFC获得成功的一个主要原因。
作者所设计的显示软件是基于单文档(SDI)框架结构的应用程序,其外观如图1所示。
由图可见,单文档的外观与常见的Windows应用程序相似,因此操作方便,只需要选择各个菜单执行相应的功能即可。
探测波形实时显示功能的实现需要软件与前面提到的HY-6070 C数据采集卡配合实现。在厂家提供的驱动函数库内定义了一个CHKIoCtrl类,在编程时只需声明一个此类的对象mHKDevice即可,然后就可调用驱动函数进行相应的操作。图2是波形的动态显示效果。
当得知地下有物体存在后,人们希望了解这个物体到底是什么,而利用上述波形的动态显示方法就难以给出结论。因此还需要通过这些回波产生一幅可视性强的图像,这通常建立在数字图像处理的基础上。通常称图2所示的波形为一维图像,如果能将其转化为二维图像,可视性会大为改善。这里用“波形堆积”一词来形容将一维图形转化为二维图形的过程。图3所示240个波形直接堆积的结果,这里采用灰度图像。
由图3可见,图像出现了灰度不均匀显示的效果,与图2单纯的波形相比,其可视性得到增强。这些不均匀的变化特征反映出目标的某些特性。
3 结束语
通过应用通用HY-6070 C完成了对探地雷达信号的数据采集,并且应用文中所编制的显示软件,对实时波形和堆积图形进行了正确显示,与所研制的探地雷达主机联调也得以成功,完够正确使用。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。