激光遥感图像高速滤波器算法的FPGA实现
2014-05-25武健赵菊敏李灯熬
武健 赵菊敏 李灯熬
(太原理工大学信息工程学院,山西 太原 030024)
激光遥感图像高速滤波器算法的FPGA实现
武健 赵菊敏 李灯熬
(太原理工大学信息工程学院,山西 太原 030024)
针对激光遥感信号高速高精度的要求,利用FPGA的多任务、高速并行性设计系统进行滤波。考虑到激光光电传感器设计的滤波器会有很大的信号衰减,且具有精度要求高的特点,提出了基于FPGA内部基本逻辑单元、乘法器、存储器,经过乘法分解和时序设计,实现具有可移植性的图像高速分辨的方法。系统采用FPGA设计平台,并用Verilog语言设计程序。试验结果验证,该滤波器对激光遥感信号具有高速、精确滤波功能,同时表明利用低端FPGA设计激光滤波器必将成为未来发展趋势。
激光遥感 数字滤波器 高速分辨 信号衰减 FPGA
0 引言
随着我国国防工业、航天工业的快速发展,激光遥感技术由于其高精度、高可靠性、稳定性好的优点,在上述领域中取得了非常广泛的运用。因此,激光遥感输出信号解析成像所需的高速可靠解调成为研究的重点[1]。
传统的激光光电传感信号解析算法都是在DSP中实现,虽然实现简单,但是由于DSP是一个串行器件,滤波和算术运算都只能串行执行,无法满足实时性解调的要求。而FPGA具有高速、多任务等优点,是激光遥感信号高速解析的理想实现方案[2]。
高速高阶滤波在激光遥感信号解调中发挥着重要的作用,也是解调系统设计的难点和重心,滤波器设计的好坏直接影响遥感成像的精度和速度[3]。因此,本文主要是研究基于FPGA的高速、高精度的滤波器,同时要求滤波器具有支持和兼容低端FPGA的能力。
由于利用激光光电传感器设计的滤波器会有很大的信号衰减,且具有精度要求高的特点,因此,本设计不同于其他普通滤波器的设计。本设计主要提出了乘法分解的办法,极大地提高了滤波器的精度和速度。
1 遥感图像滤波器实现整体方案
通常,数字滤波器有无限冲击响应(infinite impulse response,IIR)和有限冲击响应(finite impulse response, FIR)两种滤波方式。由于FIR滤波器通带内输出相位延时是线性的,而IIR是非线性的,因此我们采用FIR滤波结构设计[4-5]。该专用滤波器核心设计采用FPGA内部ROM、RAM、乘法器等。滤波器结构框图如图1所示。
图1 系统结构框图Fig.1 Structure of the system
系统控制逻辑控制从ROM中读取滤波系数、计数值写入RAM、计数值读出RAM以及乘法器的运算,使得几个模块能在一定时序下稳定工作。RAM和控制逻辑的组合设计,可以实现计数值的存储及移位功能。乘法器模块主要由两个硬件乘法核心组成,通过两个乘法器的组合计算,可以实现高位的宽乘法运算。累加器负责将乘法器输出值进行累加并取位。整个系统完成了FIR滤波结构计数值和滤波系数的卷积过程,如式(1)所示。
式中:X(i)为第i个采样周期时刻的计数值;h(i)为滤波系数。通过乘法和累加,正好完成了卷积工作[6]。
2 遥感图像滤波器设计参数分析
激光遥感信号的解调频率大概为5~20 kHz。在静态情况下,计数器以此频率采样时,采样值的幅值范围大概为100~400。激光光电传感器能感知外界的输入角速度,每小时最小能到0.01°,对应计数值中的分量大小最小应该在10-7数量级。激光传感器器件本身由于存在锁区,因此我们在使用的过程中人为叠加了一个正弦振动。为了提高遥感解析信号输出的稳定性,我们在正弦振动上叠加了一定的高斯白噪声。计数值组成如式[7](2)所示。
式中:A(t)为外界输入角速度分量对应值,频率一般在0~30 Hz;Bsinwt 为机抖分量的输出值,频率在200~400 Hz;Φ(t)为随机噪声输出值,频率可以达到1 kHz以上。
由于机抖信号是一个正弦周期信号,而输入激光传感器净角速度是一个非周期缓变量[7],累加一段时间后机抖分量值小于或等于机抖半个周期的累加值。
综上所述,滤波器可以采用基于FIR的低通滤波方式,采样频率为10 kHz,截止频率为100 Hz。FIR结构虽然具有相位的线性,但是衰减不会太大,因此设计使机抖分量衰减10-7即可。
3 滤波器具体设计
3.1 Matlab中滤波系数生成
为了降低工作量,在设计滤波器时,我们可以利用Matlab中的FDATool工具箱通过分析和对比得出。基于Blackman_Hharrit窗的FIR滤波器阻带具有最大的衰减。利用激光遥感信号设计的滤波器在200阶时的幅频特性图如图2所示。
图2 滤波器的幅频特性曲线Fig.2 Curves of filter amptitude-frequency characteristics
从图2可以看出,在400 Hz左右,输入信号衰减到-140 dB,能达到10-7的阻带衰减,满足激光遥感阻带衰减要求。
滤波器的相频特性曲线如图3所示。在整个通带内,滤波器移相是线性的,因此通带内各频率段信号经过滤波器后延迟时间一致的,通带信号不会产生叠加,相对时间仍然一致,满足激光遥感信号解析的滤波要求。
图3 滤波器的相频特性曲线Fig.3 Curves of the filter phase-frequency characteristics
FPGA内部通常只可以进行定点运算,若需要进行有关浮点的运算,则需要复杂的转换。因此,我们将采用定点算法的方式进行滤波。据此,对Matlab中产生的滤波系数组H[N]进行整型化。整型化的过程中势必要引入一定的误差,为了减小引入的误差,我们需要将滤波乘以一个较大的系数,以保留足够多的小数部分[8]。
通过反复试验和计算,要使整型化误差不影响滤波精度,需要将滤波系数乘以224,此时一个滤波周期最大的累积误差为1.490 1e-008。利用此整型化后的系数对FPGA内部ROM进行初始化。
3.2 滤波器乘法分解设计
当激光光电传感器发射-回传动态时的计数输出远大于静态时,为了让滤波器具有较大范围的动态输入,滤波器输入的数据宽度应为16位。ROM滤波系数输出为22位,为了以后扩展方便,我们设计的乘法器为24×18位。但低端FPGA内部乘法器一般只有18×18位,在高端的FPGA内部虽然集成了25×18的乘法器,但系统成本增加[9]。为了使本滤波核可以在较为低端的FPGA内部使用,采用乘法分解法进行分解乘法运算。滤波系数A可用式(3)表示。
式中:Ah为A的高12位;Al为A的低12位。
因此滤波乘法可以分解为:
这样Ah×js和Al×js就可以利用18×18位乘法器进行运算。在FPGA内部计算当中,乘法运算将利用移位实现,加法运算将利用与运算实现。因此mul又可以按式(5)、式(6)所示方法计算。
因此,我们可以利用两个18×18位的乘法器进行并行计算,可以得到24×18的结果。
若FPGA内部没有乘法器,我们也可以利用上面的乘法分解法,通过对乘法多次分解,达到快速计算的目的。如果先对输入数据进行标准符号二进制(canonic signed digit,CSD)编码,乘法效率会更高。
3.3 滤波器截止频率选择
为了让滤波器截止频率可调,我们将多组滤波系数顺序写入.COE文件,这样可以进行FPGA内部ROM的初始化。内部ROM数据组织形式如表1所示。
表1 ROM滤波系数结构Tab.1 Structure of filter coefficients in ROM
从ROM的零位地址开始,每隔N个地址,便是一组滤波系数的首地址。从首地址开始连续取出的N个数据便是一组截止频率对应的滤波系数。因此,我们可以通过为滤波核增加一个截止频率的选择端口,利用这个端口可以控制滤波核的截止频率。
4 遥感图像滤波器仿真及试验
输入一个固定的常数14 814,截止频率默认为100 Hz,滤波器输出仿真结果截图如图4所示。
图4 滤波器仿真结果截图Fig.4 Filter simulation results
滤波器每隔一个主时钟周期便读出一个ROM中的值,然后将数据与输入滤波器的数据14 814相乘。乘法器每隔7个主时钟后输出乘法结果:-118 512= 14 814×(-8)、-355 536=14 814×(-24)。读出的ROM值正好是我们存入的一组系数。滤波器的滤波周期T为:
因此,此滤波器具有极高的速度,完全能满足激光遥感信号实时解析所需高速滤波的要求。
我们拟采用FPGA内部模拟遥感计数信号的方式来定性测量滤波器的精度以及稳定度。在Matlab中产生一幅值为106的正弦信号,一个周期内对其均匀采样32个点,然后存入.COE文件,用于初始化FPGA内部模拟遥感计数信号的ROM空间。通过控制逻辑,使ROM的值以10 kHz的频率输出给滤波器。滤波输出后的结果发送到上位机进行分析,结果如表2所示。
表2 滤波器性能Tab.2 Filter performance
由此可以看出本滤波器具有极高的精度和稳定性,完全可以作为高精度激光遥感输出信号的滤波器使用[10]。在静态情况下,对某型号遥感原始信号计数后使用本滤波器进行解调,上位机测试结果截图如图5所示。图5显示连续测量6 000 s后,滤波器输出均值为5.202 8,10 s方差为0.011。
图5 激光遥感上位机测试结果截图Fig.5 The test results screenshot on host computer
5 结束语
通过仿真及试验测试的数据分析可以得出,在FPGA内实现本算法,能很好地验证激光光电传感器输出信号高速、精确滤波的功能,有效保证了遥感图像解析的实时精度与稳定性。由于拥有很宽的响应范围、支持低端FPGA以及算法思想可移植性强,该算法可以作为一种激光遥感数据解调滤波的优选方案。
[1] 高伯龙,李树棠.激光遥感[M].长沙:国防科技大学出版社,1984.
[2] 任晨纲.基于FPGA的激光遥感捷联惯导系统信号的检测与处理[D].长沙:国防科技大学,2009.
[3] 王国臣.激光遥感速率稳定性测试仪设计与实现[J].传感技术学报,2008,21(9):1524-1527.
[4] Meyer-Baese U.数字信号处理的FPGA实现[M].刘凌,译.北京:清华大学出版社,2011.
[5] 吴瑛,张莉,张冬玲,等.数字信号处理[M].西安:西安电子科技大学出版社,2009.
[6] 余成波,桃红艳,杨菁,等.数字信号处理及MATLAB实现[M].北京:清华大学出版社,2008.
[7] 赵雪兰,夏元钦,陈德应.激光遥感的偏频技术[J].激光与光电子的进展,2005,42(8):50-53.
[8] 吕妍红,崔中兴.环形激光遥感信号分析与处理[J].传感技术学报,2004,6(2):34-41.
[9] Xilinx.Spartan-3E FPGA family:complete data sheet[EB/OL].[2008-04-18].[2013-10-25].http:∥www.xilinx.com/spartan3e.
[10] 郭创,张宗麟,樊蓉.激光陀螺滤波评估方法研究[J].光学技术,2006,32(S1):77-80.
Implementation of High-speed Filter Algorithm Based on FPGA for Laser Remote Sensing Image
To fulfill the requirements of high speed and high accuracy filtering for laser remote sensing signals,by adopting the advantages of FPGA,i.e.,multi-task,and highly parallel characteristics,the system for filtering is designed.Considering the filter designed with laser photoelectric sensor may bring large signal attenuation,and request high accuracy,so the solution based on the basic logic cells,multiplexers and storage existing inside FPGA is proposed,through multiplication decomposition and timing design,to implement transplantable high speed image resolution.The FPGA is used as the design platform of the system,and the Verlog language is used for designing program.The experimental results show that this filter possesses high speed and precise filtering functions to laser remote sensing signals,in addition,it is indicated that using low-end FPGA to design laser filter will become future developing trend.
Laser remote sensing Digital filter High-speed resolution Signal attenuation FPGA
TN911+.7
A
国家自然科学基金青年科学基金资助项目(编号:61303207);
国家自然科学基金资助项目(编号:61371062);
教育部高等学校博士学科点专项科研基金联合资助项目(编号: 20121402120020);
山西省科学技术发展基金资助项目(编号:20120321024-01);
山西省国际合作基金资助项目(编号:2012081031);
山西省留学回国人员科研基金资助项目(编号:2013-032)。
修改稿收到日期:2014-03-03。
武健(1988-),男,现为太原理工大学信息与通信工程专业在读硕士研究生;主要从事盲信号处理和无线传感器网络的研究。