武 晨,符為榕
(合肥工業(yè)大學(xué) 噪聲振動(dòng)研究所,安徽 合肥 230009)
與傳統(tǒng)測量儀器的設(shè)計(jì)方法相比,虛擬儀器具有成本低、功能強(qiáng)大、集成度高、質(zhì)量可靠、維護(hù)方便等優(yōu)點(diǎn)。結(jié)合文獻(xiàn)[1,2],本文利用NI公司推出的虛擬儀器開發(fā)平臺(tái)軟件Lab VIEW通過計(jì)算機(jī)上的聲卡編寫了一套多功能數(shù)據(jù)采集與分析系統(tǒng)。
本系統(tǒng)的硬件是筆記本聲卡,聲卡一般有Line In和Mic In兩個(gè)信號(hào)輸入插孔,若由Mic In輸入,由于有前置放大器,容易引入噪聲且會(huì)導(dǎo)致信號(hào)過負(fù)荷,所以本系統(tǒng)使用Line In,其噪聲干擾小且動(dòng)態(tài)特性良好。一般的聲卡最高采樣頻率可達(dá)96 k Hz,采樣位數(shù)可達(dá)16位甚至32位,每路輸入信號(hào)的最高頻率可達(dá)22.05 k Hz,而16位數(shù)字系統(tǒng)的信噪比可達(dá)96 d B。所以聲卡完全可用來對(duì)音頻范圍內(nèi)的信號(hào)進(jìn)行采集,聲卡成本也比專業(yè)數(shù)據(jù)采集卡低,這是該系統(tǒng)優(yōu)勢之一。
該系統(tǒng)利用Lab VIE W的生產(chǎn)者/消費(fèi)者循環(huán)模式搭建總體框架。該模式是NI公司推出的程序設(shè)計(jì)概念,包含多個(gè)并行循環(huán),一個(gè)循環(huán)作為生產(chǎn)數(shù)據(jù)的循環(huán),其他循環(huán)作為處理數(shù)據(jù)的循環(huán),且不會(huì)相互干擾。如果處理數(shù)據(jù)的速度小于生產(chǎn)數(shù)據(jù)的速度,數(shù)據(jù)會(huì)存儲(chǔ)在隊(duì)列函數(shù)創(chuàng)建的緩沖區(qū)內(nèi),當(dāng)數(shù)據(jù)滿足消費(fèi)者循環(huán)的調(diào)用條件時(shí),系統(tǒng)即從緩沖區(qū)中按照“先進(jìn)先出”的原則進(jìn)行讀取隊(duì)列元素操作,隊(duì)列元素調(diào)入其他進(jìn)程進(jìn)行處理的同時(shí),生產(chǎn)循環(huán)還將不斷產(chǎn)生新的元素并送入隊(duì)列,保證生產(chǎn)和消費(fèi)能夠同步地并行執(zhí)行。所以對(duì)于多任務(wù)處理和實(shí)時(shí)性、連續(xù)性要求嚴(yán)格的程序設(shè)計(jì),生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式是較好的選擇。該模式的程序框架如圖1所示。
圖1 生產(chǎn)者/消費(fèi)者模式的程序框圖
該系統(tǒng)利用Lab SQL數(shù)據(jù)庫訪問方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問。在Lab VIE W中使用Lab SQL調(diào)用數(shù)據(jù)庫非常方便、簡單,無需深入了解 Active X技術(shù)和SQL語言,只需知道各vi的功能和數(shù)據(jù)庫的設(shè)計(jì)及相關(guān)概念,即可設(shè)計(jì)出滿足要求的程序。在開發(fā)過程中,選用常用的Access作為數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫訪問的主要程序框圖如圖2所示。
從圖2中可以看出利用簡單的功能函數(shù)的組合就可以方便地對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行添加和刪除等操作。
2.3.1 數(shù)據(jù)采集與存儲(chǔ)模塊
生產(chǎn)者循環(huán)中的數(shù)據(jù)采集程序利用Lab VIEW自帶的聲卡采集函數(shù)vi編寫,這些vi在函數(shù)面板-編程-圖形與聲音-聲音中可以找到,主要用到的是配置聲音輸入、啟動(dòng)聲音輸入、讀取聲音輸入、停止聲音輸入、聲音輸入清零5個(gè)函數(shù)vi。在采集的同時(shí)數(shù)據(jù)將會(huì)根據(jù)指令被存儲(chǔ)為TDMS格式的文件。數(shù)據(jù)采集的前面板如圖3所示。
圖2 實(shí)現(xiàn)數(shù)據(jù)庫訪問的主要程序框圖
圖3 數(shù)據(jù)采集前面板
在數(shù)據(jù)采集時(shí)可以選擇采集方式,數(shù)據(jù)采集程序框圖如圖4所示。
圖4 數(shù)據(jù)采集程序框圖
2.3.2 在線信號(hào)分析模塊
該系統(tǒng)可以在數(shù)據(jù)采集的同時(shí)對(duì)信號(hào)進(jìn)行功率譜分析、FFT變換、聲級(jí)測量、倍頻程分析、窄帶譜分析、聯(lián)合時(shí)頻域分析、相關(guān)分析、相位差測量、頻響函數(shù)與相干函數(shù)分析、倒頻譜分析。運(yùn)用各個(gè)分析模塊或其組合即可實(shí)現(xiàn)信號(hào)的處理與分析。聲級(jí)測量模塊可以直接用作聲級(jí)計(jì);頻譜分析模塊可以在頻域?qū)π盘?hào)進(jìn)行分析,由此確定主要噪聲源;利用頻響函數(shù)模塊和相干分析模塊可以準(zhǔn)確地找到固有頻率。圖5為聲級(jí)測量的前面板,由于篇幅的原因,本文中沒有給出該模塊的程序框圖。
在聲級(jí)測量的程序設(shè)計(jì)中,利用Lab VIEW最新推出的聲音與振動(dòng)工具包,只需把工具包中的函數(shù)進(jìn)行組合便可實(shí)現(xiàn)各種聲音與振動(dòng)的分析,在此我們主要用到3個(gè)子函數(shù)包:Weighting Sound level Octave analysis。
2.3.3 離線分析模塊
離線分析模塊主要是讀取TDMS格式的文件并進(jìn)行分析。該模塊的程序設(shè)計(jì)和在線分析完全一致,用到的函數(shù)都是相同的,可以對(duì)信號(hào)進(jìn)行功率譜分析、倍頻程分析、窄帶譜分析等。因此通過離線分析模塊也可以對(duì)在線分析程序編寫的正確性進(jìn)行驗(yàn)證。下面我們將離線分析模塊與coco80分析儀的分析結(jié)果進(jìn)行對(duì)比以說明該系統(tǒng)的可靠性。
圖5 聲級(jí)測量前面板
某一信號(hào)的離線分析模塊的分析結(jié)果如圖6所示。圖6中,橫坐標(biāo)為頻率(Hz),縱坐標(biāo)為聲壓值(Pa2)。從圖6中可以看到在100 Hz處出現(xiàn)峰值,峰值為0.014 488 7 Pa2。
圖6 離線分析結(jié)果
對(duì)同一信號(hào),用coco80分析儀的分析結(jié)果如圖7所示。圖7中,橫坐標(biāo)為頻率(Hz),縱坐標(biāo)為聲壓值(Pa2)。從coco80分析儀的結(jié)果中可以看出主要頻率成分和該系統(tǒng)離線分析的結(jié)果一致。證明了該系統(tǒng)的正確性。
圖7 coco80分析儀結(jié)果
本文利用Lab VIEW開發(fā)平臺(tái)和計(jì)算機(jī)聲卡,開發(fā)了一款操作簡單、具有友好的人機(jī)交互界面的數(shù)據(jù)采集及分析系統(tǒng)。該系統(tǒng)利用生產(chǎn)者/消費(fèi)者循環(huán)模式,實(shí)現(xiàn)聲卡數(shù)據(jù)的采集進(jìn)程和數(shù)據(jù)處理并行執(zhí)行,還可進(jìn)行離線分析。同時(shí)數(shù)據(jù)庫技術(shù)的應(yīng)用增加了系統(tǒng)的安全性和專業(yè)性。另外,Lab VIE W聲音與振動(dòng)工具包和自己編寫的功能模塊使得系統(tǒng)的結(jié)構(gòu)更加清晰合理,便于維護(hù)和擴(kuò)展。最后結(jié)合實(shí)例與現(xiàn)在的主流分析儀coco80進(jìn)行對(duì)比,說明了該系統(tǒng)的可靠性。
[1]尚曉輝,王健,劉銳,等.基于Lab VIEW的聲卡數(shù)據(jù)采集與實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)[J].軍事通訊技術(shù),2012,33(2):77-80.
[2]于琳,陳健.基于Lab VIEW的聲卡信號(hào)采集及其分析系統(tǒng)設(shè)計(jì)[J].儀器儀表用戶,2009,16(4):40-42.