摘 要: 结合GIS技术,利用软件算法完成对数传电台信号的中频及基带处理,通过解析电台地址码完成对数传电台频点使用情况的监测,分析电台经纬度信息、统计电台数量,并在电子地图上实时显示已定位电台位置。
关键词: 数传电台;监测;经纬度;GIS
近年来随着我国无线电业务发展,频率资源使用极为紧张。为有效利用无线电资源,通过对无线数传电台的使用情况进行监测分析,本文提出一种基于软件无线电和GIS系统的数传电台监测系统设计,利用Visual C++6.0与MapX在Windows XP操作系统进行软件开发,结合硬件实现对数传电台占用频率、使用数量的实时监测,并建立组网数传电台数据库。
1 系统总体结构
数传电台监测系统在Visual C++6.0开发环境下利用MFC进行程序开发,在此环境中编写事件代码对硬件进行控制,并对MapInfo公司的MapX工具进行二次开发,提供了良好的人机交互界面。
本数传电台监测系统主要由7个模块组成:数据收集模块、数据处理模块、数据库交互模块、解码模块、地址码分析模块、电台定位模块及电子地图绘图模块,其系统框图如图1所示。首先通过数据采集模块把设备上取到的数据存入系统缓存,对数据进行二次处理。然后把经纬度、信号强度等数据存入数据库,由数据库交互模块对其进行管理。而电压数据由解码模块进行解析,解析后得到的码元信息通过地址码分析模块得到电台地址码。通过电台定位模块对其分析后,将得到的电台经纬度数据交付绘图模块,从而在电子地图上直观地显示电台位置,同时电子地图还可显示监测系统所在位置。
2 硬件设计
我国数传电台工作频率主要分布在230 MHz(223.025 MHz~235.000 MHz)频段,采用的调制方式多为MSK方式。考虑到数传电台无线信号的高频、随机特点,拟驱车采集分析信号。本系统采用工控计算机对各硬件进行控制,由无线接收机[1-2]获取高频信号,将信号通过选频电路进行放大滤波后,由采集卡对其进行采样以进行下一步处理。另外,利用GPS接收机来定位车辆行驶位置及经纬度数据,硬件模块组成如图2所示。
3 数据接收采集
本系统设计需要收集的数据包括无线信号数据和经纬度数据。经纬度数据的接收选用Holux GR213智慧卫星接收机,通过串口控件指令操作计算机即可实现GPS数据的接收存储。
无线信号的接收存储相对复杂,包括接收、采样2个步骤。(1)接收方面,选用万瑞公司的WR-G315宽频段接收模块来接收无线信号。G315主要技术指标为:软件DSP解调,频率接收范围9 kHz~1 800 MHz,接口兼容PCI及USB。该接收机的频率范围可满足对数传电台230 MHz频段信号的接收,且其10.7 MHz中频输出使信号已实现了1次降频,其PCI接口使工控计算机可通过软件语言调用动态链接库函数来控制接收机的工作。(2)采样方面,本设计选用阿尔泰公司基于PCI总线结构的PCI8001高性能数据采集卡对中频信号进行采样存储。其基本技术指标为:32 bit PCI总线接口,最高40 MS/s采样速率,12 bit AD分辨率,采样频率可编程设定。同样,该采集卡的PCI接口使工控计算机可方便地通过软件命令直接对其工作方式进行操作,而且高采样频率充分满足了对中频信号的采样,从采集卡得到的数据需进行二次加工、转换,才可供程序使用。
对采集卡采样频率的设置决定了后续程序处理数据的工作量大小,若按照奈奎斯特采样定理[3],采样频率至少为10.7 MHz×2=21.4 MHz,这样的采样率会造成数据处理的工作量非常巨大,考虑到数传电台工作带宽仅为25 kHz,由欠采样理论[4]可知:
其中fs为采样频率,f0是信号的载波,B为信号的带宽,m=1,2,3…。欠采样方式以大于2倍信号带宽的速率对带通信号进行采样,与传统的奈奎斯特采样原理相比,在很大程度上降低了采样后的数据量。对于载波频率为10.7 MHz的信号,可取m=15,采样频率fs=1.38 MHz。
4 信号选频滤波电路
由于WR-G315宽频段接收模块输出的中频信号比较微弱,幅值范围为-40 mV~+40 mV,信号带宽为2 MHz。这样微弱的信号很容易与噪声混淆在一起,而且其带宽远大于数传电台工作带宽,若按照1.38 MHz采样则会出现严重的混频。基于这样的考虑,在无线接收机中频输出端与数据采集卡通道之间添加1个信号选频滤波电路[5],对无线接收机中频输出信号进行放大滤波,其电路如图3所示。经LeCroy Wave Sufer 434示波器测量:从选频滤波电路输出的信号幅值范围为:-1.2 V~+1.2 V,而其带宽降至500 kHz。
5 软件设计
系统软件采用VC++6.0在Windows XP环境下进行开发,用MFC开发用户操作软件界面,利用C++语言编写主程序。为了直观地观察电台监测情况,在界面中调用MapX软件实时显示信号采集车及数传电台的地理位置,并采用ADO技术结合Access数据库存储数据信息。软件由主程序及3条线程组成,如图4所示。
程序启动后,首先进行硬件初始化。对于WRG315接收机可通过显示连接的方式实现:
typedef int(__stdcall *FNCOpenRadioDevice)(int iDeviceNum);//声明
HMODULE dll=LoadLibrary(“wrg315api.dll”);
//装载动态连接库
FNCOpenRadioDevice OpenRadioDevice=(FNCOpenRadioDevice)
GetProcAddress(dll,“OpenRadioDevice”);
//链接API函数
int hRadio=OpenRadioDevice(0);//打开 WRG315
PCI8001采集卡则由隐式连接方式实现硬件管理,在StdAfx.h全局头文件中用包含语句:#include “PCI8001.H”来实现。
由如下语句进行初始化:
hDevice=PCI8001_CreateDevice(DeviceID);
//创建设备对象
PCI8001_InitDeviceAD(hDevice,&ADPara);
//初始化设备对象
硬件准备好后,程序配置软件窗口界面,界面主要分割为2个窗口:view类型和form类型。在view窗口中利用菜单调入MapX工具[6],通过接收经纬度数据,在地图上描绘信号采集车及数传电台地理位置;在form版面上设置各种按钮控件,并编写数据采集过程及参数设置的控制代码,添加MSCOMM控件,通过控制串口接收GPS的经纬度信息。
单击界面中的“开始监测”按钮,将启动3条线程。线程1负责将GPS接收到的监测车经纬度数据存入数据库,以供其他线程计算调用;线程2负责每隔一段时间从数据库中读取监测车经纬度数据及电台经纬度数据,由MapX工具绘制行车采集轨迹及监测得到的电台位置;线程3为程序设计的重点,其流程图如图5所示。
启动线程3后,监测流程如下:(1)首先通过软件语言设置硬件参数,依据对信号强度的判断,将有效数据存入程序全局数组中;(2)通过对采样数据周期长度的方差计算,可判定信号的波特率;(3)解调模块根据波特率的大小对数据进行相应的处理;(4)参照数传电台传输P协议中的选址模式数据格式,对解调后的数据信息进行数据帧分析,解码得到数传电台地址码;(5)由电台定位模块根据相同地址码的若干组对信号强度和监测车经纬度数据分析得到电台地理位置经纬度,并存入电台经纬度全局变量中,以供线程2读取数据。
3条线程的数据通信由数据库交互模块进行控制,并配合使用SetTimer、OnTimer函数[7]满足程序中各线程对数据资源的读写,实现电台信号和经纬度数据的存储、查询,以及电台和监测车经纬度数据到电子地图的调用输出,从而直观地在电子地图上显示监测车系统和电台地理位置。
通过研究实验,本系统能够在信号速率为1 200/2 400 b/s,编码方式为曼彻斯特、差分曼彻斯特情况下,成功地对MSK信号的速率、电台地址码、电台位置等进行监测识别。而对于GMSK、QPSK等调制方式数传电台信号的识别有待进一步深入的研究。
参考文献
[1] 张正明.多普勒频率差定位技术研究[J].西安电子科技大学学报,2000,27(6):786-790.
[2] 杜龙先.单信道相关干涉仪测向原理[J].中国无线电管理,2000(1):41-42.
[3] 樊昌信,张甫翔,徐炳祥,等.通信原理[M].北京:国防工业出版社,2003.
[4] 吴丹,顾学迈,吴芝路.基于软件无线电的数字化接收机的研究[J].电子技术应用,2005,31(9):46-48.
[5] 高嵩,王铁流,赛景波,等.远程家庭心电监护终端[J].电子产品世界,2008(8):135-139.
[6] 刘光.地理信息系统二次开发教程[M].北京:清华大学出版社,2003.
[7] 宋坤,刘锐宁,李纬明.Visual C++开发技术大全[M].北京:人民邮电出版社,2007.