邢堃,楊小平,顧亞平,王德勇,薛英智
?
基于DSP的嘯叫抑制系統的研究與實現
邢堃1,楊小平1,顧亞平1,王德勇2,薛英智2
(1. 中國科學院聲學研究所東海研究站,上海 200032;2. 國科微電子有限公司,上海200233)
擴聲系統中由于聲反饋導致嘯叫,造成了聲音的嚴重失真。在基于ARC600 DSP核的基礎上建立了較為完整的硬件試驗系統,首先在計算機上研究并仿真了嘯叫抑制算法,之后在此試驗系統上對該算法做了實時的實現。實驗結果說明,該系統的擴聲增益提高了10 dB以上,有效地抑制嘯叫并且可以保持較好的音質,實時性良好。
嘯叫抑制;IIR陷波器;ARC600 DSP
當今的各種擴聲系統由于同時使用了揚聲器和傳聲器,普遍存在聲反饋現象。聲反饋的產生會直接導致聲音出現失真。當反饋較嚴重時,則會引起嘯叫。嘯叫聲不但使講話、演唱無法順利進行,而且會損傷人耳。劇烈的嘯叫還可能會燒毀系統中的放大器或揚聲器中的高音單元[1]。因此,如何有效地抑制聲反饋,避免產生嘯叫,是擴聲系統中的一個重要課題。
現有的基于數字信號處理的嘯叫抑制方法主要有以下幾種。其一是移頻法[2],它是通過升高或降低輸入音頻信號的頻率成分,使輸入信號再次進入系統不會和原始信號頻率疊加,此方法雖簡單有效,但是移頻過程會造成頻率失真,對音頻信號音質損害較大,所以多是使用在對音質要求不高的場合。其二是隨機相位法[3],它利用了人在主觀聽覺上對聲音的相位變化不敏感的特點,在聲反饋回路中加了一個隨機相位系統,雖然這種方法不會帶來音質上的明顯失真,但是隨機加入的相位有可能產生新的頻率嘯叫點。第三種是陷波法[4],基本陷波器的工作原理是對信號中出現的較明顯的若干個超過預設值的頻點進行抑制,在反饋頻點設計濾波器對信號進行濾波,這種方法是目前較為常用的方法,但是如果對反饋頻點位置及所濾波的帶寬判斷不夠準確就會造成聲音塌陷,引起聲音失真。第四種是使用自適應聲反饋抑制系統[5],它針對當前觀察的數據自動調節本身的沖擊響應特性,從而適應信號變化達到最優濾波,盡管這是目前抑制嘯叫最有效的方法,但是由于這種方法需要不斷調整濾波器的系數,導致系統低速、處理方法復雜。
綜上技術方案,結合本文主要解決的KTV環境下音響系統對話筒聲反饋而產生的嘯叫聲,采用MetaWare公司的ARC600 DSP處理器,選擇陷波法來進行嘯叫聲抑制,設置每幀1024點,時域補零成2048點計算功率譜,在一定程度上減小了判斷聲反饋頻點的誤差。
本系統中,在算法設計上從兩部分實現對嘯叫聲的抑制:聲反饋頻點的檢測與判定算法、IIR陷波器的設計。
1.1 聲反饋頻點的檢測與判定
對于嘯叫抑制系統來說,能否找到準確的反饋聲頻點是至關重要的,它是陷波器設計的前提。本系統從頻域的角度出發研究嘯叫抑制的算法。
算法的第一步就是檢測出有可能引起嘯叫的頻點,稱為“候選嘯叫頻點”。對一幀的數據補零至2048點后進行快速傅里葉(Fast Fourier Transform, FFT)變換,并加窗以減少頻譜泄露(這里采用的是布萊克曼窗)。選擇經FFT計算后功率譜中最大的個值,本系統設為5,將這個頻率值視為“候選嘯叫頻點”。
建立前期的聲反饋信號,從頻域上看,是一個單一的、頻點固定不變的、幅度單增的譜峰。而其它大多數正常的語音信號都具有多個不同的頻率,并且在它的峰值功率處,其頻率和幅度都在時刻無規律地變化。據此,本系統采用峰均值功率比(Peak- to-Average Power Ratio, PAPR)作為判定依據[6]。設上述求出的功率譜為,,其判定步驟為:

(3) 計算峰值功率幅度與平均功率幅度之比(單位:dB)。
(2)
聲反饋頻點的檢測與判定流程如圖1所示。
1.2 IIR陷波器的設計
由于IIR濾波器可以用較低的階數,實現較高階FIR濾波器才能實現的頻率選擇性,如果用FIR去逼近濾波曲線的話可能會影響系統的實時性,又考慮到本系統對語音信號的相位特性要求不高,因此本文選用IIR濾波器。然而,IIR濾波器存在有限字長效應,可能會引起極點偏移。為了提高系統的穩定性,系統濾波器系數精度為32 bit,采樣數據量化精度亦為32 bit。本文陷波器設計采用多個IIR濾波器級聯來實現,通過降低聲反饋頻點的增益來抑制嘯叫。

IIR濾波器系統函數的有理分式為

根據文獻[7],得到濾波器的系數為:
(5)

(7)
(8)

本系統采用CPU與DSP多核實現,CPU作為主機端(Host),主要負責外設接口和控制等,DSP作為從機端(Client),主要負責算法實現。主機端和從機端采用IPC的通訊機制。主機端主要模塊有:Boot loader,IPC Host,外設驅動(Flash、UART、IR等),片上調試接口(on-chip debugging),電源管理等。從機端主要的模塊有:IPC Client,音頻編解碼器,嘯叫抑制軟件算法實現。兩端共享DDR內存,用來傳遞音頻PCM數據。本文主要介紹DSP Client端的實現。
2.1 系統硬件概述
Client端音頻處理部分主要由3個模塊組成,分別是傳聲器放大器、音頻編解碼器和ARC600 DSP。本系統采用的傳聲器放大器為MAX9814集成芯片,音頻編解碼器為4A2D96LD集成芯片。
MAX9814是一款低成本、高品質的傳聲器放大器。該器件分為三級放大,輸入信號先通過增益為12 dB的低噪聲前置放大器進行緩沖和放大,第二級由自動增益控制(Automatic Gain Control, AGC)和可變增益放大器(Variable Gain Amplifier, VGA)組成,VGA/AGC組合能夠使增益在20~0 dB之間變化,輸出放大器是最后一級,具有8、18、20 dB三個不同的固定增益,可通過一個三態邏輯輸入編程設置。放大器級聯可使總增益達到40、50或60 dB。
4A2D96LD FUJ55L是一款高品質、低功耗的音頻編解碼芯片,該器件輸入具有自動音量控制功能,限制增益范圍在0~42 dB之間,輸出具有可編程增益調節功能,調節范圍為-18~42 dB。模數轉換ADC和數模轉換DAC高度集成在芯片內部,均采用了先進的Sigma-delta過采樣數字插補濾波器技術,采樣率范圍為8~192 kHz,動態范圍分別可以達到90 dB和96 dB。
ARC600是MetaWare公司推出的一款全性能低功耗32 bit的定點DSP芯片,它采用哈佛結構設計,指令5級RISC流水線技術。ARC600支持高級語言C/C++等,具有強大的Cache緩存機制。對本系統而言,功率譜的計算需要耗費相當多的時間,它專門的FFT變址模式,可以方便地實現位(bit)反轉,而指令集中的專門針對FFT蝶形運算的指令,能夠很大程度上減少FFT蝶形運算的計算量,這對于保證系統的實時性是非常有用的。
如圖3所示,傳聲器輸入信號先經MAX9814放大,隨后AUDIO CODEC對MAX9814輸出的信號做AD轉換,DSP再對數字音頻信號做是否嘯叫的判斷與處理,把經DSP處理后的PWM信號輸入到STA516B(功率放大器),最后從揚聲器輸出。
2.2 系統算法軟件實現
系統算法軟件實現部分是在Client端完成的。開始運行后,首先對I2S、SPDIF、4A2D96LD FUJ55L等進行初始化;其次是對Client端的IPC初始化,這是Host端與Client端通信機制的初始化工作;接著進行算法初始化,然后判斷是否接收到一幀新的數據,如果是新的一幀,則DSP從接收緩存區中讀數據,否則繼續等待新的一幀到來;然后對新幀數據進行檢測分析,判斷里面是否含有聲反饋頻點,若存在這樣的頻點,則將這幀用IIR陷波器濾波,若未找到這樣的頻點,那么不做濾波處理;最后將數據取到發送緩存區后輸出。
系統軟件流程圖如圖4所示。
考慮到系統的實時性,為了提高系統的效率,本系統將軟件算法中涉及大量計算的程序部分用匯編語言完成(FFT計算、二階節IIR陷波器的實現),其余部分用C語言完成,在單聲道情況下,系統占用MIPS數大約為40 MHz。
2.3 系統驗證與分析
在混響時間大約為300 ms的小房間中,建立實驗室測試環境。在實驗環境中產生了一段比較明顯的嘯叫音頻,截取其中4 s進行語譜分析。
圖5是嘯叫發生時的語譜圖,圖6是經過系統嘯叫抑制后的語譜圖。圖5中嘯叫頻點大致位于4200 Hz處,在2.5~3.5 s這段時間內能量累積變得很大,明顯產生嘯叫。圖6中在4200 Hz處2.5~3.5 s時信號能量得到大幅度衰減。
實驗測得系統的擴聲增益提高了10 dB以上。并且通過非正式的聽音測試,證明該系統對音質的影響很小。
本文在研究了嘯叫抑制軟件算法的基礎上,通過以ARC600 DSP為核心實現了整個系統,選取的算法具有高速、低復雜度的特點。經系統仿真驗證,系統擴聲增益可提高10 dB以上,實時系統測試表明,本系統可以快速、有效地抑制嘯叫并且能夠保持較好的音質。
[1] 梁曉匯, 周權.語音信號處理方法的可靠性研究[J]. 電聲技術, 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] 吳鳴, 陳國躍, 邱小軍, 等.采用隨機相位技術的嘯叫抑制方法[J]. 電聲技術, 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] 郝國莉, 方元. 采用改進陷波器的聲反饋抑制[J]. 電子測量技術, 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-), 男, 山西太原人, 碩士, 研究方向為數字音頻信號處理與嵌入式系統。
邢堃, E-mail: dianxinxingkun@163.com