Curve俗称数据曲线分析器,是一款用于曲线形式查看工程试验中生成的文本文件数据工具,程序内置了对曲线的变换操作和数据处理功能,主要有曲线算法、标记线窗、动态模拟、频谱分析等应用模块,便于分析。其中曲线绘制采用高效的聚点算法,即使对于长曲线,在伸缩变换时仍能速度极快且不损失观察细节;频谱分析数据精准,单窗可支持65536*64点数据,很好的兼顾了谱分辨率和带宽,适用于用于精密测量。
此外,数据曲线分析器应用简单,支持数据导入和导出,且无需安装即可双击使用!
数据曲线分析器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)。
发表评论
0条评论软件排行榜
热门推荐
- Jamparc官方版 122K / 多国语言[中文]
- 变态手游盒子电脑版 v6.1.402248.84M / 简体中文
- aida64注册机 v1.x72K / 简体中文
- spacedesk pc端 v2.1.20官方版3.33M / 英文
- OutlookAttachView绿色版 v3.52官方版129K / 英文
- pluckydraw抽奖软件 v6.2.7官方版29.75M / 简体中文
- Pocket Animation官方版 v5.2.810.92M / 简体中文
- RAR文件修复软件(RAR fix) v1.0官方版1.36M / 英文
- 梯形明渠水力计算工具官方版 v1.04K / 简体中文
- mapwin32官方版 v1.4.23403K / 简体中文