基于FPGA的坐标转换及实现

2012-09-26 02:04王绍徐
上海电力大学学报 2012年4期
关键词:扫描线极坐标直角坐标

王绍徐

(上海电力学院计算机与信息工程学院,上海 200090)

直角坐标和极坐标是两种不同的坐标体系,在不同的领域发挥着重要的作用.例如,在图像处理、视频处理、数字模拟电视等领域中一般采用直角坐标体系,这是由于电视机、显示器等器件均是采用点阵扫描方式,是按照直角坐标(x,y)逐点实现的;而在天线、雷达等系统中按照角度扫描时就需要用到极坐标,尤其是雷达系统中,扫描时基于角度旋转并通过发射天线发出微波电磁波,处在此方向上的物体会反射电磁波,雷达天线接收到此反射波后即可处理并提取有关该物体的信息(如距离、方位、高度及距离变化率或径向速度等).但雷达系统在处理及显示物体信息时,必须通过直角坐标来实现,因此其系统内部同时存在直角坐标和极坐标体系,也就存在两个坐标的转换问题.已有很多文献对此问题进行了研究[1].

随着集成电路及现场可编程门阵列(Field Programmable Gate Array,FPGA)的发展,越来越多的研究基于FPGA来实现坐标体系的转化[2,3].

本文分析了由极坐标到直角坐标的转换方法,提出了一种简单实用且效率高的FPGA实现方法.

1 坐标转换的实现原理

雷达是利用微波波段电磁波探测目标的电子设备.在雷达系统中,发射机通过天线将电磁波能量以定向方式发射到空间中的某一方向,处在此方向上的物体反射碰到的电磁波,再由雷达天线接收此反射波,并送至接收设备进行处理,提取有关该物体的某些信息(如目标物体至雷达的距离,距离变化率或径向速度、方位、高度等).测量距离实际是测量发射脉冲与回波脉冲之间的时间差,因电磁波以光速传播,据此就能换算出目标的精确距离.雷达的优点是白天黑夜均能探测远距离的目标,且不受雾、云和雨的阻挡,具有全天候的特点,并有一定的穿透能力.因此,它不仅成为军事上必不可少的电子装备,而且广泛应用于社会经济发展和科学研究中.其中,航海雷达得到了广泛的应用,其发射天线处于二维平面,可用于检测海平面上是否有船只,以及其距离和运动情况等.

航海雷达中,雷达天线的扫描是以固定点为中心,以恒定速率匀速旋转,在每一个角度采集返回的雷达回波数据并进行处理,这时坐标体系采用极坐标,当进行数据处理和图像显示时使用直角坐标[4].坐标转换的目的就是将极坐标下的(ρ,θ)坐标转换为直角坐标系下的(x,y)坐标,并把在极坐标下指向(ρ,θ)的数据重新指向与之对应的直角坐标系下的(x,y)区域,同时完成对当前数据的存储和后续的数据处理.常见的坐标转换方法有很多,基本原理都是按照(x,y)=(x0+ρsinθ,y0+ ρcosθ)来计算直角坐标的位置,然后将采集的数据存入(x,y)对应的数据空间.若以(x0,y0)为显示中心坐标,则由极坐标扫描且直角坐标存储的原理如图1所示.

图1 极坐标扫描直角坐标存储示意

坐标转换实现流程如图2所示,其中包括第一象限数据存储.

图2 坐标转换软件实现流程

在本系统中,当开始新的一屏扫描时,设备产生一个航首信号HD,系统据此设定初始化角度θ=θ0.当开始一条新的扫描线时,设备产生一个方位角信号BP,据此设定ρ=0,并且θ增加一个增量.在处理一条扫描线时,保持θ不变,针对该扫描线进行模数转换,得到采样值.当显示分辨率为1 024×1 024时,就需要2 048×2 048个实际采样点,即每一条回波扫描线的采样点为1 024个.每处理完一条回波扫描线,则θ增加一个增量,重新开始下一条扫描线.为了增加分辨率,每周循环角度均匀等分为8 192份,因此对于第一象限而言,角度循环次数为2 048次,循环增量为2π/8 192.

除了CPU软件以外,DSP软件也可用于实现计算,DSP内部具有乘加运算功能,可以预先存储sin和cos的值,用两个乘法器和加法器并行计算x和y的值.由于本系统的分辨率较高,显示刷新的速度非常快,其计算量特别大,一般的CPU和DSP已经无法胜任,最佳的方案是使用FPGA来实现.目前,FPGA可以在300 MHz的频率下工作,因此可以完全实时地实现坐标的转换、处理和显示.

2 坐标转换的FPGA实现

由于系统分辨率和显示刷新速率越来越高,坐标转换可以使用FPGA配合大容量存储器sdram来实现,其原理如图3所示.系统中核心处理单元为 FPGA,采用 Altera公司的 CycloneII EP2C35F672C7N.其输入数据为雷达信号产生模块产生的行首信号和方位角信号,以此作为一帧、一条扫描线开始的触发信号.然后对收到的雷达回波信号进行模数采样(采样分辨率为1 024),并将其作为该扫描线的采样数据,存入坐标转换后得到的对应直角坐标点(x,y)所在的存储空间,如图1所示.采用两帧图像AB Buffer机制,当数据采集存储进A空间时,FPGA同时处理B空间中的数据,并实时显示;反之,则交换.除了坐标转换模块外,FPGA还包括了sdram控制器,以及雷达信号数据处理等模块,系统中的CPU主要用于实现人机接口、系统配置等功能.

图3 FPGA实现坐标转换的原理示意

FPGA中实现坐标转换最有效的方法是查找表法,按照输入的(ρ,θ),查找极坐标-直角坐标关系表,即可直接得到(x,y),从而直接将数据存入该空间,具体实现流程如图4所示.

运用查找表法实现坐标转换时,系统的半径分辨率为1 024,角度分辨率为2π/8 192,查找表容量为1 024×8 192=8 MB,表格内容为x和y的坐标,范围为0~2 047,需11 ×2=22 bit,因此存储器容量共为176 Mbit,即22 MB.显然该方法在理论上是可行的,但实际因存储器容量太大而无法实现.

由于在同一方位角θ时ρ的增量为1,根据x=ρsinθ和y=ρcosθ计算每个点坐标与上一点坐标的变化量,并对该差值进行处理,每个点x和y的存储值变为2 bit,查找表的大小为8 MB×2 bit=16 Mbit=2 MB.另外,由于4个象限是对称的,在具体转换时可使用方位角的高两位表示不同的象限,见图 1.当扫描线开始时,(x0,y0)=(1 024,1 024),其他点的坐标(xn,yn)可表示为:第1象限(xn,yn)=(xn-1+dx,yn-1- dy),第 2 象限(xn,yn)=(xn-1+dx,yn-1+dy),第 3 象限(xn,yn)=(xn-1- dx,yn-1+dy),第 4 象限(xn,yn)=(xn-1-dx,yn-1-dy),其中 dx和 dy分别取 0 或 1,即表中每点取值2 bit,对应x和y的增量,因此查找表空间又可减小为2 M/4 bit=512 kB,完全可以用FPGA来实现,具体流程见图5.

图4 FPGA查找表实现坐标转换示意

用改进的FPGA查找表实现坐标转换的过程示意如图5所示.首先将查找表数据通过CPU存入sdram中,当开始新的一屏扫描时,设备产生一个航首信号HD,FPGA根据这一信号设定初始化角度θ=θ0,ρ=0.当开始新的扫描线时,设备产生一个方位角信号BP,FPGA据此设定ρ=0,并且θ++.此时,FPGA取出sdram查找表中对应该θ的整行数据(即1024×2 bit=256 B),随着该扫描线数据的不断输入,按照图5流程来实现坐标转换,同时将数据正确存入直角坐标系中.

图5 改进的FPGA查找表实现坐标转换示意

图5表示的是第一象限的实现情况,即按x=x+LUT_x(j,i),y=y - LUT_y(j,i)计算,FPGA具体实现时的加减是按照不同的象限分别处理的,象限的区分可以从方位角的最高两位取得.

3 结语

在同时具有极坐标和直角坐标体系的系统中,数据的采集、处理和显示的过程中都必须进行坐标转换.由于转换时数据量大,实时性高,需要采用FPGA来实现,本文介绍了FPGA实现坐标转换的原理和方法,并采用查找表方式对算法进行了改进.

[1]梁景新,薛余网.PPI雷达信号微机显示中的快速极坐标-直角坐标映射[J].上海交通大学学报,1999(1):57-60.

[2]徐国库,陈禾.基于CORDIC算法的坐标转换电路的FPGA实现[J].现代电子技术,2006(10):108-110.

[3]胡明,余柏生,吴顺君.基于CPLD技术的雷达光栅扫描坐标变换器的设计与实现[J].现代雷达,2001(6):77-79.

[4]王世远.航海雷达与ARPA[M].大连:大连海事大学出版社,1998:1-109.

[5]刘福江.船用导航雷达坐标转换中的盲点问题及解决方法[J].船用导航雷达,2002(4):5-7.

猜你喜欢
扫描线极坐标直角坐标
从平面直角坐标系到解析几何
深入学习“平面直角坐标系”
一种基于线扫描的受损一维条形码识别方法
深刻理解平面直角坐标系
巧用极坐标解决圆锥曲线的一类定值问题
认识“平面直角坐标系”
极坐标视角下的圆锥曲线
基于扫描线模型的机载激光点云滤波算法
扫描线点云数据的曲面重构技术研究
一种新型鱼眼图像轮廓提取算法