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