Curve俗稱數(shù)據(jù)曲線分析器,是一款用于曲線形式查看工程試驗中生成的文本文件數(shù)據(jù)工具,程序內(nèi)置了對曲線的變換操作和數(shù)據(jù)處理功能,主要有曲線算法、標(biāo)記線窗、動態(tài)模擬、頻譜分析等應(yīng)用模塊,便于分析。其中曲線繪制采用高效的聚點算法,即使對于長曲線,在伸縮變換時仍能速度極快且不損失觀察細(xì)節(jié);頻譜分析數(shù)據(jù)精準(zhǔn),單窗可支持65536*64點數(shù)據(jù),很好的兼顧了譜分辨率和帶寬,適用于用于精密測量。
此外,數(shù)據(jù)曲線分析器應(yīng)用簡單,支持?jǐn)?shù)據(jù)導(dǎo)入和導(dǎo)出,且無需安裝即可雙擊使用!
數(shù)據(jù)曲線分析器Curve使用方法
1、導(dǎo)入、導(dǎo)出數(shù)據(jù)
單擊"導(dǎo)入數(shù)據(jù)"按鈕,可從文件導(dǎo)入數(shù)據(jù)序列,初始數(shù)據(jù)為"曲線一",對初始數(shù)據(jù)變換后生成二級曲線"曲線二",對"曲線二"變換后稱"曲線三",三條曲線在同一坐標(biāo)系下以不同顏色顯示;變換后的數(shù)據(jù)被存儲在各自的內(nèi)存緩沖區(qū)中,不影響其前級數(shù)據(jù)。
2、源文件格式
數(shù)據(jù)文件為文本文件,可以單列或多列形式存儲;各行應(yīng)整齊,即每行列數(shù)相同,列間以空格或Tab分隔,多個連續(xù)空格或Tab被視為1個;對每個數(shù)據(jù)的字符個數(shù)不限制(即每行長度可以不齊),每行列數(shù)相同即可;
系統(tǒng)會根據(jù)設(shè)定的列號提取一列數(shù)據(jù)作為初始數(shù)據(jù)(首列列號為1),提取時會忽略掉不被提取的其它列,僅讀取指定列,因而其它列可以是任意字符,提取列則要求為數(shù)值形式;
數(shù)值無論是否帶小數(shù)點,都被視為double,合法的數(shù)值為C正則"%lf"字符串格式,例如: +69352,618,0,-4,1.7,-87.1899,2.3E-6 等;
文件被導(dǎo)入時系統(tǒng)會自動預(yù)覽顯示,可根據(jù)預(yù)覽自行設(shè)定參數(shù);
3、曲線算法
曲線算法是指生成曲線數(shù)據(jù)時使用的方法,對于"初始曲線",只能從文件中導(dǎo)入數(shù)據(jù)(也可以進(jìn)程通信直接內(nèi)存交換,已保留該接口);對二級、三級曲線的數(shù)據(jù),則由其前級曲線經(jīng)過算法運算得到;
每次點擊算法列表中的選項時,對應(yīng)的曲線數(shù)據(jù)生成一次,反復(fù)改變算法只影響本級的結(jié)果,不影響其前級曲線;算法改變時,用前級數(shù)據(jù)重新運算一次,而不是在本級原有結(jié)果的基礎(chǔ)上再疊加算法;
變換后的曲線數(shù)據(jù)可執(zhí)行"導(dǎo)出數(shù)據(jù)"被保存至新的文本文件中;導(dǎo)出時可以指定數(shù)據(jù)選項以及是否以.csv格式存儲(該格式可被Excel識別);
4、多列數(shù)據(jù)查看
三條曲線中只有"初始數(shù)據(jù)"是從文件中導(dǎo)入的,另外兩條均是在內(nèi)存中變換生成的;如果數(shù)據(jù)文件中包含多列數(shù)據(jù),想同時對比觀察,可逐條導(dǎo)入后,利用變換算法中的"復(fù)制前級"將曲線移至二三級緩沖區(qū),然后再導(dǎo)入另一列,這樣,曲線窗中即可以對比同一數(shù)據(jù)文件中的多列數(shù)據(jù)(目前限制為三條曲線,軟件保留有一次導(dǎo)入更多條曲線的接口);
也可以靈活使用"數(shù)據(jù)導(dǎo)出"功能,將曲線暫存為文件,需要時再導(dǎo)入。
5、曲線操作(先通過Tab鍵或單擊使曲線窗獲得焦點)
鼠標(biāo)方式
切換活動曲線:左鍵單擊輔助鈕(左上角)
X方向縮放:滾輪
Y方向縮放:Ctrl+滾輪
X方向平移:
Y方向平移:
自動顯示全部:左 雙擊繪圖區(qū)
1:1初始顯示:右 雙擊繪圖區(qū)
鍵盤方式
Ctrl + Tab
← →
↑ ↓
Ctrl + ← →
Ctrl + ↑ ↓
Ctrl + a/A
a/A
其他:
開/關(guān)標(biāo)記窗功能: Ctrl+左雙擊標(biāo)記"開"字符
鎖定/解鎖窗寬: Ctrl+左雙擊寬"鎖定"字符 (標(biāo)記窗開時才有效)
標(biāo)記區(qū)起點: Ctrl+左雙擊繪圖區(qū) (標(biāo)記窗開時才有效)
標(biāo)記區(qū)止點: Ctrl+右雙擊繪圖區(qū) (標(biāo)記窗開時才有效)
頻譜查看: Ctrl+左單擊Fn按鈕/F1
退出程序:ESC
注:當(dāng)多條曲線疊加顯示時,其中有一條是"活動曲線",或稱"當(dāng)前曲線";視值顯示、標(biāo)記窗和頻譜分析都是針對"活動曲線"的;任意一條曲線均可切換為"活動曲線",界面上會有顏色變換區(qū)分;
6、視值
視值是指根據(jù)坐標(biāo)刻線的標(biāo)示量讀出的曲線點的數(shù)值;
本系統(tǒng)中,y軸視值與初始數(shù)據(jù)的量值完全相等(不因曲線變換而改變);x軸的視值默認(rèn)等于數(shù)據(jù)點序號(0,1,2,...);導(dǎo)入數(shù)據(jù)時若指定了采樣頻率,x視值會被修正為以秒(s)為單位的時間量;按照x坐標(biāo)軸刻線讀出的是s;
如果采樣頻率設(shè)定準(zhǔn)確,相應(yīng)的頻譜曲線頻率軸視值單位為Hz,也已被修正準(zhǔn)確,可直接讀出;
曲線平移時,窗口頂部會實時顯示曲線上最左點的數(shù)值(視值);查看其它點數(shù)值可通過平移曲線完成(也可以采用挪動標(biāo)記線方式);
7、標(biāo)記線/窗
當(dāng)在曲線窗繪圖區(qū)外的"標(biāo)記:關(guān)"按鈕上Ctrl+左雙擊后,會開啟數(shù)據(jù)標(biāo)記功能,數(shù)據(jù)標(biāo)記默認(rèn)為單點模式,標(biāo)記為一條豎線(寬度為1);繪圖區(qū)上任意點Ctrl+左雙擊,會使標(biāo)記線移動到該點,并顯示該點的數(shù)據(jù)值;
標(biāo)記開啟后,單擊"寬:鎖定"按鈕,可將標(biāo)記寬度設(shè)為可變,此時,在曲線窗中任意點Ctrl+右雙擊,會使標(biāo)記變?yōu)橐欢未翱?,?biāo)記窗中的數(shù)據(jù)即被選中;
8、算法明細(xì)
軟件保留有自定義算法接口,內(nèi)置算法如下:
復(fù)制前級: 不做任何處理,將前級數(shù)據(jù)拷貝至本級;
一階差分: 求一階導(dǎo)數(shù)(速度),本級本點=前級本點-前級前點
二階差分: 二階導(dǎo)數(shù):本級本點=前級前點+前級后點-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、動態(tài)模擬
動態(tài)模擬是一種在事后將數(shù)據(jù)流從數(shù)據(jù)窗動態(tài)滑過,以模擬數(shù)據(jù)時間變化的功能;按住Ctrl并單擊Fn按鈕,系統(tǒng)即開始對原始數(shù)據(jù)曲線進(jìn)行動態(tài)模擬;動態(tài)模擬刷新由定時器自動執(zhí)行(設(shè)為10ms一次,但未必準(zhǔn)確);模擬時的曲線平移速度由滑動步長調(diào)節(jié),滑動步長可以是2,4,8,10,20,40,80,100點;在動態(tài)模擬時點按Alt鍵即可自動切換步長;
10、頻譜分析
點擊Fn按鈕,即可打開頻譜窗,并查看標(biāo)記區(qū)內(nèi)數(shù)據(jù)的頻譜,頻譜窗內(nèi)曲線的操作與5所述相同;
系統(tǒng)只有在標(biāo)記窗打開,并選定數(shù)據(jù)時,才允許查看頻譜;系統(tǒng)會自動將標(biāo)記窗內(nèi)的數(shù)據(jù)截取為2的n次冪長,以便于FFT計算(例如標(biāo)記窗內(nèi)有1035點數(shù)據(jù),則譜分析實際使用的是其前1024點);
由于FFT變換得到的是完全對稱的雙邊譜,為提高效率,頻譜窗中只顯示其幅值譜的單邊一半,并進(jìn)行視值校準(zhǔn),可在由坐標(biāo)軸直接讀數(shù);
當(dāng)系統(tǒng)進(jìn)行動態(tài)模擬時,或由外部進(jìn)程動態(tài)注入數(shù)據(jù)時,隨著時域窗中數(shù)據(jù)的刷新,頻譜窗也會隨之動態(tài)刷新;
11、使用限制
1) 文件單行長: 32768字符;
2) 可瀏覽行數(shù): 4194304行;導(dǎo)入時有跳行功能,理論上長度無限制;
系統(tǒng)保留有單次查看更多行的配置接口;
3) 單譜窗點數(shù): 4194304點;
數(shù)據(jù)曲線分析器外部接口
外部接口:
外部進(jìn)程可采用進(jìn)程通信方式直接向Curve的共享緩沖區(qū)中寫入數(shù)據(jù),并更新曲線;
步驟如下:
OpenFileMapping();
MapViewOfFile();
buf[0]=..;
buf[1]=..;//操作緩沖區(qū)
...
UnmapViewOfFile();
CloseHandle();
PostMessage();
過程描述:
(1) 打開內(nèi)存映像文件,映像名字為"LiXueLei_SharedCurveMemory",
(2) 成功后,將映像映射到本地內(nèi)存地址空間;會獲得一個本進(jìn)程中的內(nèi)存地址指針;(注意:如果Curve.exe未運行,打開時會失敗,因而應(yīng)在此之前先啟動Curve程序)
(3) 進(jìn)程中用這個地址指針操作內(nèi)存,就可以改寫作曲線的數(shù)據(jù)區(qū);
映像區(qū)的格式:
offset(byte) 類型 元素個數(shù) 內(nèi)容
0~3 long 1 本次修改的數(shù)據(jù)長度n(點數(shù))
4~7 float 1 數(shù)據(jù)的采樣頻率(Hz數(shù))
8~15 double 1 data[0] --\
16~23 double 1 data[1] \
24~32 double 1 data[2] |---共n點;
... /
... _ / (n個double)
(4) 操作完成后撤銷在本地進(jìn)程的地址映射并關(guān)閉映像文件;
(5) 最后向Curve主窗口發(fā)送一條數(shù)據(jù)更新消息:
取窗口句柄:
::FindWindow(NULL,"數(shù)據(jù)曲線分析器 Curve2.1");
消息號定義:
::RegisterWindowMessage(_T("LixlCurveMsg_BufferModified"));
然后用::PostMessage()就可以了;可參閱MSDN;
細(xì)節(jié)補(bǔ)充:
Curve.exe軟件中這樣創(chuàng)建的映像區(qū),看完這段,緩沖區(qū)結(jié)構(gòu)就清楚了,同行人士都懂,不再贅述!
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"
);
曲線數(shù)據(jù)區(qū)預(yù)留: MaxCurveLength=65536*64 點;一般足夠用了;實際上曲線刷新是以nSize規(guī)定的點數(shù)為上限的;
還有就是:
Curve.exe運行時當(dāng)共享緩沖區(qū)創(chuàng)建成功,會廣播一條消息,消息號:
::RegisterWindowMessage(_T("LixlCurveMsg_CurveAppInit"));
Curve.exe在退出時,也會廣播一條消息,消息號:
::RegisterWindowMessage(_T("LixlCurveMsg_CurveAppExit"));
可根據(jù)這些消息進(jìn)行相應(yīng)的處理;
軟件特色
1、Curve數(shù)據(jù)曲線分析器中文版支持對Y向比例、X向比例查看。
2、也可對初始數(shù)據(jù)、左側(cè)點好進(jìn)行快速的了解。
3、可以對需要的數(shù)據(jù)進(jìn)行快速的導(dǎo)出。
4、對需要的曲線進(jìn)行快速的添加,自定義的選擇。
更新日志
v2.1版本
1、增加頻譜自動提取至剪貼板功能。
2、增加導(dǎo)出頻譜序列對功能(F2)。
- 下載地址
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- Jamparc官方版 122K / 多國語言[中文]
- 變態(tài)手游盒子電腦版 v6.1.402248.84M / 簡體中文
- aida64注冊機(jī) 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文件修復(fù)軟件(RAR fix) v1.0官方版1.36M / 英文
- 梯形明渠水力計算工具官方版 v1.04K / 簡體中文
- mapwin32官方版 v1.4.23403K / 簡體中文