摘 要: 针对甚高频(VHF)云闪时差法雷电定位同源脉冲匹配难点,提出了用FPGA实现相关性判断的同源脉冲算法设计思路。为提升系统性能、适应云闪甚高频信号的处理需求,采用了改进的算法并用实测数据在MATLAB、FPGA上对算法进行验证,设计完成了云闪波形同源脉冲匹配算法在FPGA上的实现。系统通过了Modelsim的仿真验证并在DE2平台上完成了硬件测试。设计共消耗了3 499个逻辑单元,最高处理速度可达98.07 MHz,满足了实际应用的要求。
关键词: 云闪;时差法;同源脉冲;FPGA
雷电是在雷暴天气条件下,发生于大气中的一种长距离放电现象,具有大电流、高电压、强电磁辐射等特征[1]。雷电主要包括云对地面的放电(地闪)和云与云之间的放电(云闪)[2],地闪往往对地面民用工业、军事设施有严重的破坏性[3];云闪也严重影响民航飞机、航天飞行器等的正常飞行。观测表明,云闪先于地闪5 min~15 min发生[4],观测云闪对地闪有预警的作用,因此云闪监测及定位研究具有重要意义。
目前对于地闪的探测已经有了比较完善的定位系统,如ADTD雷击检测仪[5],但仅仅能检测地闪。云闪通常基于甚高频(VHF)频段,已有的甚高频云闪探测主要采用干涉法和时差法(TOA)建立雷电探测系统,时差法主要难点是同源脉冲匹配技术。OETZEL等利用VHF技术测量闪电辐射到达分离天线的时差确定闪电源位置的成果[6],采用短基线避免判断两个脉冲是否属于同一个辐射脉冲的问题,但是短基线带来的问题是信号到达两天线的时差太小,导致测向精度不高。基于此,本文提出一种同源脉冲匹配算法——相关性判别法,该方法可以应用于长基线的VHF云闪脉冲同源判别。
从数学上可以证明分子的模小于分母,也即相关数Pxy的模不会大于1。当相关系数为0时相似度最差,即不相关。当相关系数为1时,误差能量为0,说明两信号相似度很好,是线形相关的。1980年,RUSTAN等发表了在KENNEDY航天中心观测闪电放电过程的研究报告[7],曾借助互相关分析,通过图形识别技术识别共源脉冲。据此,可以将相关性判别应用在VHF云闪波形相似度的判别中。
2 算法的MATLAB验证
2.1 算法验证平台
本文所采用的验证平台由天线、信道、PC端数据采集卡以及DE2开发板四部分构成。如图1所示。
天线单元由SG7200双段车载天线在全频段对云闪信号进行接收,经带通滤波、放大。为了前端观测及处理方便,选取美国GAGE公司产品CS21G8数据采集卡对云闪信号进行数据采集,可以实时观测波形变化。由于云闪定位系统采用FPGA实现,为了在FPGA中验证算法的可行性,将采集到的数据经PC交由DE2开发板处理。为了更真实地模拟实际系统,将需要进行相关性计算的两组数据存在DE2上的SRAM中。限于DE2上只有一片SRAM,图中将一片SRAM地址分为两块,分别存放两组扩大后的24位定点数据x(t)、y(t),两组数据在FPGA中完成同源匹配的计算,若同源则输出高电平给下一级定位系统。
2.2 MATLAB算法验证
基于以上平台,2010年3月~5月,项目组在北京历经两个月的时间采集到大量雷电波形数据,选取其中编号为CH11707和CH11708的两组数据在MATLAB中进行相关性算法验证,将两组数据在MATLAB中作图,如图2所示。
图2中尖峰脉冲为云闪辐射脉冲,宽的部分为噪声,由于信号到达两天线的距离不同,故有一定的时间差,幅度衰减也不同。相关系数计算结果为-0.601 15。对采集到的大量数据进行相关性计算,对比结果可以发现,只有同一个云闪发出的同源脉冲相关系数结果是最大的,并且与非同源计算出的相关系数差别很大,如编号为CH11708和CH1203相关系数仅为0.001 974 7。
3 算法的FPGA实现
3.1 算法流程
基于以上理论分析,可列出算法流程如图3所示。
(1)浮点定点化。采集卡采集到的数据为小数格式,而FPGA中浮点数运算的电路比定点数复杂,占用资源多,速度慢。考虑到算法与数据具体的幅值无关而与两组波形的关系有关,因此,可以将数据扩大适当的倍数后截取为整数再输入FPGA进行计算。但是随着处理数据位宽的增加,会导致硬件资源占用率提高,降低运算效率。综合考虑,选择扩大10 000倍,以达到速度和精度上的折中。
(2)定点浮点化。由于最终计算结果是一个介于0~1之间的小数,因此除法计算前要将除数与被除数由定点数转化成浮点数,再调用浮点数除法的IP核,得到32位浮点格式的相关系数。
3.2 算法改进
按照上述设计思路,在功能上实现了对云闪同源脉冲的判别,但是算法最大时钟频率为52.70 MHz,由于云闪信号处于甚高频频段,对系统处理速度上有较高要求。为了更好地提升系统性能,分析发现限制时钟频率的最坏路径位于开方模块,因此对开方模块做如下改进:
(1)开方模块:由于QUARTUS自带的开方IP核将系统最大时钟频率限制在52.70 MHz,为了改进算法的效率,采用循环冗余开方算法代替开方IP核,循环冗余算法涉及到的运算有加法、减法、移位,加减法和移位较容易在硬件上实现,并且占用资源少,故可以提高算法的运算效率。更改开方模块后系统时钟频率可以提升至74.47 MHz。此时系统时钟频率虽然有所提升,但还是被定点转浮点模块所限制,故对定点转浮点模块进行改进。
(2)定点转浮点模块:通常定点转浮点的算法是通过查询前导0的方式实现,由于定点转浮点查询前导0时采用了一系列的if、else逻辑,导致电路的关键路径很长。因此考虑将if、else逻辑替换成“与或”逻辑,以此来缩短关键路径、简化电路、达到速度提升的目的。经过更改定点转浮点模块,最大时钟频率可以提升至98.07 MHz。
(3)优化前后性能对比:改进算法后,系统占用资源与之前对比结果如图4所示。
由图4可以看出,经过算法改进后,最大时钟频率可以由原来的52.70 MHz提升至98.07 MHz,并且逻辑单元占用数量上也明显减少。
3.3 FPGA电路验证
经过对代码和算法的优化,选取编号为CH11707和CH11708的两组同源云闪辐射脉冲进行仿真,具体仿真结果如图5所示。
由图5可以看到,modelsim仿真的小数结果为:
Pxy=-0.601 144 9
MATLAB计算出的相关系数为-0.601 15,modelsim仿真结果与MATLAB计算一致。
仿真成功后,加入SRAM读写模块,在硬件上进行测试,通过嵌入式逻辑分析仪signaltap观察实际的计算结果如图6所示。
由图6可以看到,实际硬件上计算的相关系数结果与modelsim仿真结果完全一致。
本文针对VHF云闪同源脉冲匹配的难题,提出了相关性判别的匹配算法,针对该思想完成了设计验证以及FPGA硬件实现。在此基础上,利用电路和算法的优化提高系统的性能,最大时钟频率由优化前的52.70 MHz提升至98.07 MHz,资源占用也有所减少。所做的相关性算法的FPGA硬件实现可应用于更广泛的硬件实现相似性判断,便于方便、快速地识别信号间的相似性。
参考文献
[1] 佘会莲,陈德生,谢君.VHF闪电定位技术评述[J].气象与环境科学,2008,31(2).
[2] 张萍,赵文光.基于云闪的雷电定位系统的误差分析[J]. 测绘通报,2009(1).
[3] 王怀斌,郄秀书,张义军,等.云闪和地闪的波形采集、数据处理及其初步应用[J].高原气象,2002(1).
[4] OETZEL G N,PIERCE E T.Radio emissions from close lightning.Planetary Electrodynamics,1 534-569,1969.
[5] 潘超.基于SoPC的雷电探测仪设计[J].微计算机信息,2002.
[6] OETZEL G N,PIERCE E T.VHF technique for locating lightning. Radio Science 4,199-201,1969.
[7] RUSTAN P L,UMAN M A,CHIDERS D G,et al.Lightning source locations from VHF radiation data for a flash at kennedy space center[J].Geophys.Res.,1985(C9):4893-4903.