?

基于計算機聲卡的噪聲采集與頻譜分析系統

2020-09-15 05:16呂華溢張金換
儀表技術與傳感器 2020年8期
關鍵詞:聲卡傳聲器頻域

呂華溢,王 波,黃 晗,謝 政,張金換

(1.清華大學汽車安全與節能國家重點實驗室,北京 100084;2.長安汽車智能化研究院,重慶 401120)

0 引言

工業設備及自動化裝置在工作過程中產生的噪聲是一種主要環境污染源[1-2]。常規的聲級計主要以檢測聲壓幅值為主,缺乏噪聲頻域信息,數據保存及離線處理不便,不適宜長期在線監測、設備價格昂貴。聲卡已經成為計算機的標準配置設備,遵循統一的軟硬件接口規范、具有16位的模/數轉換精度和不低于44.1 kHz的采樣頻率,因此可基于聲卡外接傳聲器采集噪聲信號,并通過編寫計算機程序進行數據的實時處理、顯示和保存。

基于計算機聲卡的數據采集、處理軟件開發主要有3種實現方法:基于MATLAB實現[3-4],利用其數據采集工具箱(Data Acquisition Toolbox)提供的數據采集函數控制聲卡獲取信號數據,該方法優勢在于MATLAB提供了豐富的數據處理函數,易于進行數據后期處理分析,劣勢在于未安裝MATLAB的計算機需要安裝MCR(MATLAB Compiler Runtime)后才可運行開發的程序;基于LabVIEW[5-6]實現,利用圖形化編程語言配置聲卡參數并獲取、處理信號數據,該方法優勢在于軟件開發直觀、簡潔,數據處理模塊較豐富,劣勢在于開發的程序在發布時需將運行支持環境Runtime Engine共同打包,造成軟件安裝包過大;基于Visual Studio實現[7-8],利用DirectX提供的多媒體編程函數獲取聲卡信號數據,該方法優勢在于開發的程序可在其他運行Windows操作系統的計算機上運行,軟件兼容性好,劣勢在于軟件開發難度較高,數據處理函數不夠豐富。

比較上述3種實現方法,針對工業設備噪聲采集與分析的需求特點,本文采用Visual Studio工具包中的C#作為軟件開發工具,實現了通過DirectX接口函數獲取聲卡數據,并實時進行頻域分析、波形顯示與數據保存的功能。

1 工作原理與系統組成

噪聲在振動形式上屬于縱波,作為一種機械波作用在傳聲器的敏感元件上,可實現由機械振動到電信號的能量轉換;聲卡通過自身的模/數轉換器件經采樣、量化后將該模擬電信號變換為相應的數字信號;經由計算機內部數據總線發送到內部存儲器,CPU根據所運行軟件的指令對噪聲數據進行處理和分析;經過處理后的噪聲數據仍存放在內部存儲器中,根據軟件指令分別由顯示設備將噪聲數據和處理結果以波形圖等形式進行顯示,以及將噪聲數據以文件的形式保存到計算機的外存儲器中。系統整體工作原理示意圖如圖1所示。

圖1 系統工作原理示意圖

噪聲采集與分析系統的構成可分為傳聲器、采集設備和計算機部分,如圖2所示。其中傳聲器由麥克風實現,通過3.5 mm同軸音頻線纜連接至計算機中由聲卡實現的采集設備接口上,計算機完成噪聲數據的分析處理后,通過自身的顯示器和硬盤實現結果顯示和數據保存。

圖2 系統組成結構圖

2 噪聲采集與數據處理

系統的硬件構成基于現有計算機和聲卡,因此噪聲采集與分析系統的實現主要以軟件開發為主,包括噪聲數據采集、頻譜分析、時域和頻域數據顯示、噪聲數據保存功能模塊,如圖3所示。

圖3 噪聲采集與分析系統功能模塊

2.1 軟件架構設計

噪聲采集與分析系統基于.Net平臺采用C#語言開發,不需要直接調用Windows操作系統的API函數即可實現用戶操作界面、數據顯示和文件保存等功能;聲卡數據獲取通過調用DirectX多媒體接口函數實現。軟件整體架構采用面向對象的設計方法和模塊化實現方式,通過用戶或系統定時器觸發調用相關函數模塊完成功能需求,軟件架構工作流程如圖4所示。

圖4 軟件工作流程圖

系統啟動后首先進行用戶界面初始化和聲卡設備的枚舉初始化,聲卡初始化成功則顯示系統用戶界面,等待用戶操作觸發相應功能函數模塊;初始化失敗則直接退出系統。如果用戶選擇保存噪聲數據,系統將建立wav格式的聲音文件頭,用以記錄保存噪聲音頻文件。用戶啟動噪聲數據的采集分析后,系統將實時獲取聲卡數據存入內部存儲器中建立的緩沖區,系統定時器將周期性地觸發操作從緩沖區讀取噪聲數據進行頻譜分析、時域和頻域波形顯示,以及噪聲音頻文件保存。用戶停止數據采集后,系統定時器將停止觸發不再進行頻譜分析和波形顯示更新,所保存的音頻文件進行關閉。噪聲采集與分析系統軟件界面如圖5所示,其中1為頻域波形顯示,2為時域波形顯示,3為噪聲量值顯示,4為文件保存設置按鈕,5為系統啟動/停止按鈕,6為系統退出按鈕。

圖5 噪聲采集與分析系統軟件界面

2.2 數據采集與保存

聲卡采集參數需在Windows操作系統的控制面板項“聲音”中進行設置,本文中設置模/數轉換精度為16位,采樣頻率為44.1 kHz,根據Nyquist采樣定理可以滿足對人耳聽力范圍20 kHz內的噪聲信號進行頻譜分析的要求。噪聲信號在保存為wav格式的聲音文件時,需要在文件頭中寫明聲音數據的采樣頻率、轉換精度,以及由這2個參數決定的存儲塊對齊標識和每s數據字節數,保證聲音文件數據在回放時可以被正確解析處理。

2.3 信號頻譜分析

噪聲信號的頻域信息采用快速傅里葉變換方法(FFT)計算得到,本文中所使用FFT處理方法為基于FFTW[9]所開發的C語言開源代碼修改適配,遵循開源軟件的GPL許可證(GNU General Public License)版權規定[10]。

噪聲采集與分析系統中設置的系統定時器觸發間隔為250 ms,如圖4所示,在定時器到期后將從緩沖區讀取此段時間內的噪聲數據進行FFT計算得到頻域信息,并在軟件界面中顯示噪聲的時域和頻域波形,因此系統軟件界面的波形顯示刷新頻率為4 Hz。由聲卡采樣頻率44.1 kHz和FFT計算周期250 ms,可知FFT的計算點數為11 025個,因此系統的噪聲頻譜分辨率為4 Hz。

3 噪聲采集系統標定

在本系統的設計中傳聲器采用YC-LM20型麥克風實現,通過音頻線纜連接至聲卡,并由計算機對聲卡模/數轉換后得到的量化數據進行處理。因此,需要建立噪聲幅值與聲卡量化步長二者之間的對應關系。參考GB/T 12060.4—2012《聲系統設備:第4部分 傳聲器測量方法》、JJG 482—2005《實驗室標準傳聲器(自由場互易法)檢定規程》和JJG 1019—2007《工作標準傳聲器(耦合腔比較法)檢定規程》等[11-13]中所給出的傳聲器靈敏度標定方法,對本文中所設計的噪聲采集與分析系統采用與聲級計測量值比較的方法,進行噪聲幅值標定,其原理如圖6所示,聲源發射頻率1 kHz的正弦波噪聲信號,被與聲源距離相等的聲級計和待標定系統傳聲器所接收,分別輸出單位為dB的噪聲幅值以及被聲卡模/數轉換后的量化值,將二者相除即得到待標定系統的噪聲幅值靈敏度,單位為dB/量化步長。

圖6 噪聲幅值標定方法示意圖

按照上述方法對所設計系統進行標定測試,聲源發出頻率為1 kHz正弦波的94 dB噪聲激勵信號,標定過程中系統軟件界面所顯示的測試數據波形如圖7所示,通過計算得到噪聲采集與分析系統的噪聲幅值靈敏度為0.14 dB/量化步長。

圖7 系統靈敏度標定數據波形

4 系統測試分析實例

使用本文中所設計的噪聲采集與分析系統經過標定后,對試驗室內加速牽引裝置電機及配電柜制冷系統在工作時產生的噪聲進行了現場實時測試。將傳聲器設置在距噪聲源5 m處,系統所記錄到的噪聲時域波形和實時分析得到的噪聲頻域波形如圖8所示,可知被測現場噪聲等級已接近90 dB,噪聲頻率主要分布在12 kHz以內,在1 kHz、1.8 kHz、3.9 kHz、7 kHz和10 kHz頻率點附近存在較顯著的噪聲頻譜波峰。

圖8 噪聲現場測試記錄

5 結束語

本文設計了一種基于計算機聲卡的噪聲采集與頻譜分析系統,該系統采用Visual Studio工具包中的C#語言開發,實現通過DirectX接口函數操作聲卡并獲取噪聲數據,能夠實時完成對數據進行時域波形顯示、頻域分析與顯示、wav格式聲音文件保存的功能。參考傳聲器靈敏度標定的國標與檢定規程,使用聲級計對本文中所設計系統進行了噪聲幅值標定,其靈敏度為0.14 dB/量化步長;所設計系統的噪聲頻譜分辨率為4 Hz。使用所設計系統對試驗室內實際噪聲源進行了現場實時測試,得到了噪聲等級和頻譜成分信息,可滿足工業設備及自動化裝置噪聲環境監測方面的需求,實現了系統的設計目標。

猜你喜歡
聲卡傳聲器頻域
基于頻域的聲信號計權改進算法
頻域稀疏毫米波人體安檢成像處理和快速成像稀疏陣列設計
網絡控制系統有限頻域故障檢測和容錯控制
電容傳聲器聲中心的測量及其對互易校準的影響
基于改進Radon-Wigner變換的目標和拖曳式誘餌頻域分離
傳聲器拾音技術
傳聲器淺析——技術、類型、應用及型號(二)
傳聲器淺析——技術、類型、應用及型號(一)
提升筆記本電腦音質
聊天室背景放音樂 為啥我的本本就不行?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合