王園園
(商洛學(xué)院電子信息與電氣工程學(xué)院,陜西商洛726000)
數(shù)據(jù)采集和處理技術(shù)在各個(gè)方面都有廣泛應(yīng)用,在測(cè)量和控制領(lǐng)域,應(yīng)用空間更為廣闊,具有強(qiáng)大的數(shù)據(jù)處理能力的計(jì)算機(jī)成為數(shù)據(jù)采集和處理技術(shù)良好的基礎(chǔ)平臺(tái)[1].常見的數(shù)據(jù)采集結(jié)構(gòu)依賴于傳統(tǒng)的采集-處理-存儲(chǔ)的單行模式[2],易造成數(shù)據(jù)的丟失,影響采集處理速度.此處充分利用LabVIEW 軟件中事件結(jié)構(gòu)的整合功能以及多線程(Multithreading)技術(shù),為整個(gè)系統(tǒng)的數(shù)據(jù)采集和存儲(chǔ)、數(shù)據(jù)分析處理以及波形信號(hào)顯示、文件讀取和存儲(chǔ)等多個(gè)操作自動(dòng)分配優(yōu)先級(jí),保證了獨(dú)立運(yùn)行,避免系統(tǒng)中的各個(gè)獨(dú)立操作時(shí)的調(diào)用阻塞,同時(shí)提高了CPU工作效率,節(jié)省了時(shí)間,保證了系統(tǒng)的可靠性.
系統(tǒng)主要由計(jì)算機(jī)麥克風(fēng)、聲卡以及LabVIEW軟件組成.音頻信號(hào)通過(guò)麥克風(fēng)由聲卡進(jìn)行采集,LabVIEW軟件編程進(jìn)行聲音的采集與處理,并將聲音以波形的形式進(jìn)行顯示.在程序設(shè)計(jì)中將程序劃分為3個(gè)層次.最上層為程序的界面以及與用戶進(jìn)行交互;第2層為功能層,主要進(jìn)行數(shù)據(jù)的采集、分析處理、顯示、存儲(chǔ)等;第3層為聲卡驅(qū)動(dòng),LabVIEW提供了所需要的所有驅(qū)動(dòng).本次設(shè)計(jì)主要針對(duì)第1,2層進(jìn)行設(shè)計(jì).常見程序的采集、處理為單線程運(yùn)行,雖然邏輯簡(jiǎn)單容易設(shè)計(jì),但各模塊之間存在依賴關(guān)系,計(jì)算機(jī)執(zhí)行完前一個(gè)模塊再運(yùn)行下一個(gè)模塊.數(shù)據(jù)采集中,若采樣率高,則處理速度與存儲(chǔ)速度相對(duì)較慢,造成采集數(shù)據(jù)的丟失[3],因此采用“生產(chǎn)者—消費(fèi)者”模式進(jìn)行第2層程序設(shè)計(jì).總體框架結(jié)構(gòu)如圖1所示,通過(guò)隊(duì)列將數(shù)據(jù)采集放在生產(chǎn)者循環(huán)中,數(shù)據(jù)處理和存儲(chǔ)放在消費(fèi)者循環(huán)中,以此實(shí)現(xiàn)多線程采集處理,彼此之間互相關(guān)聯(lián)且不影響程序運(yùn)行速度.
數(shù)據(jù)采集模塊主要進(jìn)行數(shù)據(jù)的采集,其中采用時(shí)間結(jié)構(gòu)響應(yīng)前面板采集按鈕,將采集數(shù)據(jù)放在時(shí)間結(jié)構(gòu)中進(jìn)行處理.數(shù)據(jù)采集模塊利用計(jì)算機(jī)自帶的聲卡,由用戶自主設(shè)置聲音格式、采樣參數(shù)來(lái)獲取聲音數(shù)據(jù).采樣頻率可由用戶自主設(shè)置,根據(jù)聲音的采樣特性,此處可以自主選擇輸入多種采樣頻率,以及選擇不同的通道.采集程序如圖2所示.

圖1 程序總體框架設(shè)計(jì)

圖2 音頻數(shù)據(jù)采集程序
設(shè)計(jì)主要對(duì)采集到的聲音信號(hào)進(jìn)行濾波,并進(jìn)行時(shí)域分析和頻域分析,實(shí)現(xiàn)分析聲音信號(hào)的幅度譜、相位譜和功率譜等功能.時(shí)域分析是一種直接在時(shí)間域中對(duì)波形信號(hào)進(jìn)行分析處理的方法,直觀、準(zhǔn)確,可以對(duì)數(shù)據(jù)采集系統(tǒng)時(shí)間響應(yīng)的全部信息進(jìn)行處理[4].頻域分析是通過(guò)傅里葉變換將時(shí)域信號(hào)變換到頻域,主要用來(lái)分析信號(hào)的頻譜成分,用來(lái)了解信號(hào)的幅度變化和功率變化.數(shù)據(jù)處理模塊流程圖如圖3所示.
后面板程序如圖4所示.當(dāng)外層事件結(jié)構(gòu)的選擇器標(biāo)簽數(shù)值為[1]時(shí),執(zhí)行“開始采集數(shù)據(jù)”.時(shí)間結(jié)構(gòu)內(nèi)側(cè)為層疊式順序結(jié)構(gòu),當(dāng)選擇器標(biāo)簽數(shù)值為數(shù)值為[0]時(shí),執(zhí)行彈窗,讓用戶自己選擇所要處理的文件;當(dāng)選擇器標(biāo)簽數(shù)值為數(shù)值為[1]時(shí),讓用戶選擇是否“分析剛采集到的聲音文件”;當(dāng)選擇器標(biāo)簽數(shù)值為[2]時(shí),開始分析處理文件.數(shù)據(jù)信號(hào)的處理過(guò)程:聲音信號(hào)通過(guò)“讀取并打開文件”,彈窗顯示“輸入啟示和終止時(shí)間”,用戶填好時(shí)間后,再通過(guò)“讀取聲音文件”來(lái)分析聲音信息,再通過(guò)“獲取波形成分”,連接“波形信號(hào)顯示”,顯示聲音信號(hào)波形,分離信號(hào)后,通過(guò)“FFT頻譜處理”獲取頻率譜、功率譜,并在前面板的波形信號(hào)顯示模塊顯示波形.

圖3 數(shù)據(jù)處理模塊流程圖

圖4 數(shù)據(jù)處理部分程序代碼
生產(chǎn)者循環(huán)將采集到的原始數(shù)據(jù)通過(guò)隊(duì)列傳送給存儲(chǔ)循環(huán)程序,程序選擇將數(shù)據(jù)用二進(jìn)制格式進(jìn)行存儲(chǔ),存儲(chǔ)內(nèi)容包括測(cè)試時(shí)間、測(cè)試地點(diǎn)、采樣率等信息.后面板程序如圖5所示.

圖5 數(shù)據(jù)存儲(chǔ)部分程序代碼
程序上層界面,采用直觀的按鈕與布爾控件的形式進(jìn)行參數(shù)選擇,直觀明了,便于操作,原始數(shù)據(jù)與處理后信號(hào)用波形的形式進(jìn)行顯示,前面板程序如圖6所示.

圖6 基于聲卡數(shù)據(jù)采集與處理系統(tǒng)程序界面
測(cè)試結(jié)果表明:該系統(tǒng)具有設(shè)計(jì)簡(jiǎn)便、采樣精度高、擴(kuò)展性好、界面大方簡(jiǎn)潔等特點(diǎn),采用筆記本電腦無(wú)需添加任何硬件就可以構(gòu)成便攜式測(cè)量系統(tǒng).在降低設(shè)備成本的同時(shí),大大提高儀器設(shè)備的靈活性和數(shù)據(jù)處理能力,整個(gè)系統(tǒng)按照模塊化的思想劃分,模塊內(nèi)部功能明確,模塊之間相互獨(dú)立,體現(xiàn)出高內(nèi)聚、低耦合的良好特性.可廣泛應(yīng)用于科學(xué)實(shí)驗(yàn)室與基礎(chǔ)工程測(cè)量.
[1]李超,焦瑞莉,陳家田.基于 LabVIEW的并行數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào),2012,31(1):89-92
[2]周益青,王勇.基于 LabVIEW 軟件的數(shù)據(jù)采集與分析系統(tǒng)[J].制導(dǎo)與引信,2012,33(1):24-28
[3]王福明,于麗霞,劉吉.LabVIEW程序設(shè)計(jì)與虛擬儀器[M].西安:西安電子科技大學(xué)出版社,2009
[4]張宇.基于LabVIEW的數(shù)據(jù)采集與多功能分析系統(tǒng)研究[D].天津:天津工業(yè)大學(xué),2013