基于LabWindows的錄波分析儀的設(shè)計(jì)
3.2 數(shù)據(jù)的采集及存儲(chǔ)
為了避免數(shù)據(jù)阻塞,減少運(yùn)行過程中數(shù)據(jù)采集與用戶界面的影響,本錄波儀的軟件部分采用多線程技術(shù)。LabWindows提供有線程池(th-readpool)和異步定時(shí)器(asynchronous timers)兩種多線程機(jī)制。本文采用線程池及機(jī)制編寫。但采用多線程有可能造成數(shù)據(jù)不必要的改動(dòng)甚至出錯(cuò),因此,LabWindows提供了線程安全隊(duì)列進(jìn)行數(shù)據(jù)保護(hù)。它可將采集到的數(shù)據(jù)寫入安全隊(duì)列,分析數(shù)據(jù)時(shí)再從安全隊(duì)列中取出。數(shù)據(jù)存儲(chǔ)采用二進(jìn)制形式,數(shù)據(jù)采集及存儲(chǔ)的部分程序如下:
3.3 數(shù)據(jù)分析
數(shù)據(jù)分析主要是分析信號的有效值、功率、諧波分量、相位角等信息。諧波分量、相位角分析采用FFT算法,可通過極坐標(biāo)的變換得到;功率譜分析也可利用FFT算法及相應(yīng)算法得到。FFT可以實(shí)現(xiàn)時(shí)域向頻域的轉(zhuǎn)化,其函數(shù)原型為:
Int status=FFT(double x[],double y[],intn);
其中,參數(shù)x輸出為傅立葉變換的實(shí)部,y輸出為傅立葉變換的虛部。x和y既是輸入,也是輸出,n為x,y的長度,并且一定是2的整數(shù)次冪。實(shí)現(xiàn)該功能的核心代碼如下:
4 結(jié)束語
試驗(yàn)結(jié)果顯示,本文設(shè)計(jì)的錄波儀不僅可以實(shí)現(xiàn)傳統(tǒng)錄波儀的功能,而且具有造價(jià)低,使用方便,可實(shí)現(xiàn)資源共享等特點(diǎn)。此外,本系統(tǒng)還可改成分布式系統(tǒng),即采用嵌入式主板加數(shù)據(jù)采集卡,然后通過網(wǎng)絡(luò)上傳數(shù)據(jù)文件,而用上位機(jī)接收數(shù)據(jù),最后進(jìn)行處理并顯示。本文引用地址:http://www.ex-cimer.com/article/195030.htm
評論