文獻標識碼: A
文章編號: 0258-7998(2013)01-0013-04
在同時存在麥克風與揚聲器的場合,經常會發生擴聲器與麥克風之間因電聲耦合而產生聲反饋的現象,其原理如圖1所示。聲反饋是擴音系統中最禁忌的現象,它大大限制了系統擴聲增益的提高,影響聲音清晰度,導致聲音出現失真,達不到擴音效果。嚴重的嘯叫甚至可能導致擴音設備燒毀,尤其是功率放大器或音箱的高頻頭[1]。因此,如何有效地抑制聲反饋,是擴聲系統中一個非常重要的問題。
傳統的抑制聲反饋的方法(如改善房間聲學環境、調低音量電位器、采用均衡器拉饋點等方法)對調音員要求極高,不僅操作不便,且不能保證擴聲系統音質,均為治標不治本的做法。而加入聲反饋抑制器來抑制、消除嘯叫則是“一勞永逸”的做法,不僅操作簡單,而且抑制嘯叫的能力比較明顯,能夠達到足夠理想的擴聲效果。目前市場上所見的聲反饋抑制器多為國外的產品,價格十分昂貴。所以本著簡單、經濟實用的原則,本文介紹的系統采用TI公司的TMS320C6713(以下簡稱6713)浮點DSP處理器和移頻法來進行嘯叫的抑制,包括Matlab仿真和DSP系統實時實現,二者都達到了較明顯、較滿意的抑制效果。
1 移頻法抑制聲反饋
1.1 聲反饋抑制器
與產生正反饋一樣,產生嘯叫也需同時滿足幅度和相位兩個條件。前者需要某頻率語音信號的幅度大于此信號原先的幅度,即擴聲功放的放大系數K和系統的反饋系數β的乘積不能小于1;后者需滿足嘯叫信號與其輸入信號相位相同或相差360°的整數倍。所以理論上只要破壞二者其中一個條件即可破壞嘯叫產生的條件[2]。在聲反饋抑制方法中(如移頻法、移相法、陷波法和壓幅法等),移頻法較易實現且效果良好,它是通過改善擴聲系統的頻率特性相應地抑制再生混響干擾,使得聲源發出的聲波經聲場回饋到麥克風時,不會在原頻譜上構成反饋,提高了擴聲增益,頻響特性和聲音清晰度也能得到明顯改善,故本系統采用了移頻法來抑制嘯叫。
1.2 移頻法
所謂移頻就是將采集到的語音信號在其所有頻率成分上移動(升高或降低)某一移頻數Δf,這樣輸出的語音信號就可以回避房間里峰點對其施加的影響,產生自激振蕩的同相條件就被破壞了,從而可抑制嘯叫的產生,且對原先輸入的語音影響甚微。Δf一般為幾赫茲,繼續變化Δf固然可以提高擴聲增益,但一般超過7 Hz時人耳就能察覺得到,所以在本系統中Δf取5 Hz。
2.1 數字振蕩器的實現
正弦、余弦等三角函數在各個領域常見的振蕩器中得到了廣泛的應用,而如何能更精確、消耗處理器指令更少、更快地產生正余弦波成為一個不得不考慮的問題。在TI公司的開發工具CCS 中用C語言調用庫函數sin(double x)和cos(double x)產生正、余弦波序列,每次都會消耗4 000條左右的指令,這是不可取的,將對以后的實時處理產生很大的影響;查表法雖然只有簡單的加、減操作,速度也較快,但需要消耗一定的存儲空間來存儲查找表,較大的表格所造成的驚人的開銷往往使嵌入式系統難以承受;而數字振蕩器法不但容易實現,且產生的正、余弦波頻率是可編程的,可以很方便獲得所需的振蕩器。因此,本系統選用數字振蕩器。如有一正弦序列,使用Z變換的線性性質,可得正弦序列的Z變換為:
2.2 濾波器的設計
本系統中多處用到濾波器,其中最重要的是數移頻模塊中的兩處低通濾波器(如圖2所示)。在選擇濾波器時,考慮到在具有同樣良好的頻譜衰減特性的情況下,FIR濾波器的階數要比IIR濾波器大得多,而IIR所需的運算量(主要指乘法和加法次數)較FIR小得多,所以本系統在此處選用IIR濾波器。
IIR濾波器中,橢圓濾波器(elliptic)通帶和阻帶都會出現較大起伏,且它的相頻響應完全是非線性的,在接近過渡帶的地方尤為突出;切比雪夫濾波器頻率響應的幅頻特性在通頻帶內存在幅度波動;而巴特沃斯濾波器的幅頻響應的曲線在通帶和阻帶內都比較平坦,具有最平特性,且相頻響應在通帶內幾乎是線性的,故本系統采用巴特沃斯濾波器。根據在Matlab中設計出的濾波器的參數,要在DSP開發環境下實現此濾波器,必須考慮兩方面:(1)IIR的單位脈沖響應是無限長的,因而不能像實現FIR那樣直接用卷積來計算,而要用遞推法解差分方程;(2)根據DSP字長及精度的特點對參數進行定標、取舍、量化等處理,特別是對于定點處理器幾乎是必須要考慮的,故本系統選用TI公司的浮點處理器6713以達到更精確目的。圖5是向12階巴特沃斯濾波器輸入低頻正弦與高頻余弦疊加信號、并在DSP上運行前后的濾波效果圖,可見設計的濾波器能較理想地滿足任務要求。
3 DSP系統實現
DSP實現嘯叫抑制階段主要包含語音信號的采集、嘯叫通道的建立、信號移頻處理、語音信號的輸出等部分。
3.1 系統硬件結構
6713是TI公司6000系列的一款非常經典的新型浮點DSP芯片。它最高主頻可達300 MHz,處理速度高達2 400 MPIS;片上外設資源也很豐富,本系統將用到其兩個多通道緩沖串口(McBSP)。6713的優異的性能使之特別適合于高精度應用,如在專業音頻、數據采集、去噪、醫療和診斷圖像應用等領域[5]。
圖6為6713 與Codec芯片TLV320AIC23(以下簡稱AIC23)的連接示意圖,即語音的采集(A/D轉換)和回放(D/A轉換)環節。AIC23是TI公司生產的一款高性能立體聲音頻編解碼器,含有模擬/數字音頻接口、控制接口、時鐘管理、電源管理等部分。AIC23內部集成的模/數轉換和數/模轉換部件采用了先進的Sigma-Delta過采樣技術,可以在8 kHz~96 kHz的頻率范圍內提供16 bit、20 bit、24 bit和32 bit的采樣。
在Codec的控制環節中,根據MODE引腳電平可決定它是工作在I2C(2線)模式還是SPI(3線)模式,圖6中此引腳接高電平,即工作在SPI模式下,此時與之連接的McBSP1也必須配置為SPI這種全雙工通信的模式(此時CLKX和CLKR內部相連),這也正體現了AIC23與McBSP之間能進行無縫連接。此外,因為Codec的控制接口只是用來接收DSP發出的配置寄存器的命令(即單向,只接收數據通道),所以此SPI模式中沒有串行輸出數據線,即“三線”模式而非SPI傳統的四線模式。CS是幀同步信號,SCLK與SDIN分別是串行數據時鐘、串行輸入數據線。DSP發出的控制命令是16 bit的且總是從MSB(最高位)開始。圖7所示的時序圖中bit[15:9]為11個AIC23寄存器的7位地址,后9位是欲配置的值,所以此處編程須注意將數據移1位。本系統將Codec配置為16 kHz采樣、16 bit量化、雙聲道、MIC采集模擬語音信號輸入、HeadPhone輸出模擬語音信號。
數據通道環節中,圖6中Codec芯片通過DSP的McBSP1口進行語音數據的A/D和D/A轉換(即全雙工的數據通道)。芯片數字音頻接口部分有bit時鐘信號BCLK、數據輸入/輸出DIN和DOUT、幀信號LRCIN和LRCOUT。AIC23支持多種音頻接口模式,這里將其配置為主模式和與TI DSP的McBSP相兼容的DSP模式。這樣,BCLK就會輸出時鐘信號,而LRCIN和LRCOUT就必須連接到DSP的幀同步信號FS引腳上。如圖8所示,采集到的數據也是從MSB開始傳輸,這里將AIC23的Digital Audio Interface Format寄存器配置為先發送16 bit的左通道數據,緊接著發送16 bit的右通道數據[6]。
3.3 系統運行分析
在實驗室中建立一個簡易的嘯叫通道,即麥克風-前期放大-DSP系統-功放-音響。主觀上評價可通過不斷減少拾音器和擴音器之間距離或不斷提高擴音器增益來感受DSP中插入移頻模塊前后嘯叫的情況。本文所建嘯叫通道在處于后者的情況下,距離為零和增益到最大位置時均不會產生嘯叫,表明抑制效果十分明顯。圖10的上圖所示為拾音器采集到的從正常語音到開始嘯叫的一段波形圖,在同樣的環境將移頻模塊加入DSP中,采集到的數據如圖10的下圖所示。對比兩圖可以明顯看到,嘯叫得到抑制甚至是被消除,嘯叫抑制效果比較理想。對采集到數據進行計算可知,系統增益提高了約6 dB。
本文詳細介紹了基于聲反饋抑制器中的移頻法來抑制、消除嘯叫的方法,并在Matlab上進行仿真和在DSP上進行實現。實驗表明,此法對嘯叫起到了很好的抑制、消除作用,可使系統增益提高大約6 dB,較為理想。與其他方式相比,移頻法較容易實現、效果明顯、既經濟又實用、貼近實際,具備很高的應用價值。
參考文獻
[1] 盧官明,宗昉.數字音頻原理及應用[M].北京:機械工業出版社,2005:160-163.
[2] 謝劍躍.擴聲系統中聲反饋的產生及抑制方法[J].音響技術,2011,20(1):32-36.
[3] 樊昌信,曹麗娜.通信原理(第6版)[M].北京:國防工業出版社,2009:86-128.
[4] 林靜然.基于TI DSP的通用算法實現[M].北京:電子工業出版社,2008:96-109.
[5] 三恒星科技.TMS320C6713 DSP原理與應用實例[M].北京:電子工業出版社,2009:74-87.
[6] Texas Instruments. TLV320AIC23 stereo audio Codec,8-to 96 kHz,with integrated headphone amplifier data manual (SLWS106D)[R].2002.