基于Pandas的仿真应用研究*

2016-11-30 01:03董宇晖
通信技术 2016年7期
关键词:载机信号源时隙

董宇晖

(中国电子科技集团公司第十研究所,四川 成都 610036)

基于Pandas的仿真应用研究*

董宇晖

(中国电子科技集团公司第十研究所,四川 成都 610036)

传统仿真一般选用Matlab、R、SAS、Stata语言或工具,但或多或少在数据对齐、时间序列处理、矢量计算、丢失数据处理等方面存在不足。为解决上述问题,选用金融领域的大数据分析工具Pandas(Python Data Analysis Library)进行仿真建模,实现了机载平台AIS信号碰撞的仿真算法。同时,通过与Matlab的仿真对比,展示了Pandas的优势所在。目前,Pandas在仿真领域的应用尚无先例,首次提出将pandas应用于仿真领域具有较高创新性,而算法实现过程为其他数据密集型仿真提供了另外一种高效途径,具有较高的借鉴价值。

Pandas;Python;仿真;船舶自动识别系统;大数据

0 引 言

Pandas(Python Data Analysis Library)是一款使用python语言开发的大数据分析工具。Pandas最初被用于金融数据分析,由AQR Capital Management(著名的冲基金公司)开发,并于2009年推出[1]。随着python语言的流行,在行业应用和学术研究中采用python进行科学计算的势头越来越猛。在数据分析和交互、探索性计算以及数据可视化等方面,python越来越接近于现有其他领域特定语言/工具,如R、Matlab、SAS、Stata等。近年来,随着python相关领域库(主要是pandas)的不断改良,Pandas成为数据处理任务的一大替代工具。

相比其他语言/工具,Pandas在性能方面具有较大优势。Pandas纳入了大量库和标准模型,能高效操作大型数据集。Pandas支持数据自动对齐,具有强大的时间序列功能,同时也具备高性能科学计算和向量计算能力。

除此之外,Pandas在算法到应用的转换方面也具有较大优势。目前,大多数仿真应用模式为:首先使用某种特定领域的计算语言如R、Matlab等对新想法进行建模与验证,然后再将这些算法移植到实际系统中如Java、C、C++开发。而python在通用编程方面的巨大优势,完全可以只使用一种语言去构建以数据为中心的应用。

本文以机载平台AIS信号碰撞的仿真为例,展示基于Pandas仿真的实现过程,并通过与其他语言的对比,突出Pandas的优势所在。

1 AIS信号冲突机理

AIS协议用于实现船舶间的位置、航向、航速等信息的自动交换。一般情况下,AIS设备都安装在海上平台。机载平台AIS接收机拥有更大的接收范围,但面临一个更大的挑战:超过AIS协议设计的观测范围,会引起不同区域的消息冲突,导致消息丢失。不会发生时隙冲突的区域称为有组织区域(半径20 nm),舰船在机载AIS的观测区域内的分布示意图如图1所示。其中,大圆表示机载AIS的观测区域,中间的小圆表示一个组织区域,小点表示舰船。

图1 有组织区域示意

AIS协议以1分钟为一个超帧,包含2 250个时隙。AIS协议可以协调单个有组织区域内的时隙使用,不会造成冲突,但并不具备协调不同有组织区域时隙的功能。由于机载AIS接收机具有更大的覆盖范围,即包含了多个有组织区域,而这些区域之间并不存在协调关系,所有当机载接收机在同一时间接收到不同自组织区域发出的消息时,将产生时隙冲突,原理如图2所示。

根据AIS接收机同信道抑制值(8 dB),即当发生时隙冲突时,两个信号功率相差8 dB以上时,接收机就能区分较强的信号并接收。

图2 机载AIS时隙冲突原理

2 建模关键因素分析

2.1 信号源模拟

由于信号源的分布在实际情况中未知且超出接收范围的信号源不能在第一时间被感知,为真实模拟现实情况,可以通过分析真实试飞记录数据获得舰船(信号源)的分布(坐标位置),从而在建模时进行场景重建。

考虑到舰船航行速度与机载平台移动速度相比非常缓慢且仿真时长以分钟为单位,舰船位移相对载机位移可忽略不计。因此,可将信号源视为固定,抽取第一次动态报文的速度作为发送频度。

2.2 时隙分配模拟

为模拟时隙冲突的特性,首先需要将不同信号源按其自身经纬度属性投放到已经划分好的有组织区域中。其次,需要对有组织区域中的所有信号源,根据其发射频度计算其在整个仿真区间中占用的全部时隙。当所有有组织区域都完成了推演,则整个场景时隙情况便得以重建。

为方便组织区域划分,将有组织区域定义为边长为40 nm的正方形区域,如图3所示。

图3 有组织区域仿真

由于在绝大数情况下位置报告仅需要一个时隙,为简化仿真,假设所有信号源发射均只占用一个时隙。

2.3 其他因素

信号能否接收取决于信号功率,而信号源功率与端机发射功率、载机飞行高度、端机的接收灵敏度都有关。为便于仿真,上述因素都按照经验值设为常量:发射功率按照A类端机设为12.5 W,飞行高度设为8 000 m,接收灵敏度设为-110 dBm。

3 基于Pandas的AIS信号冲突仿真实现

3.1 场景数据提取

需要获取的场景数据包括各信号源经纬度、发送频度以及载机的运动轨迹(惯导数据)。场景数据需要通过实际飞行记录数据获得,记录以二进制文件形式保存,格式如图4所示。

图4 二 进制记录数据格式

二进制文件解析,通过调用python标准库中的struct和binascii模块实现。为方便后续仿真运算,海上船只信息保存为字典数据结构,形如:{shipID_1:[longitude,latitude,fre],shipID_2:[longitude,l atitude,fre]....}。而载机的运动轨迹保存为以时间序列为索引的DataFrame。DataFrame是pandas最重要的数据结构[3],类似于Matlab中的矩阵。保存的DataFrame结构示意如表1所示。

表1 DataFrame结构示意

3.2 场景重建与时隙分配

场景重建的主要工作是将获取的船只信息按照坐标划分到各个有组织区域,然后对每个区域中的成员进行时隙分配。

ship2zone方法实现了将船只划分到不同有组织区域的功能。ship2zone的基本算法是获得船只中的最大、最小经纬度,根据有组织区域的大小计算需要划分的网格,最后以最小经纬度作为原点,通过判断船只坐标值范围,实现船只的区域划分,如图5所示。

图5 船只有组织区域分配

Zonesolt实现了一个有组织区域的船只时隙分配。主要代码实现如下:

按照划分的有组织区域,对每个区域进行时隙分配即完成了场景重建。最终得到的是由各个船只以时间标签为索引的DataFrame矩阵的字典,如图6所示。

图6 船只的DataFrame

3.3 仿真运算

得到惯导数据的DataFrame和场景船只的DataFrame后,根据时间标签对同一时隙所有的船只的接收功率进行计算。如果功率大于-110 dBm且差值大于8 dBm,则认为该时隙消息能够被接收;反之则不能。

上述过程存在3个难点:数据(时间标签)对齐、向量计算和缺失数据处理。

3.3.1 时间对齐

由于惯导数据时间与载机记录周期有关,所以与船只时隙无关,即2个DataFrame含有不匹配的时间标签。此时,如果适用matlab或R语言进行处理,需要人工对齐,否则无法完成向量计算。Pandas则提供了很多时间对齐的手段,最基本的就是使用reindex方法。Reindex方法能使用一组新的索引,重新生成一个DataFrame:

NewINSDataFrame=OldINSDataFrame. reindex(shipdf.index,method='ffill')

上面的代码表示使用shipdf,即某一船只的时间索引,重新生成OldINSDataFrame。而method用于规定数据的填充方式,ffill是向前填充。Reindex前后时间标签及值的变化示意如表2所示。

3.3.2 向量计算

Pandas支持类似Matlab的矩阵向量计算。计算2个DataFrame的操作与计算标量数据一样。向量计算主要代码实现如下:

式中,powerfun是由自由空间传播损耗推导的信号到达载机的功率,具体的表达式为:

式中,p为端机发射功率,按照12.5 w计算;f为161.975 MHz;δ为考虑天线增益、线缆损耗后的值;d为通过经纬度、高度(8 000 m)计算的两点间的距离。向量计算将每行需要进行的标量计算转换成了Series(pandas的一个重要数据结构)的标量运算,其原理如表3所示。

表2 Reindex前后变化情况

表3 向量计算

Series是pandas的一个重要数据结构[2]。表3虚框中的每列都是一个Series对象实例。Pandas的向量运算可以按index(时间标签)将每行的标量计算转换成Series对象的标量运算:Powerfun(Slongitude, Slatitude,INSlongitude,INSlatitude),从而使原来需要迭代的计算变得更加简便。

3.3.3 缺失数据的处理

当进行向量计算时,缺失的数据项将得到NaN,NaN表示为空。Pandas对于NaN的处理也有很多手段,可以方便地按规则填充、清除。通过fillna方法,可将NaN值置为-110:

ResFrame=ResFrame.fillna(-110)

最终我们将获得保存功率的ResFrame,如表4所示。

表4 缺失数据的处理

按照时间标签计算,功率大于-110 dBm且最大2个功率的差大于8 dBm,则认为该时隙消息能够接收。

3.4 模型有效性验证

通过matplotlib绘图工具将单位时间内能够接收到的消息数进行统计,如图7所示。其中,阴影为试飞数据结果,曲线为仿真结果。由图7结果可见,虽然二者存在部分差异,但具有较好的相似度。考虑到仿真设定条件与实际情况存在差异,认为最终结果差异在可接收范围内。综上所述,认为建模正确,仿真有效。

图7 结果对比

4 性能对比

Pandas与Matlab在AIS信号冲突仿真上的对比结果,如表5所示。

表5 Pandas与Matlab性能对比

从表5可知,使用Pandas进行仿真,相比Matlab在数据对齐、缺失数据处理以及对于时间序列操作等方面更为便捷,从而带来了较高的开发效率与运行效率。同时,支持面向对象的Pandas在算法到实际系统的移植方面也具有绝对优势。

5 结 语

鉴于传统仿真在数据对齐、时间序列处理、矢量计算、丢失数据处理等方面存在不足[3],探讨Pandas对上述问题的解决。Pandas是python语言开发为了解决数据分析任务而创建的数据分析包。它整合了传统仿真工具/语言的各种功能,兼具Numpy高性能科学计算功能以及电子表格和SQL数据库灵活的数据处理功能,通过纳入大量库和标准的数据模型,提供了一种高效操作大型数据集所需的工具。

本文以机载平台AIS信号碰撞的仿真为例,展示了基于Pandas仿真的实现过程,并通过与Matlab语言的对比,突出了Pandas的优势所在。此外,本文首次将Pandas应用于仿真领域,也为数据密集型仿真提供了另外一种高效途径,具有较高的创新性和借鉴价值。

[1] MsKinney W.利用Python进行数据分析[M].唐学韬译.北京:机械工业出版社,2013. MsKinney W.Data Analysis Using Python[M].Tang Xuetao, translation.Beijing:Mechanical Industry Press,2013.

[2] Michael H.Learning pandas[M].Birmingham:Packt Publishing,2015.

[3] 邢通,李非凡,李春等.星载AIS消息碰撞的MATLAB仿真[J].电讯技术,2014(07):1006-1010. XING Tong,LI Fei-fan,LI Chun,et al.MATLAB Simulation of Spaceborne AIS Message Collision[J]. Telecommunications Technology,2014(07):1006-1010.

Simulation Application based on Pandas

DONG Yu-hui
(NO.10 Research Institute,CETC, Chengdu Sichuan 610036,China)

Traditional simulation generally chooses Matlab, R, SAS, Stata language or tools, but is usually deficient in data alignment, time series processing, vector computing, missing data processing. In order to solve the above problems, the financial field data analysis tool Pandas (Data Analysis Library Python) is choosen for modeling and simulation, Thus to realize AIS signal collision simulation algorithm. Comparison with the Matlab indicates the advantages of Pandas.At present, Pandas is not precedently used in the field of simulation. For the first time, Pandas is innovatively applied to the field of simulation, and the algorithm implementation process provides an efficient way for other data intensive simulation.

Pandas; Python; simulation;AIS; big data

TP391.9

A

1002-0802(2016)-07-0885-05

10.3969/j.issn.1002-0802.2016.07.018

2016-03-20;

2016-06-09 Received date:2016-03-20;Revised date:2016-06-09

董宇晖(1983—),男,学士,工程师,主要研究方向为计算机、通信相关领域。

猜你喜欢
载机信号源时隙
自推进红外干扰弹飞行姿态及轨迹研究
VR技术在船舶通信系统天线信号源驻波检测中的应用
无筒空射运载火箭重力出舱机箭耦合动力学
基于时分多址的网络时隙资源分配研究
基于市场机制的多机场时隙交换放行策略
复用段单节点失效造成业务时隙错连处理
一切以“大” 方向发展 20周年影音系统变迁史(信号源篇)
聚焦4K视频播放展望未来信号源发展
一种高速通信系统动态时隙分配设计
基于PSO的不规则低频天线阵与载机一体化综合设计