数据曲线分析器Curve

数据曲线分析器Curve

大小:29K

更新时间:23-10-31

系统:Pc

版本:v2.1

开始下载

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~3 long 1 本次修改的数据长度n(点数)

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

8~15 double 1 data[0]  --\

16~23 double 1 data[1]     \

24~32 double 1 data[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)。

展开全部内容
语言简体中文

同类热门

Jamparc官方版Jamparc官方版 变态手游盒子电脑版变态手游盒子电脑版 aida64注册机aida64注册机 spacedesk pc端spacedesk pc端 OutlookAttachView绿色版OutlookAttachView绿色版 pluckydraw抽奖软件pluckydraw抽奖软件 Pocket Animation官方版Pocket Animation官方版 RAR文件修复软件(RAR fix)RAR文件修复软件(RAR fix)

类似软件

热门标签

合同管理软件大全 ps字体大全 五笔打字练习软件大全 电脑温度监控软件 可以查论文查重率的电脑软件 电脑画图软件 markdown编辑器大全 电脑采购管理软件大全 常用的串口调试助手 硬盘格式化软件大全 光盘刻录软件大全 批量改名软件

网友评论0人参与,0条评论

评论需审核后才能显示

最新排行

手游排行软件排行热门应用