基于多核DSP的高分辨距离像运动补偿算法实现

2014-11-17 07:15黄文韬周建江
数据采集与处理 2014年4期
关键词:描述符数据量队列

黄文韬 周建江 路 冉

(南京航空航天大学电子信息工程学院,南京,210016)

引 言

随着现代军事技术的不断发展,雷达系统的工作背景也变得日趋复杂。不仅在检测性能上的要求越来越高,同时还需尽可能短的处理时间。与其他信号体制的雷达系统相比,高分辨成像雷达能够同时具有大的时宽和带宽,进而提高雷达的距离分辨率。常用的高分辨成像雷达可以选择发射线性调频[1]或频率步进信号。本文所采用的步进频率体制雷达对硬件处理能力的要求比线性调频体制雷达要小得多,更易于硬件平台的实现。但由于其存在距离-速度耦合现象,故在成像之前必须进行速度补偿[2]。运动补偿算法比较复杂,运算量大,需要一种运算速度更快、容量更大、功耗更低的数字信号处理平台来满足。TMS320C6678芯片作为TI公司2011年推出的一款基于Keystone架构的多核DSP芯片,以其高速并行运算能力著称,特别适合做大数据量雷达信号的处理[3]。本文首先论述了一种基于正负调频法和最大脉组求和法的二次速度估计算法实现步进频率雷达高分辨率距离像的运动补偿,然后在此算法基础上,提出了一种利用多核DSP的并行实现方案,设计了大数据量FFT在多核DSP平台上的实现过程与核间通信过程,并进行了代码优化。最后,对1000帧雷达回波信号进行运动补偿,测试了在多核DSP平台上该算法的补偿精度与实时性能。

1 算法原理分析

1.1 频率步进雷达高分辨距离像成像原理

步进频率信号是一种大时宽带宽信号,它首先在每一扫频时间内,发射出一连串宽度为τ的窄带脉冲信号,每个脉冲载频按Δf的步进值均匀步进,对接收到的回波信号则用与之载频相应的本振信号进行混频[4],再经过正交双通道处理,对连续Nb个回波采样可得序列

在静止的单目标情况下,对m(i)序列做IFFT变换和归一化处理并取绝对值,即可以得到目标的高分辨距离像包络表达式

但在实际情况中,如果雷达与目标间存在相对运动,则存在严重的距离-速度耦合现象。这是由于目标相对于雷达进行移动时,会产生一次相位项和二次相位项。同时,步进频率雷达进行成像时,运动的目标会产生较大的位移,容易引起距离徙动。

在这里只考虑目标在雷达波束方向上的做匀速运动,通常情况下运动物体的回波相位可以表示为

观察这4项可知,φ1在目标做匀速运动时没有影响;φ2是体现目标距离信息的成像相位项;φ3是一次相位像,在一般参数取值下,φ3前一项的取值远小于半个合成距离单元,可以忽略不计,后一项线性相位项不会引起距离像失真,但是会引起距离徙动;φ4是二次非线性相位项,其会造成一维距离像的峰值幅度降低与宽度展宽。

如图1所示,步进频率体制的信号回波对目标相对雷达的径向运动十分敏感,当运动目标的速度增大时,回波所成的像会造成位置偏移,回波峰值也会降低,目标会发生“分裂”现象,同时带宽展宽,且随着目标速度的增大,这些现象会愈发严重。此外,在某些速度情况下还会发生“回绕”现象,形成假目标。因此,对于高速运动的目标,必须对回波信号进行精确的运动速度补偿。

图1 目标径向速度对成像的影响Fig.1 Influence of target′s radial velocity

为了消除目标运动速度对高分辨距离像成像的影响,目标速度的准确估计十分重要。国内外已经展开较多的研究工作,主要有以下几类:

(1)利用步进频率信号的特性[5]。常用的方法有正负调频法、时域互相关法等,其根据多帧数据成像图中目标位置的变化来完成速度估计。

(2)速度搜索法[6]。主要包括最小脉组误差法,最小脉组相位差分法,最大脉组求和法等。此类方法采用搜索方式,能够达到较精确的速度估计值,缺点是算法的处理时间较长,往往不能满足雷达信号处理中的高实时性要求。

(3)复合体制测速方法。文献[7]提出了一种结合脉冲多普勒与步进频率信号的方法,利用双体制信号进行速度补偿可以同时提高目标运动速度的估计范围和速度估计的精度,但需在不同体制之间切换,系统必须保证各种体制之间的兼容性。

本文选用的是一种基于正负调频法和最大脉组求和法的二次速度估计方法。

1.2 利用二次速度估计的运动补偿算法

文献[8]提出了一种对距离像的速度进行粗估计的方法,其必须已知目标的先验速度信息,如若速度对距离像产生模糊,又必须先解模糊再进行速度估计。

步进频率雷达交替发射频率为f0~f0+(Nb-1)Δf的正步进频率和f0+(Nb-1)Δf~f0的负步进频率。如图2所示,设S1(k)和S2(k)为相邻两个正负脉冲序列回波的复采样结果。取相邻两个正步进频率脉冲序列S1(k)和S3(k),求其互相关函数

其中,1=Round(2N2vΔfTr/c),再对S13(k)归一化后作快速傅里叶变换,可得

由式(2)可知,当k取l时,|Y(k)|可取最大值,此时可以求得速度粗估计值v=cl/(2N2vΔfTr)。由于k的取值是一连串离散正整数,所以速度估计值也是一连串离散正整数,此时即可得到一个大致的速度范围。

图2 发射波形示意图Fig.2 Transmitted waveform

本系统中弹载雷达的飞行速度为280m/s,地面慢速运动目标速度设定在25~75km/h(约6.94~20.8m/s),所以速度测试范围约在260~300m/s。设置雷达发射波参数:载频f0=35GHz,一帧的脉冲个数Nb=128,脉冲宽度τ=200ns,脉冲重复周期Tr=20μs,步进频率值Δf=5MHz,目标在距离雷达1 800~2 000m范围内移动。仿真结果如图3所示。

从图3中可以看出,在信噪比为10dB的情况下,速度估计误差在3m/s以内,当信噪比降至-2dB时,其速度估计误差最多已经增至10m/s左右。随着信噪比的降低,速度估计误差会越来越大,此时,单独使用正负调频法已无法满足系统的精度要求。

为了得到更为精确的速度补偿量,通常在所得的粗速度范围内,做进一步的搜索,本文选用最大脉组求和准则。脉组求和函数的定义为

图3 不同信噪比情况下粗速度估计效果Fig.3 Effect of vague velocity estimation on different SNR

式中分别为相邻两次正负步进频率脉冲序列,已经过速度粗补偿后的回波采样值,即

由上式可知,当Δv=0时此函数可取得最大值,此时速度估计量即为目标的真实速度。

分别在信噪比为-2dB和10dB的情况下对最大脉组求和准则进行归一化并仿真分析,如图4所示,其峰值处很窄且远远高于周围,此外,最大脉组求和准则的抗噪声性能较好,在低信噪比时仍然可以得到较高的速度估计精度。在实际系统中,只需设置搜索步长小于其峰值宽度,就能够尽可能精准地搜索到最大脉组求和函数的峰值。

为了对比最大脉组求和准则的性能,本文选取了另外一种收敛准则最小脉组误差法作为对比,为了更加直观地分析两种收敛准则的抗噪声性能,可以进行蒙特卡罗仿真实验,选择实验参数为500,其结果如图5所示。

图4 不同信噪比情况下最大脉组求和函数Fig.4 Maximum pulse group summation function on different SNR

当信噪比较大时,两种收敛准则的性能相差不多,但当信噪比逐渐降低时,最大脉组求和准则的抗噪声性能明显优于最小脉组误差准则,两种准则抗噪声性能的拐点分别为-6dB和0dB。

图5 不同信噪比情况下收敛性能比较Fig.5 Comparison of convergence performance on different SNR

综上所述,采用正负调频法与最大脉组求和法相结合的运动补偿算法在低信噪比的情况下仍具有较高的精度,但是由于采用速度搜索的方法,其运算量十分庞大,对于系统硬件的计算能力提出了较高的要求。

2 基于多核DSP的运动补偿算法实现

2.1 TMS320C6678多核DSP处理器

TMS320C6678是基于TI公司最新Keystone架构上,采用在单片上集成8个1.25GHz的C66x内核集成的多核DSP,可实现高达10GHz的原始DSP芯片处理器性能及320G定点运算能力与160G浮点运算能力。每个核内部具有32 KB的L1P和32KB的L1D以及512KB的L2。片内还拥有一个4MB的共享内存区MSM。芯片的外部存储器接口EMIF可以连接到外部存储器DDR3,最多扩展到8GB的寻址空间。整个系统通过TeraNet将片内各个内核,网络协处理器,共享内存管理器,多核导航器以及外设等功能部件连接起来。与多核相关的片内设备有硬件消息器、队列管理器、PacketDMA,IPC模块及EDMA等,这些模块的应用将为多核系统实现核间通信以及数据交换提供可能[9]。

2.2 核间通信模式设计

核之间、核与外设之间的通信效率最大化是多核编程的核心内容之一。TI公司新开发的多核架构KEYSTONE给出了核间数据通信实现的几种方式:

(1)共享内存方式。单核将数据读取或写入共享内存区时,锁存状态量,其他核对这一资源的访问将被挂起。当该核完成读写操作时,释放状态量,其余核便可依次对共享内存区进行访问。

(2)EDMA技术。EDMA数据传输的发起方式有两种:CPU触发和事件触发。在不需要CPU参与的情况下,用户申请和配置一条特殊的传输通道,再由DMA控制器完成数据交换。数据在完成传输后会产生中断,此时CPU会响应中断并作出相应的处理。

(3)多核导航技术。多核导航技术是一种促进核间数据交流与多核协同工作的机制,其采用队列管理的方式,运用“发出后即不管”(Fire and forget)的系统,在无需CPU参与的情况下,利用PacketDMA将数据批量传输。

本系统采用基于多核导航器作为核间通信模块,完成核间大数据量的交换。

利用多核导航器进行核间通信的传输和接收过程如图6所示,在传输端,首先从空描述符队列(Free descriptor queue,FDQ)中取描述符,加载描述信息和需发送的数据后将其压入传输队列中并通知PKTDMA控制器传输队列非空。PKTDMA控制器在做出响应后会从队列管理器中获得描述符指针,从传输队列中读取描述符并开始发送数据。在数据传输完毕后会清空描述符并将其重新压入FDQ中。当需要传输的数据很多,已将空描述符取完后,一旦有描述符压入FDQ,队列管理器发送信号通知其他处于等待状态的端口、处理器或者预获取模块FDQ非空。在接受端,端口首先从队列管理器里的FDQ中取第一个描述符,FDQ是由发送包对应的Rx flow中编程确定。端口朝FDQ内的(Small out-time package,SOP)缓存写数据,SOP里的缓存地址则是在Rx flow中确定的,即取出的描述符是在Rx中编程确定,数据直接读取到Rx指定的缓存中。包接收完整后,数据直接写到指定的地址内存中,PKTDMA控制器会将数据包描述符的指针指向由Rx flow指定的Rx队列,端口可以使用编程的方法将目标队列覆盖。当Rx队列中有描述符被填入,队列管理器则会发出消息通知其他端口或者嵌入式处理器,最后则会由主机回收这些描述符。

2.3 基于多核DSP的大数据量FFT计算方法

图6 核间通信过程Fig.6 Inter-core communication process

系统中有很多指令往往会被多次调用。如果一个系统90%的时间都在处理10%的代码,那么这段代码区域就会被称为热点区域[10]。在一个传统的数字信号处理系统中,特别是雷达信号处理系统中,离散傅里叶变换算法就是整个处理程序的热点区域。对于大数据量的FFT运算,可以采用多核并行的处理方法[11],分解成多个小数据量的FFT运算。

首先,传统的DFT表达式为

当N非常大时,可将N分解为N=N1×N2,若点数不足则进行补零。令n=n1×N2+n2,n1=1,2,…,N1;n2=1,2,…N2,则式(9)可变为

再令k=k2×N1+k1,k1=1,2,…,N1;k2=1,2,…,N2,则式(10)可转化为

经过化简后,一维数组x(n)的FFT表达式可写为

其中:中括号内的第一级加权求和运算可看作对N1点数据做FFT变换。故式(12)中FFT表达式又可写成

在式(13)中可以发现外层的第二级加权求和运算可以看成是对第一级FFT后得到的数据乘以旋转因子后再进行第二次快速傅里叶迭代运算,此次运算可以看作对N1点数据做FFT变换。

在具体的多核DSP实现中,采取主从方式进行多核任务分配,将核0设为主核,其作为控制核进行任务的分工、调度和触发,且其本身也参与具体任务执行;核1~核7为从核,只负责具体任务的执行。大数据量FFT在多核DSP上的实现过程如图7所示。

图7 VLFFT在多核平台上实现过程Fig.7 Implementation procedure of VLFFT on multicore platform

首先将N点数据以N1×N2的矩阵形式存入共享内存中,由主核通知从核进入就绪状态,当主核接到各从核返回的就绪状态量后,通知各从核对列进行第一轮N2次大小为N1点FFT迭代运算,各个从核在进行完FFT运算并将结果乘以旋转因子后会返回一个状态量给主核。主核在接受到所有从核返回的完成任务的状态量后通知各个从核对行进行第二轮N1次大小为N2点FFT迭代运算,在所有从核返回任务完成状态量后,主核宣布任务结束,并将计算结果存入外存中去。

在整个超大数据量FFT计算任务,本系统将整个程序代码存入共享内存中,各个核读取同一段代码,只是根据自身的ID号查找相应的代码段,进入各自的任务分支中去执行。核与核之间、核与外设之间利用多核导航器作为核间通信的方式进行高速数据传输,把需要频繁执行的通信任务与CPU分离,转移到硬件设备上来实现,大大提高系统的运行效率。

3 测试结果与分析

3.1 测试结果分析

本文中对1 000帧雷达回波信号进行处理以测试算法和系统的精度与实时性。测试时首先进行速度粗估计,然后根据所得结果在其范围内以0.1m/s作为步长进行200次速度搜索。在不同信噪比情况下,前文所论述的二次速度估计运动补偿算法所能达到的精度如图8所示。当信噪比达到25dB时,速度估计误差在0.065m/s以内;当信噪比降至-2dB时,速度估计误差也小于0.1 m/s以内,由此可得二次速度估计运动补偿算法具有良好的抗噪声性能和较高的测速精度。

图8 不同信噪比情况下速度估计误差Fig.8 Speed estimation error on different SNR

本算法首先在MATLAB平台上实现,具体耗时为1 392.188ms,但对于高速运行的弹载雷达来说实时性不高;然后在TMS320C6678平台上实现了该算法,其消耗的cycle数与时间如表1所示。

表1 TMS320C6678各核消耗的资源Table 1 Consumption on each core of TMS320C6678

由于在TMS320C6678平台上以并行方式实现算法,所以整个程序的耗时取决于实际运行中耗时最多的核。1 000帧信号处理时间约为105ms,每一帧处理时间小于0.11ms,由此可推导出在处理一帧信号的时间内目标相对于雷达的运动距离为31.5mm,小于雷达的最小分辨单元,实时性要求可以满足。

3.2 代码优化

由于本文采用了一种速度搜索的算法,其在一定速度范围内进行短步长的精确搜索需要耗费大量的运算时间,并且雷达算法中对于离散大数据量的FFT运算也耗时颇多,为了尽量缩短处理时间,提高系统的实时性,需要对已经完成的程序代码进行进一步的优化。TI公司提供了很多专门针对DSP代码优化的技术手册[12],对具体的优化方法,主要有以下几条:

(1)编译器选项。DSP的编译器提供了将C代码编译成汇编语言的功能。编译器提供了很多编译选项有利于提高程序的执行效率,常用的如-O3,-pm,-mt选项。编译器选项优化部分会在程序编写完成时自动执行,除非对编译过程有特殊的需要,一般无需对编译选项进行修改;

(2)使用内联函数、关键字和伪指令。使用内联函数可以进行单指令多数据操作,内联函数全部以下划线开头,编译器识别后会直接将这些指令实例化,可以缩短执行时间,而关键字和伪指令则会告诉编译器一些额外的信息以方便编译器的优化;

(3)使用软件流水技术。软件流水是一种采用编排循环指令使循环的多次迭代可以并行执行的技术,其优化效果会随着流水深度的增加而不断地提高。

(4)手动展开循环。虽然很多程序可以自动展开循环,但是对于比较复杂的算法来说,编译器可能会因为不了解其中某些中间代码或变量被循环更改的关联性而拒绝展开循环,此时就需要通过手动方式展开循环来提高编译效率。

(5)存储器\Cache优化技术。对于Cache优化主要有一些指导性的原则供选择,例如尽可能将代码和数据放入片内存储器中;在Cache中的数据在被更新前尽量最大化应用;减少高速缓存缺失;避免L1D的BANK冲突等。

表2给出了本算法优化前后的耗时对比图,从表中可以看出经过C代码优化后,系统的实时性能提升了一倍以上。

表2 优化前后对比Table 2 Comparation before and after optimization

4 结束语

本文首先论述了一种基于正负调频法和最大脉组求和法的二次速度估计的补偿算法,利用简单易实现的正负调频法对目标速度进行一次粗估计,再利用速度搜索的方法结合最大脉组求和准则在粗估计后的小范围内进行精确估计。然后,在TMS320C6678多核DSP平台上并行实现该算法。本文采取主从模式进行任务的分配与调度,同时利用TI公司的多核DSP软件开发包中提供的多核导航器实现核间、核与外设之间的高速通信,并分析了超大数据量FFT运算在多核平台上的实现方法。最后,对1 000帧雷达回波信号做运动补偿处理,比较了不同信噪比情况下速度估计误差的精度,分析运算耗时并做了进一步代码优化。测试结果表明,基于多核DSP平台的结合正负调频法与最大脉组求和法的二次速度估计的补偿算法在精度和实时性能方面都达到了较高水平。

[1]刘记红,徐少坤,高勋章,等.基于压缩感知的LFM雷达成像方法[J].数据采集与处理,2012,27(S2):284-290.Liu Jihong,Xu Shaokun,Gao Xunzhang,et al.Imaging method for LFM radar based on compressed sensing[J].Journal of Data Acquisition and Processing,2012,27(S2):284-290.

[2]刘静,李兴国.毫米波高分辨率雷达运动补偿研究[J].现代雷达,2004,26(7):21-24.Liu Jing,Li Xingguo.Research on motion compensation in MMW high resolution radar[J].Modern Radar,2004,26(7):21-24.

[3]郑章汝,王红敏,李冬,等.基于TMS320C6678的雷达信号处理机设计[J].工业控制计算机,2012,25(11):14-15.Zheng Zhangru,Wang Hongmin,Li Dong,et al.Design of radar signal processor based on TMS320C6678[J].Industial Control Computer,2012,25(11):14-15.

[4]李丽亚.调频步进雷达信号及其合成孔径成像研究[D].西安:西安电子科技大学,2006.Li Liya.Stepped-frequency chirp signal and synthetic aperture radar imaging study[D].Xi′an:Xidian University,2006.

[5]Berizzi F,Martorella B.The discrete polynomialphase transform[J].Signal Processing,IEEE Transactions on,1995,43(8):1902-14.

[6]Ho-Ryung J,Hyo-Tae K,Dong-Hyun K.Application of subarray averaging and entropy minimization algorithm to stepped-frequency ISAR autofocus[J].Antennas and Propagation,IEEE Transactions on,2008,56(4):1144-54.

[7]王桂丽,李兴国.步进频率和脉冲多普勒复合测速研究[J].红外和毫米波学报,2008,27(3):190-192.Wang Guili,Li Xingguo.Compound approach of measuring velocity based on step-frequency and pulse doppler system[J].Journal of Infrared and Millimeter Waves,2008,27(3):190-192.

[8]Wang F,Long T.A new method of velocity estimation for inverse V-shape stepped frequency signal[C]//CIE International Conference on Radar.Shanghai:[s.n.],2006.

[9]蔡湘平,冯艳清,汪安民.多核DSP的Nand Flash启动软硬件设计[J].单片机与嵌入式系统应用,2013,3:46-48.Cai Xiangping,Feng Yanqing,Wang Anming.Bootload hardware and software design based on multicore DSP and nand flash[J].Microcontrollers and Embedded Systems,2013,3:46-48.

[10]袁泉,郭子祺,姚谦,等.基于并行处理的FFT快速算法[J].科学技术与工程,2008(8),4710-4714.Yuan Quan,Guo Ziqi,Yao Qian,et al.Highly effective FFT algorithm based on parallel techniques[J].Science Technology and Engineering,2008(8),4710-4714.

[11]王旭东,刘渝.全并行结构FFT的FPGA实现[J].南京航空航天大学学报,2006,38(1):96-100.Wang Xudong,Liu Yu.Full parallel FFT based on FPGA[J].Journal of Nanjing University of Aeronautics and Astronautics,2006,38(1):96-100.

[12]SPRABG7.Optimizing loops on the C66xDSP[S].Texas Instruments,2011.

猜你喜欢
描述符数据量队列
基于结构信息的异源遥感图像局部特征描述符研究
基于大数据量的初至层析成像算法优化
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
基于AKAZE的BOLD掩码描述符的匹配算法的研究
队列里的小秘密
基于多队列切换的SDN拥塞控制*
宽带信号采集与大数据量传输系统设计与研究
在队列里
Linux单线程并发服务器探索