邢堃,楊小平,顧亞平,王德勇,薛英智
?
基于DSP的嘯叫抑制系統(tǒng)的研究與實(shí)現(xiàn)
邢堃1,楊小平1,顧亞平1,王德勇2,薛英智2
(1. 中國(guó)科學(xué)院聲學(xué)研究所東海研究站,上海 200032;2. 國(guó)科微電子有限公司,上海200233)
擴(kuò)聲系統(tǒng)中由于聲反饋導(dǎo)致嘯叫,造成了聲音的嚴(yán)重失真。在基于ARC600 DSP核的基礎(chǔ)上建立了較為完整的硬件試驗(yàn)系統(tǒng),首先在計(jì)算機(jī)上研究并仿真了嘯叫抑制算法,之后在此試驗(yàn)系統(tǒng)上對(duì)該算法做了實(shí)時(shí)的實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果說(shuō)明,該系統(tǒng)的擴(kuò)聲增益提高了10 dB以上,有效地抑制嘯叫并且可以保持較好的音質(zhì),實(shí)時(shí)性良好。
嘯叫抑制;IIR陷波器;ARC600 DSP
當(dāng)今的各種擴(kuò)聲系統(tǒng)由于同時(shí)使用了揚(yáng)聲器和傳聲器,普遍存在聲反饋現(xiàn)象。聲反饋的產(chǎn)生會(huì)直接導(dǎo)致聲音出現(xiàn)失真。當(dāng)反饋較嚴(yán)重時(shí),則會(huì)引起嘯叫。嘯叫聲不但使講話、演唱無(wú)法順利進(jìn)行,而且會(huì)損傷人耳。劇烈的嘯叫還可能會(huì)燒毀系統(tǒng)中的放大器或揚(yáng)聲器中的高音單元[1]。因此,如何有效地抑制聲反饋,避免產(chǎn)生嘯叫,是擴(kuò)聲系統(tǒng)中的一個(gè)重要課題。
現(xiàn)有的基于數(shù)字信號(hào)處理的嘯叫抑制方法主要有以下幾種。其一是移頻法[2],它是通過(guò)升高或降低輸入音頻信號(hào)的頻率成分,使輸入信號(hào)再次進(jìn)入系統(tǒng)不會(huì)和原始信號(hào)頻率疊加,此方法雖簡(jiǎn)單有效,但是移頻過(guò)程會(huì)造成頻率失真,對(duì)音頻信號(hào)音質(zhì)損害較大,所以多是使用在對(duì)音質(zhì)要求不高的場(chǎng)合。其二是隨機(jī)相位法[3],它利用了人在主觀聽(tīng)覺(jué)上對(duì)聲音的相位變化不敏感的特點(diǎn),在聲反饋回路中加了一個(gè)隨機(jī)相位系統(tǒng),雖然這種方法不會(huì)帶來(lái)音質(zhì)上的明顯失真,但是隨機(jī)加入的相位有可能產(chǎn)生新的頻率嘯叫點(diǎn)。第三種是陷波法[4],基本陷波器的工作原理是對(duì)信號(hào)中出現(xiàn)的較明顯的若干個(gè)超過(guò)預(yù)設(shè)值的頻點(diǎn)進(jìn)行抑制,在反饋頻點(diǎn)設(shè)計(jì)濾波器對(duì)信號(hào)進(jìn)行濾波,這種方法是目前較為常用的方法,但是如果對(duì)反饋頻點(diǎn)位置及所濾波的帶寬判斷不夠準(zhǔn)確就會(huì)造成聲音塌陷,引起聲音失真。第四種是使用自適應(yīng)聲反饋抑制系統(tǒng)[5],它針對(duì)當(dāng)前觀察的數(shù)據(jù)自動(dòng)調(diào)節(jié)本身的沖擊響應(yīng)特性,從而適應(yīng)信號(hào)變化達(dá)到最優(yōu)濾波,盡管這是目前抑制嘯叫最有效的方法,但是由于這種方法需要不斷調(diào)整濾波器的系數(shù),導(dǎo)致系統(tǒng)低速、處理方法復(fù)雜。
綜上技術(shù)方案,結(jié)合本文主要解決的KTV環(huán)境下音響系統(tǒng)對(duì)話筒聲反饋而產(chǎn)生的嘯叫聲,采用MetaWare公司的ARC600 DSP處理器,選擇陷波法來(lái)進(jìn)行嘯叫聲抑制,設(shè)置每幀1024點(diǎn),時(shí)域補(bǔ)零成2048點(diǎn)計(jì)算功率譜,在一定程度上減小了判斷聲反饋頻點(diǎn)的誤差。
本系統(tǒng)中,在算法設(shè)計(jì)上從兩部分實(shí)現(xiàn)對(duì)嘯叫聲的抑制:聲反饋頻點(diǎn)的檢測(cè)與判定算法、IIR陷波器的設(shè)計(jì)。
1.1 聲反饋頻點(diǎn)的檢測(cè)與判定
對(duì)于嘯叫抑制系統(tǒng)來(lái)說(shuō),能否找到準(zhǔn)確的反饋聲頻點(diǎn)是至關(guān)重要的,它是陷波器設(shè)計(jì)的前提。本系統(tǒng)從頻域的角度出發(fā)研究嘯叫抑制的算法。
算法的第一步就是檢測(cè)出有可能引起嘯叫的頻點(diǎn),稱為“候選嘯叫頻點(diǎn)”。對(duì)一幀的數(shù)據(jù)補(bǔ)零至2048點(diǎn)后進(jìn)行快速傅里葉(Fast Fourier Transform, FFT)變換,并加窗以減少頻譜泄露(這里采用的是布萊克曼窗)。選擇經(jīng)FFT計(jì)算后功率譜中最大的個(gè)值,本系統(tǒng)設(shè)為5,將這個(gè)頻率值視為“候選嘯叫頻點(diǎn)”。
建立前期的聲反饋信號(hào),從頻域上看,是一個(gè)單一的、頻點(diǎn)固定不變的、幅度單增的譜峰。而其它大多數(shù)正常的語(yǔ)音信號(hào)都具有多個(gè)不同的頻率,并且在它的峰值功率處,其頻率和幅度都在時(shí)刻無(wú)規(guī)律地變化。據(jù)此,本系統(tǒng)采用峰均值功率比(Peak- to-Average Power Ratio, PAPR)作為判定依據(jù)[6]。設(shè)上述求出的功率譜為,,其判定步驟為:
(3) 計(jì)算峰值功率幅度與平均功率幅度之比(單位:dB)。
(2)
聲反饋頻點(diǎn)的檢測(cè)與判定流程如圖1所示。
1.2 IIR陷波器的設(shè)計(jì)
由于IIR濾波器可以用較低的階數(shù),實(shí)現(xiàn)較高階FIR濾波器才能實(shí)現(xiàn)的頻率選擇性,如果用FIR去逼近濾波曲線的話可能會(huì)影響系統(tǒng)的實(shí)時(shí)性,又考慮到本系統(tǒng)對(duì)語(yǔ)音信號(hào)的相位特性要求不高,因此本文選用IIR濾波器。然而,IIR濾波器存在有限字長(zhǎng)效應(yīng),可能會(huì)引起極點(diǎn)偏移。為了提高系統(tǒng)的穩(wěn)定性,系統(tǒng)濾波器系數(shù)精度為32 bit,采樣數(shù)據(jù)量化精度亦為32 bit。本文陷波器設(shè)計(jì)采用多個(gè)IIR濾波器級(jí)聯(lián)來(lái)實(shí)現(xiàn),通過(guò)降低聲反饋頻點(diǎn)的增益來(lái)抑制嘯叫。
IIR濾波器系統(tǒng)函數(shù)的有理分式為
根據(jù)文獻(xiàn)[7],得到濾波器的系數(shù)為:
(5)
(7)
(8)
本系統(tǒng)采用CPU與DSP多核實(shí)現(xiàn),CPU作為主機(jī)端(Host),主要負(fù)責(zé)外設(shè)接口和控制等,DSP作為從機(jī)端(Client),主要負(fù)責(zé)算法實(shí)現(xiàn)。主機(jī)端和從機(jī)端采用IPC的通訊機(jī)制。主機(jī)端主要模塊有:Boot loader,IPC Host,外設(shè)驅(qū)動(dòng)(Flash、UART、IR等),片上調(diào)試接口(on-chip debugging),電源管理等。從機(jī)端主要的模塊有:IPC Client,音頻編解碼器,嘯叫抑制軟件算法實(shí)現(xiàn)。兩端共享DDR內(nèi)存,用來(lái)傳遞音頻PCM數(shù)據(jù)。本文主要介紹DSP Client端的實(shí)現(xiàn)。
2.1 系統(tǒng)硬件概述
Client端音頻處理部分主要由3個(gè)模塊組成,分別是傳聲器放大器、音頻編解碼器和ARC600 DSP。本系統(tǒng)采用的傳聲器放大器為MAX9814集成芯片,音頻編解碼器為4A2D96LD集成芯片。
MAX9814是一款低成本、高品質(zhì)的傳聲器放大器。該器件分為三級(jí)放大,輸入信號(hào)先通過(guò)增益為12 dB的低噪聲前置放大器進(jìn)行緩沖和放大,第二級(jí)由自動(dòng)增益控制(Automatic Gain Control, AGC)和可變?cè)鲆娣糯笃?Variable Gain Amplifier, VGA)組成,VGA/AGC組合能夠使增益在20~0 dB之間變化,輸出放大器是最后一級(jí),具有8、18、20 dB三個(gè)不同的固定增益,可通過(guò)一個(gè)三態(tài)邏輯輸入編程設(shè)置。放大器級(jí)聯(lián)可使總增益達(dá)到40、50或60 dB。
4A2D96LD FUJ55L是一款高品質(zhì)、低功耗的音頻編解碼芯片,該器件輸入具有自動(dòng)音量控制功能,限制增益范圍在0~42 dB之間,輸出具有可編程增益調(diào)節(jié)功能,調(diào)節(jié)范圍為-18~42 dB。模數(shù)轉(zhuǎn)換ADC和數(shù)模轉(zhuǎn)換DAC高度集成在芯片內(nèi)部,均采用了先進(jìn)的Sigma-delta過(guò)采樣數(shù)字插補(bǔ)濾波器技術(shù),采樣率范圍為8~192 kHz,動(dòng)態(tài)范圍分別可以達(dá)到90 dB和96 dB。
ARC600是MetaWare公司推出的一款全性能低功耗32 bit的定點(diǎn)DSP芯片,它采用哈佛結(jié)構(gòu)設(shè)計(jì),指令5級(jí)RISC流水線技術(shù)。ARC600支持高級(jí)語(yǔ)言C/C++等,具有強(qiáng)大的Cache緩存機(jī)制。對(duì)本系統(tǒng)而言,功率譜的計(jì)算需要耗費(fèi)相當(dāng)多的時(shí)間,它專門的FFT變址模式,可以方便地實(shí)現(xiàn)位(bit)反轉(zhuǎn),而指令集中的專門針對(duì)FFT蝶形運(yùn)算的指令,能夠很大程度上減少FFT蝶形運(yùn)算的計(jì)算量,這對(duì)于保證系統(tǒng)的實(shí)時(shí)性是非常有用的。
如圖3所示,傳聲器輸入信號(hào)先經(jīng)MAX9814放大,隨后AUDIO CODEC對(duì)MAX9814輸出的信號(hào)做AD轉(zhuǎn)換,DSP再對(duì)數(shù)字音頻信號(hào)做是否嘯叫的判斷與處理,把經(jīng)DSP處理后的PWM信號(hào)輸入到STA516B(功率放大器),最后從揚(yáng)聲器輸出。
2.2 系統(tǒng)算法軟件實(shí)現(xiàn)
系統(tǒng)算法軟件實(shí)現(xiàn)部分是在Client端完成的。開(kāi)始運(yùn)行后,首先對(duì)I2S、SPDIF、4A2D96LD FUJ55L等進(jìn)行初始化;其次是對(duì)Client端的IPC初始化,這是Host端與Client端通信機(jī)制的初始化工作;接著進(jìn)行算法初始化,然后判斷是否接收到一幀新的數(shù)據(jù),如果是新的一幀,則DSP從接收緩存區(qū)中讀數(shù)據(jù),否則繼續(xù)等待新的一幀到來(lái);然后對(duì)新幀數(shù)據(jù)進(jìn)行檢測(cè)分析,判斷里面是否含有聲反饋頻點(diǎn),若存在這樣的頻點(diǎn),則將這幀用IIR陷波器濾波,若未找到這樣的頻點(diǎn),那么不做濾波處理;最后將數(shù)據(jù)取到發(fā)送緩存區(qū)后輸出。
系統(tǒng)軟件流程圖如圖4所示。
考慮到系統(tǒng)的實(shí)時(shí)性,為了提高系統(tǒng)的效率,本系統(tǒng)將軟件算法中涉及大量計(jì)算的程序部分用匯編語(yǔ)言完成(FFT計(jì)算、二階節(jié)IIR陷波器的實(shí)現(xiàn)),其余部分用C語(yǔ)言完成,在單聲道情況下,系統(tǒng)占用MIPS數(shù)大約為40 MHz。
2.3 系統(tǒng)驗(yàn)證與分析
在混響時(shí)間大約為300 ms的小房間中,建立實(shí)驗(yàn)室測(cè)試環(huán)境。在實(shí)驗(yàn)環(huán)境中產(chǎn)生了一段比較明顯的嘯叫音頻,截取其中4 s進(jìn)行語(yǔ)譜分析。
圖5是嘯叫發(fā)生時(shí)的語(yǔ)譜圖,圖6是經(jīng)過(guò)系統(tǒng)嘯叫抑制后的語(yǔ)譜圖。圖5中嘯叫頻點(diǎn)大致位于4200 Hz處,在2.5~3.5 s這段時(shí)間內(nèi)能量累積變得很大,明顯產(chǎn)生嘯叫。圖6中在4200 Hz處2.5~3.5 s時(shí)信號(hào)能量得到大幅度衰減。
實(shí)驗(yàn)測(cè)得系統(tǒng)的擴(kuò)聲增益提高了10 dB以上。并且通過(guò)非正式的聽(tīng)音測(cè)試,證明該系統(tǒng)對(duì)音質(zhì)的影響很小。
本文在研究了嘯叫抑制軟件算法的基礎(chǔ)上,通過(guò)以ARC600 DSP為核心實(shí)現(xiàn)了整個(gè)系統(tǒng),選取的算法具有高速、低復(fù)雜度的特點(diǎn)。經(jīng)系統(tǒng)仿真驗(yàn)證,系統(tǒng)擴(kuò)聲增益可提高10 dB以上,實(shí)時(shí)系統(tǒng)測(cè)試表明,本系統(tǒng)可以快速、有效地抑制嘯叫并且能夠保持較好的音質(zhì)。
[1] 梁曉匯, 周權(quán).語(yǔ)音信號(hào)處理方法的可靠性研究[J]. 電聲技術(shù), 2010, 34(4): 58-62.
LIANG Xiaohui, ZHOU Quan.Validity research of acoustic signal processing[J]. Audio Engineering, 2010, 34(4): 58-62.
[2] Alisobhani J, Knorr S. Improvement of acoustic-feedback stability by bandwidth compression[J]. IEEE Transactions on Acoustics, Speech and Signal Processing, 1980, 28(6): 636-644.
[3] 吳鳴, 陳國(guó)躍, 邱小軍, 等.采用隨機(jī)相位技術(shù)的嘯叫抑制方法[J]. 電聲技術(shù), 2007, 31(8): 14-16.
WU Ming, CHEN Guoyue, QIU Xiaojun, et al. Phase randomized technique for howling[J]. Audio Engineering, 2007, 31(8): 14-16.
[4] 郝國(guó)莉, 方元. 采用改進(jìn)陷波器的聲反饋抑制[J]. 電子測(cè)量技術(shù), 2012,3: 65-68.
HAO Guoli, FANG Yuan. Acoustic feedback suppression with improved notch filter[J]. Electronic Measurement Technology, 2012,3: 65-68.
[5] LeotwassanaW, PunchalardR, SilaphanW. Adaptive howling canceller using adaptive IIR notch filter: simulation and implementation[C]//Proceedings of the 2003 International Conference on Neural Networks and Signal Processing, 2003: 848-851.
[6] Deepak Somasundaram. Feedback cancellation in a sound system: U.S., EP1903833 A1[P]. 2008-03-06.
[7] ZHANG Xiuli, ZHANG Ruihua, CHEN Weidong. Design of digital parametric equalizer based on second-order function[C]// IEEE International Conference on Image Analysis and Signal Processing, 2010: 182-185.
Design and implementation of howling suppression system based on ARC600 DSP
XING Kun1, YANG Xiao-ping1, GU Ya-ping1, WANG De-yong2, XUE Ying-zhi2
(1.Shanghai Acoustics Laboratory, Shanghai 200032, China; 2.Goke MicroelectronicsCo., Ltd, Shanghai 200233, China)
The howling is generated due to acoustic feedback in amplifying system, which can cause the serious distortion of sound. The paper establishes a relatively complete hardware test system based on ARC600 DSP: studying and simulating on computer for the howling suppression algorithm first, and then implementing the algorithm on this test system in real time. It turns out that the amplification gain of the system can be enhanced by about 10dB, and the howling can be effectively suppressed to keep the sound quality almost no loss.
howling suppression; IIR notch filter; ARC600 DSP
TB533
A
1000-3630(2015)-04-0338-04
10.16300/j.cnki.1000-3630.2015.04.009
2014-08-11;
2014-11-21
邢堃(1987-), 男, 山西太原人, 碩士, 研究方向?yàn)閿?shù)字音頻信號(hào)處理與嵌入式系統(tǒng)。
邢堃, E-mail: dianxinxingkun@163.com