数据曲线分析器Curve v2.1绿色版

数据曲线分析器Curve v2.1绿色版

官方

系统:Android

日期:2026-02-01

类别:电脑软件

版本:

  • 详情
  • 相关
  • 评论
    这款Curve数据曲线分析器真是个工程利器,它能直接把枯燥的文本数据变成直观的曲线,特别适合咱们这种搞工程试验的人。我最喜欢它那个高效的聚点算法,哪怕数据量再大,缩放起来也丝滑得很,完全不卡顿,这点真的太加分了。 软件用起来特别顺手,不用安装,双击就能跑。它能把原始数据变成三条不同颜色的曲线,方便对比分析。数据导入也灵活,支持单列或多列,格式要求也不严,只要列数对得上就行。我试过用它处理多列数据,利用“复制前级”功能把不同列的数据挪到二三级缓冲区,就能在一个窗口里对比看了,虽然目前限制三条,但够用了。 操作上,鼠标滚轮缩放、Ctrl加滚轮调Y轴,还有各种键盘快捷键,用熟了效率飞起。视值显示也很贴心,Y轴直接对应原始数据量值,X轴能根据采样频率自动换算成时间,读数特别准。标记线和窗口功能用来圈定数据段做频谱分析简直完美,FFT计算精准,单窗支持的数据点数也够大,完全满足精密测量需求。 最让我惊喜的是它支持动态模拟,按住Ctrl点按钮就能让数据流滑动起来,模拟实时变化,这对分析瞬态信号特别有帮助。而且它还留了外部接口,能通过进程通信直接写共享内存更新曲线,这对需要实时监控的场景简直是神器。总的来说,这工具功能强大又接地气,绝对是数据处理的好帮手。

    Curve俗称数据曲线分析器,是一款用于曲线形式查看工程试验中生成的文本文件数据工具,程序内置了对曲线的变换操作和数据处理功能,主要有曲线算法、标记线窗、动态模拟、频谱分析等应用模块,便于分析。其中曲线绘制采用高效的聚点算法,即使对于长曲线,在伸缩变换时仍能速度极快且不损失观察细节;频谱分析数据精准,单窗可支持65536*64点数据,很好的兼顾了谱分辨率和带宽,适用于用于精密测量。

    此外,数据曲线分析器应用简单,支持数据导入和导出,且无需安装即可双击使用!

    数据曲线分析器Curve

    数据曲线分析器Curve使用方法

    1、导入、导出数据

    单击"导入数据"按钮,可从文件导入数据序列,初始数据为"曲线一",对初始数据变换后生成二级曲线"曲线二",对"曲线二"变换后称"曲线三",三条曲线在同一坐标系下以不同颜色显示;变换后的数据被存储在各自的内存缓冲区中,不影响其前级数据。

    2、源文件格式

    数据文件为文本文件,可以单列或多列形式存储;各行应整齐,即每行列数相同,列间以空格或Tab分隔,多个连续空格或Tab被视为1个;对每个数据的字符个数不限制(即每行长度可以不齐),每行列数相同即可;

    系统会根据设定的列号提取一列数据作为初始数据(首列列号为1),提取时会忽略掉不被提取的其它列,仅读取指定列,因而其它列可以是任意字符,提取列则要求为数值形式;

    数值无论是否带小数点,都被视为double,合法的数值为C正则"%lf"字符串格式,例如: +69352,618,0,-4,1.7,-87.1899,2.3E-6 等;

    文件被导入时系统会自动预览显示,可根据预览自行设定参数;

    3、曲线算法

    曲线算法是指生成曲线数据时使用的方法,对于"初始曲线",只能从文件中导入数据(也可以进程通信直接内存交换,已保留该接口);对二级、三级曲线的数据,则由其前级曲线经过算法运算得到;

    每次点击算法列表中的选项时,对应的曲线数据生成一次,反复改变算法只影响本级的结果,不影响其前级曲线;算法改变时,用前级数据重新运算一次,而不是在本级原有结果的基础上再叠加算法;

    变换后的曲线数据可执行"导出数据"被保存至新的文本文件中;导出时可以指定数据选项以及是否以.csv格式存储(该格式可被Excel识别);

    4、多列数据查看

    三条曲线中只有"初始数据"是从文件中导入的,另外两条均是在内存中变换生成的;如果数据文件中包含多列数据,想同时对比观察,可逐条导入后,利用变换算法中的"复制前级"将曲线移至二三级缓冲区,然后再导入另一列,这样,曲线窗中即可以对比同一数据文件中的多列数据(目前限制为三条曲线,软件保留有一次导入更多条曲线的接口);

    也可以灵活使用"数据导出"功能,将曲线暂存为文件,需要时再导入。

    5、曲线操作(先通过Tab键或单击使曲线窗获得焦点)

    鼠标方式

    切换活动曲线:左键单击辅助钮(左上角)

    X方向缩放:滚轮

    Y方向缩放:Ctrl+滚轮

    X方向平移:

    Y方向平移:

    自动显示全部:左 双击绘图区

    1:1初始显示:右 双击绘图区

    键盘方式

    Ctrl + Tab

    ← →

    ↑ ↓

    Ctrl + ← →

    Ctrl + ↑ ↓

    Ctrl + a/A

    a/A

    其他:

    开/关标记窗功能: Ctrl+左双击标记"开"字符  

    锁定/解锁窗宽: Ctrl+左双击宽"锁定"字符 (标记窗开时才有效) 

    标记区起点: Ctrl+左双击绘图区 (标记窗开时才有效)     

    标记区止点: Ctrl+右双击绘图区 (标记窗开时才有效)  

    频谱查看: Ctrl+左单击Fn按钮/F1

    退出程序:ESC

    注:当多条曲线叠加显示时,其中有一条是"活动曲线",或称"当前曲线";视值显示、标记窗和频谱分析都是针对"活动曲线"的;任意一条曲线均可切换为"活动曲线",界面上会有颜色变换区分;

    6、视值

    视值是指根据坐标刻线的标示量读出的曲线点的数值;

    本系统中,y轴视值与初始数据的量值完全相等(不因曲线变换而改变);x轴的视值默认等于数据点序号(0,1,2,...);导入数据时若指定了采样频率,x视值会被修正为以秒(s)为单位的时间量;按照x坐标轴刻线读出的是s;

    如果采样频率设定准确,相应的频谱曲线频率轴视值单位为Hz,也已被修正准确,可直接读出;

    曲线平移时,窗口顶部会实时显示曲线上最左点的数值(视值);查看其它点数值可通过平移曲线完成(也可以采用挪动标记线方式);

    7、标记线/窗

    当在曲线窗绘图区外的"标记:关"按钮上Ctrl+左双击后,会开启数据标记功能,数据标记默认为单点模式,标记为一条竖线(宽度为1);绘图区上任意点Ctrl+左双击,会使标记线移动到该点,并显示该点的数据值;

    标记开启后,单击"宽:锁定"按钮,可将标记宽度设为可变,此时,在曲线窗中任意点Ctrl+右双击,会使标记变为一段窗口,标记窗中的数据即被选中;

    8、算法明细

    软件保留有自定义算法接口,内置算法如下:

    复制前级: 不做任何处理,将前级数据拷贝至本级;

    一阶差分: 求一阶导数(速度),本级本点=前级本点-前级前点

    二阶差分: 二阶导数:本级本点=前级前点+前级后点-2*前级本点;

    一阶LPF(Fs/2): 一阶IIR低通滤波,截止频率为采样频率的1/2;

    一阶LPF(Fs/4):   类同;

    一阶LPF(Fs/8):   类同;

    一阶LPF(Fs/100): 类同;

    3点1次平均: 前级的本点为中心前后共3点均值,作为本级本点值;

    3点2次平均: 3点1次完成后,叠加一遍3点1次,共2次;

    5点1次平均: 类同;

    5点3次平均: 类同;

    n点m10次: 类同;

    9、动态模拟

    动态模拟是一种在事后将数据流从数据窗动态滑过,以模拟数据时间变化的功能;按住Ctrl并单击Fn按钮,系统即开始对原始数据曲线进行动态模拟;动态模拟刷新由定时器自动执行(设为10ms一次,但未必准确);模拟时的曲线平移速度由滑动步长调节,滑动步长可以是2,4,8,10,20,40,80,100点;在动态模拟时点按Alt键即可自动切换步长;

    10、频谱分析

    点击Fn按钮,即可打开频谱窗,并查看标记区内数据的频谱,频谱窗内曲线的操作与5所述相同;

    系统只有在标记窗打开,并选定数据时,才允许查看频谱;系统会自动将标记窗内的数据截取为2的n次幂长,以便于FFT计算(例如标记窗内有1035点数据,则谱分析实际使用的是其前1024点);

    由于FFT变换得到的是完全对称的双边谱,为提高效率,频谱窗中只显示其幅值谱的单边一半,并进行视值校准,可在由坐标轴直接读数;    

    当系统进行动态模拟时,或由外部进程动态注入数据时,随着时域窗中数据的刷新,频谱窗也会随之动态刷新;

    11、使用限制

    1) 文件单行长: 32768字符;

    2) 可浏览行数: 4194304行;导入时有跳行功能,理论上长度无限制;

    系统保留有单次查看更多行的配置接口;

    3) 单谱窗点数: 4194304点;

    数据曲线分析器外部接口

    外部接口:

    外部进程可采用进程通信方式直接向Curve的共享缓冲区中写入数据,并更新曲线;

    步骤如下:

    OpenFileMapping();

    MapViewOfFile();

    buf[0]=..;

    buf[1]=..;//操作缓冲区

    ...

    UnmapViewOfFile();

    CloseHandle();

    PostMessage();

    过程描述:

    (1) 打开内存映像文件,映像名字为"LiXueLei_SharedCurveMemory",

    (2) 成功后,将映像映射到本地内存地址空间;会获得一个本进程中的内存地址指针;(注意:如果Curve.exe未运行,打开时会失败,因而应在此之前先启动Curve程序)

    (3) 进程中用这个地址指针操作内存,就可以改写作曲线的数据区;

    映像区的格式:

    offset(byte)类型元素个数内容

    0~3long1本次修改的数据长度n(点数)

    4~7float1数据的采样频率(Hz数)

    8~15double1data[0]  --\

    16~23double1data[1]     \

    24~32double1data[2]     |---共n点;

    .../

    ..._ / (n个double)

    (4) 操作完成后撤销在本地进程的地址映射并关闭映像文件;

    (5) 最后向Curve主窗口发送一条数据更新消息:

    取窗口句柄:

    ::FindWindow(NULL,"数据曲线分析器 Curve2.1");

    消息号定义:

    ::RegisterWindowMessage(_T("LixlCurveMsg_BufferModified"));     

    然后用::PostMessage()就可以了;可参阅MSDN;

    细节补充:

    Curve.exe软件中这样创建的映像区,看完这段,缓冲区结构就清楚了,同行人士都懂,不再赘述! 

    struct CurveSCB

    {

    long nSize;

    float FsHz;

    };

    hShareFile= CreateFileMapping

    (

    INVALID_HANDLE_VALUE,

    NULL,

    PAGE_READWRITE|SEC_COMMIT,

    0,

    sizeof(struct CurveSCB)+cvWnd.MaxCurveLength()*sizeof(double),

    "LiXueLei_SharedCurveMemory"

    );

    曲线数据区预留: MaxCurveLength=65536*64 点;一般足够用了;实际上曲线刷新是以nSize规定的点数为上限的;

    还有就是:

    Curve.exe运行时当共享缓冲区创建成功,会广播一条消息,消息号:

    ::RegisterWindowMessage(_T("LixlCurveMsg_CurveAppInit"));

    Curve.exe在退出时,也会广播一条消息,消息号:

    ::RegisterWindowMessage(_T("LixlCurveMsg_CurveAppExit"));

    可根据这些消息进行相应的处理;

    软件特色

    1、Curve数据曲线分析器中文版支持对Y向比例、X向比例查看。

    2、也可对初始数据、左侧点好进行快速的了解。

    3、可以对需要的数据进行快速的导出。

    4、对需要的曲线进行快速的添加,自定义的选择。

    更新日志

    v2.1版本

    1、增加频谱自动提取至剪贴板功能。

    2、增加导出频谱序列对功能(F2)。

    展开内容

    应用信息

    • 包名:
    • MD5:
    • 需要网络

    评分及评论

    4.5满分5.0分

    点击星星用来评分

    评论需审核后才能显示
    同类排行