“前一篇文章介绍了NVH数采系统记录的原始文件常见的几种数据格式。本篇将介绍怎样找到具体的数据位置并还原它,从而实现编程直接读取原始文件的目的。

01

画出整体数据

前一篇文章提到:数采系统记录的原始数据包含两部分:ASCII码明文和某类型的二进制数据。如图1。

图1

本文中,我们以24位数据格式来举例。要画出整体数据,可以对图1的原始文件进行如下3次尝试,如图2:

1)从文件开头,读取24位整型数据;2)跳开8位,读取24位整型数据;3)跳开16位,读取24位整型数据。跳开24位,再读取24位数据的话,会和情况1)类似。

图2

第 1)次:没发现信号,如图3;

第 2)次:没发现信号,如图4;

第 3)次:发现测试信号,如图5。

图3

图4

图5

需要注意的是:图5中最前面的大数,是说明文字,而非数据。同样的,如果数据格式是32位,则进行4次尝试,即可画出整体数据。

02

原始文件的数据排序

由于NVH数采系统的采样频率较高,每个通道记录的数据一般不会连续存储。常采用数据块(数据长度固定)的形式,按通道依次存储。以3个通道记录的数据为例:要得到各通道数据,需要对整体数据进行重新排序,如图6。

图6

而解析原始数据格式,则是个逆向工程。需要先准备好各通道的数据(用NVH自身软件导出),然后从整体数据中找到其相应位置,如图7。

图7

虽说,图7过程和图8有些类似。但是,依然可以用一些数学方法让整个过程变得容易和充满乐趣。

图8

03

查找数据位置

我们拿NVH自身软件导出的某通道一小段数据(暂称为:目标数据)为例。目的是:找到这段目标数据在原始整体数据中的位置,如图9。其实,刚开始,我是用肉眼对的~。但是,由于图9上图和下图数据完全不是一个数量级(上图是24位整形数据,需要乘以修正系数后,才能得到下图),所以给肉眼寻找增加了很多难度。

图9

后来,我用了一种更简单高效的方法:互相关。如图10。

图10

因为目标数据是整体数据中某段乘以修正系数的结果,所以它们严格线性相关。通过互相关计算,找到互相关最大值的位置,也就是目标信号的位置,如图11。将目标信号放在互相关最大的位置,进一步验证:目标信号乘以一个系数后,和整体信号的一段完全吻合,如图11下图。说明我们找到了正确的位置。

图11

以上,即寻找某个通道数据在原始整体数据位置的方法。确认完所有通道数据在整体数据的各个位置后,该原始文件的解析工作也就基本完成。

04

总结

总结一下针对NVH原始数据文件的解析过程:

1)用NVH自身软件导出各通道数据备用。

2)读取NVH原始数据文件的ASCII明文内容,内含采样频率、通道数、各通道修正系数等。

3)已知数据格式(24位或32位等),进行多次数据读取尝试,找到合适的数据读取起始位置。

4)用之前备用的各通道数据作为目标数据,多次查找目标数据在原始文件整体数据中的位置。

5)知道原始文件整体数据的排列规律后,结合各通道修正系数,还原各通道数据。

以上是解析NVH原始数据文件的大致过程,具体过程及细节不再详述。在逆向解析的过程中难免会遇到各种问题,当然,乐趣,也尽在其中


有问题请指正,谢谢!

kjb文件 解析_NVH原始数据文件如何读取 Part2相关推荐

  1. 分布式.RPC-WebService入门案例(java实现,注解实现,xsd文件解析,wsdl文件解析)

     系列博文: 分布式.RPC调用-RMI & Hessian框架_闲猫的博客-CSDN博客 分布式.RPC-WebService三要素,三个规范, Soap协议_闲猫的博客-CSDN博客 分布 ...

  2. java大文件解析_java大文件(百M以上)的上传下载实例解析

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 Save 改进后的代码不需要for ...

  3. STM32的烧录和Hex/bin烧录文件解析、烧录文件是被如何存储到MCU中的?

    什么是hex文件 以*.hex为后缀的文件我们称之为HEX文件.hex是intel规定的标准,hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或EEPROM中的程序和数据.是由一行 ...

  4. 【JSON文件解析】JSON文件

    文章目录 概要:本期主要介绍Qt解析JSON数据格式文件的方式. 一.JSON数据格式 1.JSON类似于XML,在JSON文件中,==有且只有一个根节点 2.JSON有两种主流包含型构造字符:{对象 ...

  5. 解析oracle追踪文件,解析listener跟踪文件

    在上篇<监听器控制程序lsnrctl跟踪trace file>(http://space.itpub.net/17203031/viewspace-713587)中,我们探讨了如何获取到监 ...

  6. java xml文件解析工具_Xml文件解析工具 - java

    解析Xml文件:就是把Xml文件里面的内容取出来. Xml文件解析工具:一个能解析Xml文件的类,即一个能把Xml文件里面的内容取出来的类. 先给出一个Xml文件(student_infor.xml) ...

  7. Java文件读写和CSV文件解析(读取csv文件的一列或若干列)

    文件类 Java 读文件流的知识不可少,先复习一下吧! OREACLE JDK8 DOCS 文件类是Java IO的一个对象,用于指定文件的相关信息,位置和名称信息.如txt文件,csv文件对Java ...

  8. 基于Java的NetCDF文件解析

    近期在做的项目中,需要使用Java语言进行NetCDF文件的解析. 然而,当在寻找资料时,发现基于Java语言的资料相较于Python少了很多,而且现有的基于Java解析NetCDF文件到CSV的资料 ...

  9. AVI文件格式解析+AVI文件解析工具

    (转)AVI文件格式解析+AVI文件解析工具 AVI文件解析工具下载地址:http://download.csdn.net/detail/zjq634359531/7556659 AVI(Audio ...

最新文章

  1. Linux内存技术分析(下)
  2. 物联网中的 ARM 漏洞利用
  3. 11.14 mii-tool:管理网络接口的状态
  4. SAP Spartacus 如何取得某个table字段对应的Angular Component
  5. 你花了多久弄明白架构设计?多个java应用同时访问数据库
  6. 李洋疯狂C语言之n个人报数,报到3的退出,最后留在场上的是原来的第几位(约瑟夫环)
  7. 全新Wijmo5中文学习指南正式上线
  8. 【Elasticsearch】Failed to process cluster event (put-mapping) within 30s
  9. 2021年卡信乐卡盟源码程序
  10. 西门子主程序调用子程序_西门子PLC调用子程序的方法
  11. 中国汽车市场的合资模式终究覆灭
  12. 计算机管理属性被禁用,win7命令提示符提示已被系统管理员停用?
  13. 卡方值计算-python代码
  14. js 移动端 下载 doc文件
  15. 2023年全国最新工会考试精选真题及答案47
  16. u盘制作启动盘后空间容量变小解决方法
  17. 沃顿商学院自我管理课——埃里克.格雷腾斯
  18. 什么是字节码,采用字节码的好处是什么?
  19. 二见钟情之组合查询(vb.net版)
  20. unity语言如何切换成中文

热门文章

  1. java后端生成图形验证码、前端接收并展示
  2. 【麒麟操作系统软件商店老是闪退?--麒麟系统软件商店卸载与重装(小白教程)】
  3. Unity让物体跟随鼠标移动
  4. python微信聊天记录自动上传_python实现微信定时每天和女友发送消息
  5. Linux系统启动流程及服务管理控制
  6. jav常用类-时间处理相关类
  7. 微信公众号服务号申请-模板消息发送-自定义菜单-测试账号指南
  8. 《图解HTTP》全文笔记梳理
  9. 北京市中 高英语听说计算机考,北京2018中考英语听说计算机考试工作通知
  10. hook koa web 码云_Doodoo.js 发布 1.1.0,Koa.js+ Nuxt.js 最佳实践