王園園
(商洛學院電子信息與電氣工程學院,陜西商洛726000)
數(shù)據(jù)采集和處理技術(shù)在各個方面都有廣泛應(yīng)用,在測量和控制領(lǐng)域,應(yīng)用空間更為廣闊,具有強大的數(shù)據(jù)處理能力的計算機成為數(shù)據(jù)采集和處理技術(shù)良好的基礎(chǔ)平臺[1].常見的數(shù)據(jù)采集結(jié)構(gòu)依賴于傳統(tǒng)的采集-處理-存儲的單行模式[2],易造成數(shù)據(jù)的丟失,影響采集處理速度.此處充分利用LabVIEW 軟件中事件結(jié)構(gòu)的整合功能以及多線程(Multithreading)技術(shù),為整個系統(tǒng)的數(shù)據(jù)采集和存儲、數(shù)據(jù)分析處理以及波形信號顯示、文件讀取和存儲等多個操作自動分配優(yōu)先級,保證了獨立運行,避免系統(tǒng)中的各個獨立操作時的調(diào)用阻塞,同時提高了CPU工作效率,節(jié)省了時間,保證了系統(tǒng)的可靠性.
系統(tǒng)主要由計算機麥克風、聲卡以及LabVIEW軟件組成.音頻信號通過麥克風由聲卡進行采集,LabVIEW軟件編程進行聲音的采集與處理,并將聲音以波形的形式進行顯示.在程序設(shè)計中將程序劃分為3個層次.最上層為程序的界面以及與用戶進行交互;第2層為功能層,主要進行數(shù)據(jù)的采集、分析處理、顯示、存儲等;第3層為聲卡驅(qū)動,LabVIEW提供了所需要的所有驅(qū)動.本次設(shè)計主要針對第1,2層進行設(shè)計.常見程序的采集、處理為單線程運行,雖然邏輯簡單容易設(shè)計,但各模塊之間存在依賴關(guān)系,計算機執(zhí)行完前一個模塊再運行下一個模塊.數(shù)據(jù)采集中,若采樣率高,則處理速度與存儲速度相對較慢,造成采集數(shù)據(jù)的丟失[3],因此采用“生產(chǎn)者—消費者”模式進行第2層程序設(shè)計.總體框架結(jié)構(gòu)如圖1所示,通過隊列將數(shù)據(jù)采集放在生產(chǎn)者循環(huán)中,數(shù)據(jù)處理和存儲放在消費者循環(huán)中,以此實現(xiàn)多線程采集處理,彼此之間互相關(guān)聯(lián)且不影響程序運行速度.
數(shù)據(jù)采集模塊主要進行數(shù)據(jù)的采集,其中采用時間結(jié)構(gòu)響應(yīng)前面板采集按鈕,將采集數(shù)據(jù)放在時間結(jié)構(gòu)中進行處理.數(shù)據(jù)采集模塊利用計算機自帶的聲卡,由用戶自主設(shè)置聲音格式、采樣參數(shù)來獲取聲音數(shù)據(jù).采樣頻率可由用戶自主設(shè)置,根據(jù)聲音的采樣特性,此處可以自主選擇輸入多種采樣頻率,以及選擇不同的通道.采集程序如圖2所示.
圖1 程序總體框架設(shè)計
圖2 音頻數(shù)據(jù)采集程序
設(shè)計主要對采集到的聲音信號進行濾波,并進行時域分析和頻域分析,實現(xiàn)分析聲音信號的幅度譜、相位譜和功率譜等功能.時域分析是一種直接在時間域中對波形信號進行分析處理的方法,直觀、準確,可以對數(shù)據(jù)采集系統(tǒng)時間響應(yīng)的全部信息進行處理[4].頻域分析是通過傅里葉變換將時域信號變換到頻域,主要用來分析信號的頻譜成分,用來了解信號的幅度變化和功率變化.數(shù)據(jù)處理模塊流程圖如圖3所示.
后面板程序如圖4所示.當外層事件結(jié)構(gòu)的選擇器標簽數(shù)值為[1]時,執(zhí)行“開始采集數(shù)據(jù)”.時間結(jié)構(gòu)內(nèi)側(cè)為層疊式順序結(jié)構(gòu),當選擇器標簽數(shù)值為數(shù)值為[0]時,執(zhí)行彈窗,讓用戶自己選擇所要處理的文件;當選擇器標簽數(shù)值為數(shù)值為[1]時,讓用戶選擇是否“分析剛采集到的聲音文件”;當選擇器標簽數(shù)值為[2]時,開始分析處理文件.數(shù)據(jù)信號的處理過程:聲音信號通過“讀取并打開文件”,彈窗顯示“輸入啟示和終止時間”,用戶填好時間后,再通過“讀取聲音文件”來分析聲音信息,再通過“獲取波形成分”,連接“波形信號顯示”,顯示聲音信號波形,分離信號后,通過“FFT頻譜處理”獲取頻率譜、功率譜,并在前面板的波形信號顯示模塊顯示波形.
圖3 數(shù)據(jù)處理模塊流程圖
圖4 數(shù)據(jù)處理部分程序代碼
生產(chǎn)者循環(huán)將采集到的原始數(shù)據(jù)通過隊列傳送給存儲循環(huán)程序,程序選擇將數(shù)據(jù)用二進制格式進行存儲,存儲內(nèi)容包括測試時間、測試地點、采樣率等信息.后面板程序如圖5所示.
圖5 數(shù)據(jù)存儲部分程序代碼
程序上層界面,采用直觀的按鈕與布爾控件的形式進行參數(shù)選擇,直觀明了,便于操作,原始數(shù)據(jù)與處理后信號用波形的形式進行顯示,前面板程序如圖6所示.
圖6 基于聲卡數(shù)據(jù)采集與處理系統(tǒng)程序界面
測試結(jié)果表明:該系統(tǒng)具有設(shè)計簡便、采樣精度高、擴展性好、界面大方簡潔等特點,采用筆記本電腦無需添加任何硬件就可以構(gòu)成便攜式測量系統(tǒng).在降低設(shè)備成本的同時,大大提高儀器設(shè)備的靈活性和數(shù)據(jù)處理能力,整個系統(tǒng)按照模塊化的思想劃分,模塊內(nèi)部功能明確,模塊之間相互獨立,體現(xiàn)出高內(nèi)聚、低耦合的良好特性.可廣泛應(yīng)用于科學實驗室與基礎(chǔ)工程測量.
[1]李超,焦瑞莉,陳家田.基于 LabVIEW的并行數(shù)據(jù)采集系統(tǒng)設(shè)計[J].遼寧工程技術(shù)大學學報,2012,31(1):89-92
[2]周益青,王勇.基于 LabVIEW 軟件的數(shù)據(jù)采集與分析系統(tǒng)[J].制導與引信,2012,33(1):24-28
[3]王福明,于麗霞,劉吉.LabVIEW程序設(shè)計與虛擬儀器[M].西安:西安電子科技大學出版社,2009
[4]張宇.基于LabVIEW的數(shù)據(jù)采集與多功能分析系統(tǒng)研究[D].天津:天津工業(yè)大學,2013