新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于VC6.0的遥测帧数、时间和特征参数的截取方法

基于VC6.0的遥测帧数、时间和特征参数的截取方法

作者:时间:2012-07-03来源:网络收藏

(6)是否需要剔除无效帧。

本文引用地址:http://www.eepw.com.cn/article/154472.htm

  最终确定的软件界面如图4所示。

  

  2 软件实现

  2.1 按分割

  按分割涉及到遥测解算。程序运行时首先加载动态链接库dbreader.dll,postpro.dll和eu.dll。在OnInitDialog中调用函数GetTMFrame FormatInfo来获取遥测帧格式,包括遥测帧的长度,码率,同步码位置等信息。然后调用函数GetTM ParaAllReeord来获取所有参数在遥测帧中的位置信息,解算等。

  当用户从程序界面的参数下拉列表框中选择一个参数时,触发CBN_SELCHANGE事件并调用消息函数。在消息函数中根据参数是帧同步数据还是帧异步数据分别调用GetASyncParaValue函数或EUConvert函数解算出数据,同时从数据中找出跳变点,然后在图形控件上绘出曲线。

  2.2 按B码分割

  要想根据信息来查找对应的遥测帧就需要将该和文件中各遥测帧头的B码代表的时间进行比较。如果采用遍历查找的,对于总帧数为N的文件,理论上需要比较(N+1)/2次,要找到起、止两个时间对应的帧就要比较N+1次。这对于较大的文件来说消耗的时间会很长。

  在遥测文件中,每帧数据都是按接收到的先后顺序从前往后依次存放。也就是说,搜索的目的序列是有序的。对于这种情况,可以采用折半查找法进行搜索。理论证明,采用折半查找最多需要的比较次数为[log2(n+1)],搜索起、止两个时间共需比较2*[log2(n+1)]次。

  2.3 按帧序数分割

  三种分割方式最后都归结到按帧分割。按帧分割惟一复杂的地方就是剔除无效帧。要剔除无效帧需要将每一帧数据的同步码取出来和标准的同步码进行比较。如果差异位数超过容许值就丢弃该帧,否则保留。很多程序都采用依次右移一位,看二者最低位是否相同,如果不同则计数加1,循环直到两个数都为零的

  这种方法效率非常低。本文采用了如图5所示的计算方法。

  

计算同步码错误位数 www.elecfans.com

  这种算法的关键在两处:首先对两个被比较数a和b按位异或,结果c的二进制数中为1的位置就是a和b不一致的位置。然后c不停地与c-1按位与并将结果赋给c,直到c为O。通过归纳法可以证明c与c-1按位与可以消掉c的从低位往高位数的第一个1,所以c的二进制值有几个1就循环几次。

  3 结语

  本遥测软件采用模块化设计,便于实现和测试。同时结合遥测文件的结构,实现了按帧序数、按时间和按参数三种分割方法,较好地满足了型号遥测数据处理的需求。从软件的设计可以看出,对于较复杂的软件采用自顶向下,逐渐细化的分析方法,分模块设计;对于影响程序性能的处理过程有针对性地进行优化,可以有效地提高程序的可靠性和性能并简化设计过程。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭