(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.