呂華溢,王 波,黃 晗,謝 政,張金換
(1.清華大學(xué)汽車(chē)安全與節(jié)能?chē)?guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100084;2.長(zhǎng)安汽車(chē)智能化研究院,重慶 401120)
工業(yè)設(shè)備及自動(dòng)化裝置在工作過(guò)程中產(chǎn)生的噪聲是一種主要環(huán)境污染源[1-2]。常規(guī)的聲級(jí)計(jì)主要以檢測(cè)聲壓幅值為主,缺乏噪聲頻域信息,數(shù)據(jù)保存及離線處理不便,不適宜長(zhǎng)期在線監(jiān)測(cè)、設(shè)備價(jià)格昂貴。聲卡已經(jīng)成為計(jì)算機(jī)的標(biāo)準(zhǔn)配置設(shè)備,遵循統(tǒng)一的軟硬件接口規(guī)范、具有16位的模/數(shù)轉(zhuǎn)換精度和不低于44.1 kHz的采樣頻率,因此可基于聲卡外接傳聲器采集噪聲信號(hào),并通過(guò)編寫(xiě)計(jì)算機(jī)程序進(jìn)行數(shù)據(jù)的實(shí)時(shí)處理、顯示和保存。
基于計(jì)算機(jī)聲卡的數(shù)據(jù)采集、處理軟件開(kāi)發(fā)主要有3種實(shí)現(xiàn)方法:基于MATLAB實(shí)現(xiàn)[3-4],利用其數(shù)據(jù)采集工具箱(Data Acquisition Toolbox)提供的數(shù)據(jù)采集函數(shù)控制聲卡獲取信號(hào)數(shù)據(jù),該方法優(yōu)勢(shì)在于MATLAB提供了豐富的數(shù)據(jù)處理函數(shù),易于進(jìn)行數(shù)據(jù)后期處理分析,劣勢(shì)在于未安裝MATLAB的計(jì)算機(jī)需要安裝MCR(MATLAB Compiler Runtime)后才可運(yùn)行開(kāi)發(fā)的程序;基于LabVIEW[5-6]實(shí)現(xiàn),利用圖形化編程語(yǔ)言配置聲卡參數(shù)并獲取、處理信號(hào)數(shù)據(jù),該方法優(yōu)勢(shì)在于軟件開(kāi)發(fā)直觀、簡(jiǎn)潔,數(shù)據(jù)處理模塊較豐富,劣勢(shì)在于開(kāi)發(fā)的程序在發(fā)布時(shí)需將運(yùn)行支持環(huán)境Runtime Engine共同打包,造成軟件安裝包過(guò)大;基于Visual Studio實(shí)現(xiàn)[7-8],利用DirectX提供的多媒體編程函數(shù)獲取聲卡信號(hào)數(shù)據(jù),該方法優(yōu)勢(shì)在于開(kāi)發(fā)的程序可在其他運(yùn)行Windows操作系統(tǒng)的計(jì)算機(jī)上運(yùn)行,軟件兼容性好,劣勢(shì)在于軟件開(kāi)發(fā)難度較高,數(shù)據(jù)處理函數(shù)不夠豐富。
比較上述3種實(shí)現(xiàn)方法,針對(duì)工業(yè)設(shè)備噪聲采集與分析的需求特點(diǎn),本文采用Visual Studio工具包中的C#作為軟件開(kāi)發(fā)工具,實(shí)現(xiàn)了通過(guò)DirectX接口函數(shù)獲取聲卡數(shù)據(jù),并實(shí)時(shí)進(jìn)行頻域分析、波形顯示與數(shù)據(jù)保存的功能。
噪聲在振動(dòng)形式上屬于縱波,作為一種機(jī)械波作用在傳聲器的敏感元件上,可實(shí)現(xiàn)由機(jī)械振動(dòng)到電信號(hào)的能量轉(zhuǎn)換;聲卡通過(guò)自身的模/數(shù)轉(zhuǎn)換器件經(jīng)采樣、量化后將該模擬電信號(hào)變換為相應(yīng)的數(shù)字信號(hào);經(jīng)由計(jì)算機(jī)內(nèi)部數(shù)據(jù)總線發(fā)送到內(nèi)部存儲(chǔ)器,CPU根據(jù)所運(yùn)行軟件的指令對(duì)噪聲數(shù)據(jù)進(jìn)行處理和分析;經(jīng)過(guò)處理后的噪聲數(shù)據(jù)仍存放在內(nèi)部存儲(chǔ)器中,根據(jù)軟件指令分別由顯示設(shè)備將噪聲數(shù)據(jù)和處理結(jié)果以波形圖等形式進(jìn)行顯示,以及將噪聲數(shù)據(jù)以文件的形式保存到計(jì)算機(jī)的外存儲(chǔ)器中。系統(tǒng)整體工作原理示意圖如圖1所示。
圖1 系統(tǒng)工作原理示意圖
噪聲采集與分析系統(tǒng)的構(gòu)成可分為傳聲器、采集設(shè)備和計(jì)算機(jī)部分,如圖2所示。其中傳聲器由麥克風(fēng)實(shí)現(xiàn),通過(guò)3.5 mm同軸音頻線纜連接至計(jì)算機(jī)中由聲卡實(shí)現(xiàn)的采集設(shè)備接口上,計(jì)算機(jī)完成噪聲數(shù)據(jù)的分析處理后,通過(guò)自身的顯示器和硬盤(pán)實(shí)現(xiàn)結(jié)果顯示和數(shù)據(jù)保存。
圖2 系統(tǒng)組成結(jié)構(gòu)圖
系統(tǒng)的硬件構(gòu)成基于現(xiàn)有計(jì)算機(jī)和聲卡,因此噪聲采集與分析系統(tǒng)的實(shí)現(xiàn)主要以軟件開(kāi)發(fā)為主,包括噪聲數(shù)據(jù)采集、頻譜分析、時(shí)域和頻域數(shù)據(jù)顯示、噪聲數(shù)據(jù)保存功能模塊,如圖3所示。
圖3 噪聲采集與分析系統(tǒng)功能模塊
噪聲采集與分析系統(tǒng)基于.Net平臺(tái)采用C#語(yǔ)言開(kāi)發(fā),不需要直接調(diào)用Windows操作系統(tǒng)的API函數(shù)即可實(shí)現(xiàn)用戶(hù)操作界面、數(shù)據(jù)顯示和文件保存等功能;聲卡數(shù)據(jù)獲取通過(guò)調(diào)用DirectX多媒體接口函數(shù)實(shí)現(xiàn)。軟件整體架構(gòu)采用面向?qū)ο蟮脑O(shè)計(jì)方法和模塊化實(shí)現(xiàn)方式,通過(guò)用戶(hù)或系統(tǒng)定時(shí)器觸發(fā)調(diào)用相關(guān)函數(shù)模塊完成功能需求,軟件架構(gòu)工作流程如圖4所示。
圖4 軟件工作流程圖
系統(tǒng)啟動(dòng)后首先進(jìn)行用戶(hù)界面初始化和聲卡設(shè)備的枚舉初始化,聲卡初始化成功則顯示系統(tǒng)用戶(hù)界面,等待用戶(hù)操作觸發(fā)相應(yīng)功能函數(shù)模塊;初始化失敗則直接退出系統(tǒng)。如果用戶(hù)選擇保存噪聲數(shù)據(jù),系統(tǒng)將建立wav格式的聲音文件頭,用以記錄保存噪聲音頻文件。用戶(hù)啟動(dòng)噪聲數(shù)據(jù)的采集分析后,系統(tǒng)將實(shí)時(shí)獲取聲卡數(shù)據(jù)存入內(nèi)部存儲(chǔ)器中建立的緩沖區(qū),系統(tǒng)定時(shí)器將周期性地觸發(fā)操作從緩沖區(qū)讀取噪聲數(shù)據(jù)進(jìn)行頻譜分析、時(shí)域和頻域波形顯示,以及噪聲音頻文件保存。用戶(hù)停止數(shù)據(jù)采集后,系統(tǒng)定時(shí)器將停止觸發(fā)不再進(jìn)行頻譜分析和波形顯示更新,所保存的音頻文件進(jìn)行關(guān)閉。噪聲采集與分析系統(tǒng)軟件界面如圖5所示,其中1為頻域波形顯示,2為時(shí)域波形顯示,3為噪聲量值顯示,4為文件保存設(shè)置按鈕,5為系統(tǒng)啟動(dòng)/停止按鈕,6為系統(tǒng)退出按鈕。
圖5 噪聲采集與分析系統(tǒng)軟件界面
聲卡采集參數(shù)需在Windows操作系統(tǒng)的控制面板項(xiàng)“聲音”中進(jìn)行設(shè)置,本文中設(shè)置模/數(shù)轉(zhuǎn)換精度為16位,采樣頻率為44.1 kHz,根據(jù)Nyquist采樣定理可以滿(mǎn)足對(duì)人耳聽(tīng)力范圍20 kHz內(nèi)的噪聲信號(hào)進(jìn)行頻譜分析的要求。噪聲信號(hào)在保存為wav格式的聲音文件時(shí),需要在文件頭中寫(xiě)明聲音數(shù)據(jù)的采樣頻率、轉(zhuǎn)換精度,以及由這2個(gè)參數(shù)決定的存儲(chǔ)塊對(duì)齊標(biāo)識(shí)和每s數(shù)據(jù)字節(jié)數(shù),保證聲音文件數(shù)據(jù)在回放時(shí)可以被正確解析處理。
噪聲信號(hào)的頻域信息采用快速傅里葉變換方法(FFT)計(jì)算得到,本文中所使用FFT處理方法為基于FFTW[9]所開(kāi)發(fā)的C語(yǔ)言開(kāi)源代碼修改適配,遵循開(kāi)源軟件的GPL許可證(GNU General Public License)版權(quán)規(guī)定[10]。
噪聲采集與分析系統(tǒng)中設(shè)置的系統(tǒng)定時(shí)器觸發(fā)間隔為250 ms,如圖4所示,在定時(shí)器到期后將從緩沖區(qū)讀取此段時(shí)間內(nèi)的噪聲數(shù)據(jù)進(jìn)行FFT計(jì)算得到頻域信息,并在軟件界面中顯示噪聲的時(shí)域和頻域波形,因此系統(tǒng)軟件界面的波形顯示刷新頻率為4 Hz。由聲卡采樣頻率44.1 kHz和FFT計(jì)算周期250 ms,可知FFT的計(jì)算點(diǎn)數(shù)為11 025個(gè),因此系統(tǒng)的噪聲頻譜分辨率為4 Hz。
在本系統(tǒng)的設(shè)計(jì)中傳聲器采用YC-LM20型麥克風(fēng)實(shí)現(xiàn),通過(guò)音頻線纜連接至聲卡,并由計(jì)算機(jī)對(duì)聲卡模/數(shù)轉(zhuǎn)換后得到的量化數(shù)據(jù)進(jìn)行處理。因此,需要建立噪聲幅值與聲卡量化步長(zhǎng)二者之間的對(duì)應(yīng)關(guān)系。參考GB/T 12060.4—2012《聲系統(tǒng)設(shè)備:第4部分 傳聲器測(cè)量方法》、JJG 482—2005《實(shí)驗(yàn)室標(biāo)準(zhǔn)傳聲器(自由場(chǎng)互易法)檢定規(guī)程》和JJG 1019—2007《工作標(biāo)準(zhǔn)傳聲器(耦合腔比較法)檢定規(guī)程》等[11-13]中所給出的傳聲器靈敏度標(biāo)定方法,對(duì)本文中所設(shè)計(jì)的噪聲采集與分析系統(tǒng)采用與聲級(jí)計(jì)測(cè)量值比較的方法,進(jìn)行噪聲幅值標(biāo)定,其原理如圖6所示,聲源發(fā)射頻率1 kHz的正弦波噪聲信號(hào),被與聲源距離相等的聲級(jí)計(jì)和待標(biāo)定系統(tǒng)傳聲器所接收,分別輸出單位為dB的噪聲幅值以及被聲卡模/數(shù)轉(zhuǎn)換后的量化值,將二者相除即得到待標(biāo)定系統(tǒng)的噪聲幅值靈敏度,單位為dB/量化步長(zhǎng)。
圖6 噪聲幅值標(biāo)定方法示意圖
按照上述方法對(duì)所設(shè)計(jì)系統(tǒng)進(jìn)行標(biāo)定測(cè)試,聲源發(fā)出頻率為1 kHz正弦波的94 dB噪聲激勵(lì)信號(hào),標(biāo)定過(guò)程中系統(tǒng)軟件界面所顯示的測(cè)試數(shù)據(jù)波形如圖7所示,通過(guò)計(jì)算得到噪聲采集與分析系統(tǒng)的噪聲幅值靈敏度為0.14 dB/量化步長(zhǎng)。
圖7 系統(tǒng)靈敏度標(biāo)定數(shù)據(jù)波形
使用本文中所設(shè)計(jì)的噪聲采集與分析系統(tǒng)經(jīng)過(guò)標(biāo)定后,對(duì)試驗(yàn)室內(nèi)加速牽引裝置電機(jī)及配電柜制冷系統(tǒng)在工作時(shí)產(chǎn)生的噪聲進(jìn)行了現(xiàn)場(chǎng)實(shí)時(shí)測(cè)試。將傳聲器設(shè)置在距噪聲源5 m處,系統(tǒng)所記錄到的噪聲時(shí)域波形和實(shí)時(shí)分析得到的噪聲頻域波形如圖8所示,可知被測(cè)現(xiàn)場(chǎng)噪聲等級(jí)已接近90 dB,噪聲頻率主要分布在12 kHz以?xún)?nèi),在1 kHz、1.8 kHz、3.9 kHz、7 kHz和10 kHz頻率點(diǎn)附近存在較顯著的噪聲頻譜波峰。
圖8 噪聲現(xiàn)場(chǎng)測(cè)試記錄
本文設(shè)計(jì)了一種基于計(jì)算機(jī)聲卡的噪聲采集與頻譜分析系統(tǒng),該系統(tǒng)采用Visual Studio工具包中的C#語(yǔ)言開(kāi)發(fā),實(shí)現(xiàn)通過(guò)DirectX接口函數(shù)操作聲卡并獲取噪聲數(shù)據(jù),能夠?qū)崟r(shí)完成對(duì)數(shù)據(jù)進(jìn)行時(shí)域波形顯示、頻域分析與顯示、wav格式聲音文件保存的功能。參考傳聲器靈敏度標(biāo)定的國(guó)標(biāo)與檢定規(guī)程,使用聲級(jí)計(jì)對(duì)本文中所設(shè)計(jì)系統(tǒng)進(jìn)行了噪聲幅值標(biāo)定,其靈敏度為0.14 dB/量化步長(zhǎng);所設(shè)計(jì)系統(tǒng)的噪聲頻譜分辨率為4 Hz。使用所設(shè)計(jì)系統(tǒng)對(duì)試驗(yàn)室內(nèi)實(shí)際噪聲源進(jìn)行了現(xiàn)場(chǎng)實(shí)時(shí)測(cè)試,得到了噪聲等級(jí)和頻譜成分信息,可滿(mǎn)足工業(yè)設(shè)備及自動(dòng)化裝置噪聲環(huán)境監(jiān)測(cè)方面的需求,實(shí)現(xiàn)了系統(tǒng)的設(shè)計(jì)目標(biāo)。