一種基于TMS320VC5416DSK 的有源噪聲控制系統設計與實現
1 引 言
噪聲作為主要環境污染之一,是一個全世界都十分關注的環境問題. 目前,噪聲控制的主要措施分為無源噪聲控制( PassiveNoiseControl ) 和有源噪聲控制(ActiveNoiseControl,ANC ) . 無源噪聲控制采用吸聲、隔聲、使用消聲器等被動噪聲控制的方法,對中高頻噪聲的控制效較好,但對低頻噪聲的控制效果不明顯. 有源噪聲控制又稱為有源聲控制或有源消聲[1] ,是根據聲波相消性干涉原理,由次級聲源產生與待抵消聲源(初級聲源) 聲波幅度大小相等、相位相反的聲波,從而實現相消性干涉,達到降低噪聲的目的. 有源噪聲控制對低頻和窄帶噪聲有較好的控制效果.
2 系統結構及原理
單通道自適應有源噪聲控制系統如圖1 所示.整個系統由初級揚聲器(初級聲源) 、次級揚聲器(次級聲源) 、參考麥克風、誤差麥克風和自適應控制器等組成.
噪聲源產生待抵消的噪聲信號,被參考麥克風拾取,并作為參考信號x ( n) 輸入至自適應控制器. 自適應控制器采用Filtered2XLMS 算法計算得到次級信號y ( n) ,經過功率放大器驅動次級揚聲器. 初級揚聲器和次級揚聲器產生的聲波分別形成初級聲場和次級聲場,兩者在誤差麥克風處發生相消性干涉后形成誤差信號e ( n) ,被誤差麥克風拾取后反饋到自適應控制器中,以控制自適應控制器權的更新.Filtered 2XLMS 算法通過調整控制器權系數而改變次級信號的幅度和相位,以使接收到的誤差信號e ( n) 強度最小. 這樣的更新過程不斷進行,直至系統達到穩定狀態. 此時,Filtered 2XLMS算法收斂,殘留誤差信號e ( n) 強度最弱,則在誤差傳感器附近形成了一個靜音區.下面三小節先闡述自適應控制和次級通路辨識的結構模型及原理,然后推導了噪聲控制所采用的 Filtered2XLMS 算法.
2.1 自適應控制器部分
自適應控制器是整個系統的核心部分. 自適應控制器采用Filtered2XLMS 算法輸出次級信號y( n) ,其激勵揚聲器產生的聲波與待抵消噪聲聲波y ( n) 在空間發生相消性干涉,從而在誤差麥克風附近形成一靜音區. 靜音區的尺寸大小約為噪聲信波長的十分之一[2] ,即噪聲頻率越低靜音區尺寸就越大.圖2 顯示了自適應前饋控制器工作原理. 由VC5416DSK 構成的自適應濾波器采用Filtered2XLMS 算法,根據當前和過去時刻采樣值預測下一時刻噪聲信號樣值,使得輸出信號y ( n) 激勵次級揚聲器產生的干涉聲波盡量與誤差麥克風處的噪聲聲波的幅度大小相等、相位相反. 兩聲波在空間發生相消性干涉后被誤差麥克風取并反饋給自適應控制器,該信號與參考麥克風拾取的參考信號x ( n) 一起控制Filtered2XLMS 算法的權值更新.由于該控制器是自適應的,它能自適應地調整權W, 以跟蹤實際環境中噪聲特性及聲空間物理參數(如溫度、氣流速度等) 隨時間的變化,從而在誤差麥克風附近形成并保持一靜音區.
對一個單頻信號,兩個權的自適應線性組合器在權收斂后就可得到其等幅反相輸出信號[3] . 本系統設計中,自適應濾波器階數設為16 階,可以控制多達8 個單頻信號.
2.2 次級通路自適應辨識部分
次級通路辨識是自適應有源噪聲控制系統與信號處理中自適應噪聲抵消系統的區別所在[1] .有源噪聲控制系統中,次級聲源產生的聲波并不是立即被誤差麥克風拾取,而是經過次級通路傳播后再被拾取. 因此,次級通路對有源噪聲控制系統的影響不容忽略,而對次級通路的辨識也是有源噪聲控制中不可缺少的模塊.圖3 顯示了次級通路自適應辨識原理.
VC5416DSP 產生一高斯白噪聲通過次級揚聲器輸出,輸出聲信號被誤差麥克風拾取后反饋給由VC5416DSK 構成的自適應濾波器. 濾波器采用LMS 算法,利用當前和過去時刻反饋信號樣值和噪聲信號樣值,預測下一時刻誤差麥克風接收到的信號樣值. 系統進入穩態或自適應算法收斂后,濾波器權系數即為次級通路的傳遞函數的估計值.自適應濾波器階數的選取主要取決于兩個因素,即有源噪聲控制系統所在房間的混響狀況以及系統的采樣率. 房間混響越嚴重,則所需濾波器階數就越大. 同時,所需濾波器階數還會隨系統采樣率的升高而增加. 本系統設計中,系統采樣率設為8kHz, 實驗所在房間混響屬于中等程度,選取的濾波器階數為256 階.
3 硬件系統
有源噪聲控制硬件系統包含:VC5416DSK 、音頻子板、作為初、次級聲源的兩臺揚聲器、作為參考、誤差麥克風的兩只電容式麥克風以及控制兩麥風的調音臺.VC5416DSK ( DSPSTARTERKIT) 是TI 公司為DSP 應用者開發的DSP 系統開成2 萬條指令周期,能夠滿足該系統設計的實時性要求.有源前饋噪聲控制系統需要兩路信號(參考信號和誤差信號) 同時輸入. 在VC5416DSK 已有一CODEC 芯片基礎上,我們通過板上的PeripheralInterface 擴展接口設計了一音頻子板. 該子板我們選用了TI 公司生產的、集成了模擬功能的高性能立體聲音頻編解碼器CODEC2TLV320AIC23 (簡稱AIC23 ) . 該子板的設計采用SPI 模式, 將VC5416 設為主設備,將AIC23 設為從設備,由主設備VC5416 提供時鐘信號并控制數據傳輸過程.VC5416 與AIC23 的連接如圖4 所示:
4 系統的軟件實現
系統實現的軟件部分主要由主程序和中斷服務程序組成. 其中,主程序實現系統的初始化和程序模塊控制等功能. 中斷服務程序主要實現次級通路辨識(采用LMS 算法) 和噪聲控制(采用Fil2tered2XLMS 算法) ,這兩模塊均需要實時處理. 本文設計中采用C 語言實現,并通過C54x 的內聯函數[5] 進行了優化. 主程序流程圖和中斷程序流程圖分別如圖5 和圖6 所示.在下面兩小節中,將對圖6 中次級通路辨識、噪聲控制兩模塊的算法流程作詳細闡述.
4.1 次級通路辨識的算法流程
對DSP 和CODEC 等硬件模塊初始化后,次級通路自適應辨識過程開始進行. 該自適應過程執行的迭代次數取決于自適應辨識過程收斂快慢. 經多次實驗比較,迭代次數設為128000 次,且步長因mu - h 取為8000 (Q15 格式) 時,獲得了較好的辨識結果. 需要注意的是,辨識過程中,麥克風所拾取信號電平幅度峰值應該控制在100mV 左右,這可通過對控制麥克風的調音臺進行調節而實現. 次級通路辨識算法流程圖如圖7 所示:
4.2 噪聲控制算法流程
噪聲控制過程是整個算法流程的最后一個過程,也是有源噪聲控制系統發揮其降噪功能的階段. 該過程的算法( Filtered2XLMS 算法) 會一直運行,直至DSP 復位才會停止. 噪聲控制算法流程圖如圖8 所示:
Filtered2XLMS 算法的步長因子mu - w 的值和誤差麥克風所采信號的電平大小,將影響該過程噪聲控制效果. mu - w 取較大值時會使收斂更快,但若取值過大又會導致算法的發散,并產生令人厭煩的發散噪聲. mu - w 取值太小時,算法收斂速度會變慢,甚至不能跟蹤噪聲信號特征變化,影響噪聲控制效果. 另外,若誤差麥克風返回電平的幅度峰值太大,會使DSP 在運算過程中產生溢出. 經過多次實驗比較,本文實驗中mu - w 值取為12000(Q15 格式) ,誤差麥克風返回信號電平的幅度峰值調節為100mV 左右.
5 實驗結果及分析
在本文的實驗中,次級揚聲器和麥克風距離設為30cm, 實驗在一般普通的實驗室中進行(即存在房間混響、反射和環境噪聲等條件下) ,根據前面介紹的算法和相應的實驗設置,得到的次級通路自適應辨識結果如圖9 所示.實驗中, 待抵消噪聲設為含有180Hz 、235Hz、290Hz 、340Hz 四個低頻范圍內單頻正弦波的噪聲信號. 在有源噪聲控制系統運行前后,由DSP通過誤差麥克風分別采集5000 樣本點噪聲信號,采用基于Burg 算法的現代譜估計方法,分析它們功率譜得到了圖10 所示結果. 由圖10 可見,在四個頻率點處均獲得了4~5dB 的噪聲控制效果.
本文介紹了在由VC5416DSK 、音頻子板和麥克風等構成的硬件平臺上,在一般普通的實驗室中(即存在著房間混響、反射和環境噪聲等影響) ,針對由多個單頻正弦波構成的低頻噪聲信號,采用LMS 算法和Filtered2XLMS 算法分別實現了次級通路辨識和空間有源噪聲控制,完成了自適應空間有源噪聲控制實驗. 實驗結果表明,該系統獲得了一定的噪聲控制效果,對空間有源噪聲控制系統的設計與實現具有一定的參考意義.
使用微信“掃一掃”功能添加“谷騰環保網”