何 侃 李志雄 霍建文 張 靜
(西南科技大學信息工程學院 四川綿陽 621010)
?
帶嘯叫檢測與抑制的音頻功率放大器設計
何 侃 李志雄 霍建文 張 靜
(西南科技大學信息工程學院 四川綿陽 621010)
針對拾音器與揚聲器距離過近聲反饋導致的嘯叫問題,提出采用基于STM32F407VGT6單片機集成的12位精密AD轉換器實現對音頻信號采樣,設計利用快速傅氏變換和快速傅氏反變換算法進行濾波處理,實現系統的嘯叫檢測抑制,并通過程控芯片AY-TPA3112D實現功率放大輸出。經過仿真分析與實驗驗證,該系統可以有效抑制5 W揚聲器和靈敏度大于-40 dB V/P的拾音器在距離保持4 cm及以上時發生的嘯叫。
STM32F407VGT6 嘯叫 音頻功放 AY-TPA3112D
在揚聲器-房間-麥克風(LRM)構成的聲學閉合通道聲信號增強系統中, 由于揚聲器到傳聲器的正反饋路徑的存在, 當系統在增益增大到一定量時,就會出現不穩定現象,這便是回聲嘯叫?;芈晣[叫的發生,會導致傳聲器通路音量無法調大或出現聲音振鈴現象,嚴重影響整個聲信號系統的正常工作,甚至會導致系統中的功率放大器和音響由于信號強度過大而燒毀損壞。隨著DSP技術的不斷發展,自動聲反饋抑制器已經成為國內外對于回聲嘯叫主流的解決方案。國內提出了最小二乘的均方誤差嘯叫檢測算法,德國百靈達公司基于高性能DSP推出了FBQ2496自動聲反饋抑制器。這些自動聲反饋抑制器能夠自動搜索聲反饋頻點,設置相應的窄帶陷波器,從而有效抑制嘯叫的發生,具有音質損失小等優點,適合于指標要求高的場所。但是由于專業DSP芯片價格比較昂貴,產品結構比較復雜,導致這些產品的成本和售價比較高。
本設計針對DSP芯片導致的高成本問題,提出采用基于STM32F407VGT6單片機代替專業DSP芯片,通過STM32F407VGT6單片機具有的12位精密AD轉換器和快速傅氏變換和快速傅氏反變換算法進行濾波處理,實現對嘯叫的自動檢測和自適應抑制功能,并通過MATLAB仿真軟件和真實環境聲音采集對進行了自適應嘯叫檢測抑制算法的系統的有效性和實用性進行驗證。
系統主要由電源模塊、麥克風模塊、前級放大模塊、主控芯片STM32F407VGT6和AY-TPA3112D集成功放模塊組成,其功能結構圖如圖1所示。
系統功能實現分為聲音信號采集、嘯叫檢測與抑制、放大輸出3個部分。聲音信號采集是指利用麥克風驅動電路和OP2134構成前級放大電路將外部聲音信號進行采集放大,為系統提供模擬聲音信號的輸入。嘯叫檢測與抑制在STM32F407VGT6微控制器中完成,利用12位精密AD轉換器,間隔采樣1 024個點,再通過FFT算法得出的結果,分析各個頻率的幅值,分析是否發生嘯叫,若發生嘯叫則將幅值最大的前200個頻率的幅值設定為0,最后通過內置的精密DA轉換器輸出。放大輸出通過AY-TPA3112D芯片實現,可以通過向AY-TPA3112D芯片特定引腳輸出對應電平得到不同大小的功率放大倍數,達到聲音放大輸出的目的。
2.1 微控制器與系統接口
由于FFT和IFFT算法涉及大量的浮點運算,由于一個浮點占用4個字節,所以要占用大量的內存,同時浮點運算時間很慢,所以采用普通的8位MCU一般難以在一定的時間內完成運算。主控芯片STM32F407VGT6 32位微處理器采用ARM Cortex-M4F內核,工作電壓1.8~3.6 V,擁有1024 kB FLASH和192 kB ARM,3個12位精密AD轉換器和2個12位DAC緩沖通道。高運行頻率為168 MHz,能夠充分滿足1 024位FFT和IFFT運算需要。
2.2 拾音電路
拾音電路需要通過麥克風接收聲音震動,將聲音進行降噪、放大處理,從而得到聲音信號,故采用OPA2134構成拾音電路。
OPA2134是一款8 MHz的帶寬,低功耗單電源集成運算放大器,其具有電壓電流噪聲極低、不易產生紋波干擾、帶寬大、工作穩定等特點,能夠在大部分的環境下工作。同時OPA2134采用單電源供電,可以有效減小外圍電路的復雜度,使得整個電路設計變得更加簡單、穩定,滿足系統需求。
2.3 功率放大電路
功率放大電路負責將從主控芯片輸出的聲音信號放大輸出,同時要實現不同增益倍數的調節,故采用TPA3112D1構成功率放大電路。
TPA3112D1是TI公司生產的一款具有Speaker Guard的25 W單聲道、無需加濾波器的D類音頻放大器。音頻信號可實現差分輸入,可程控實現功率放大器的倍數。采用12 V單電源供電,功放系統穩定。
根據Cooley-Tukey算法,對于采集到的聲音信號序列x[n]而言,其分為奇數序列和偶數序列之和,即x[n]=xEv[n]+xOd[n]。


由于
故有
根據嘯叫的性質可知,當發生嘯叫時,音頻信號的能量主要集中在嘯叫頻率附近,故可知嘯叫頻率處的功率將遠大于其他頻率點處功率。故嘯叫點的檢測可以利用PAPR(峰值平均功率比)來表示,即
又因為|x[n]|2具有對稱性,故可以簡化為
當PAPR的值越接近于無窮大時,嘯叫越有可能發生。
基于STM32的帶嘯叫檢測與抑制的音頻功率放大器系統軟件主要分為以下幾個部分:AD采樣;嘯叫檢測;嘯叫抑制;DA輸出。系統主程序流程如圖2。

圖2 系統主程序流程Fig.2 The flow chart of system’s main program
4.1 音聲采集
當聲音信號通過拾音電路傳遞給STM32F407VGT6時,利用其12位精密AD轉換器對信號進行連續AD采樣,采樣頻率為40 kHz,同時利用DMA儲存采樣結果。當完成一次2 048個數據采樣后,AD采樣標志位adc_sample=true。AD采樣流程如圖3所示。

圖3 AD采樣流程圖Fig.3 The flow chart of AD sampling`
4.2 嘯叫檢測
當ADC采樣標志位adc_sample=true時,初始化FFT函數,標志位ifftFlag=0,對之前儲存AD采樣數據的數組分別進行一次FFT運算,結果分別存入數組adc_Value1中。因為FFT運算的結果為復數,所以再對其結果求模,得到幅值數據,分別存入數組test_Output1中。因為傅里葉變換結果具有對稱性,故利用函數分別對數組test_Output1的一半進行查找,得到各數組最大幅值maxValue1和最大幅值頻率testIndex1。對比testIndex1和之前一次計算的最大幅值頻率testIndex2,若兩者之比大于0.9小于1.1,且則最大幅maxValue1大于平均幅值50倍以上,嘯叫檢測標志位howl=true,反之嘯叫檢測標志位howl=false。將maxValue1和testIndex1的值賦值給maxValue2和testIndex2。

圖4 嘯叫檢測流程圖Fig.4 The flow chart of howling detection
4.3 嘯叫抑制
當嘯叫檢測標志位howl=true時,利用函數找出幅值大小前50的數據位,將對應的adc_Value1中的值歸0,將adc_Value1中幅值給adc_Value。當嘯叫檢測標志位howl=false時,直接將adc_Value1中幅值給adc_Value。

圖5 嘯叫抑制流程圖Fig.5 The flow chart of howling suppression
4.4 聲音還原
初始化FFT函數,標志位ifftFlag=1,對adc_Value數組進行一次IFFT運算,將結果存入數組Output中。當IFFT運算完成后,利用STM32F407VGT6的12位DA轉換器,將數組Output中的數據轉換輸出至后續的功率放大模塊,同時AD采樣標志位adc_sample=false。
為了有效驗證本設計在普通環境下的嘯叫抑制性能,實驗將本嘯叫抑制系統放置在一個未經過聲學結構設計的房間內進行測試。同時為了更好地模擬日常生活環境,還在該系統周圍放置了一系列座椅和其他日常生活用品。系統由一個靈敏度為-40±3 dB、阻抗為5 Ω的電容式全指向性麥克風、一個額定功率為5 W,阻抗為8 Ω的組合紙盆式喇叭構成揚聲器-房間-麥克風(LRM)閉合聲學反饋回路。在未啟用系統對閉合聲學反饋回路進行嘯叫抑制時,利用計算機采集聲音波形。
利用Matlab對該聲音波形進行頻譜分析,得到聲反饋系統在此工作狀態下的聲音頻譜圖(圖6(a))。通過該頻譜可以知道,在未經過嘯叫抑制時,聲音的大部分能量集中在幾個單一頻率上,說明該閉合聲學反饋系統處于嘯叫狀態。

圖6 原聲音頻譜和嘯叫抑制頻譜Fig.6 The original frequency spectrum and the frequency spectrum after howling suppression
在不改變系統各部分位置和工作環境的情況下,打開嘯叫抑制系統,再次使用計算機對聲音進行采集分析并利用Matlab對于該聲音波形進行頻譜分析,得到在嘯叫抑制工作情況下的頻譜圖(圖6(b))。
通過對新波形得出的頻譜進行分析可以看出,聲音頻率中的最高頻率幅值出現了大幅度的降低,同時最大頻率幅值與聲音波形頻率平均幅值的比值大幅度降低,證明系統有效抑制了嘯叫的發生。
為了更進一步精確地描述系統對于嘯叫抑制的性能,采用利用回聲抑制比(ERLE)來反映系統性能。
回聲抑制比(ERLE)的定義為
式中,n(k)為系統噪聲,d(k)為原回聲,e(k)為剩余回聲。由于實際測試時系統噪聲不能同回聲截然分開,實際使用的回聲抑制比計算為
式中,Pd為原回聲功率,Pe為剩余回聲功率(兩者均包含有系統噪聲分量)。
通過實驗測得該系統的ERLE=16 dB,能夠在保證聲音質量的情況下有效抑制嘯叫的產生。
為了解決由于揚聲器-房間-麥克風(LRM)構成的聲學閉合通道聲信號增強系統中正反饋路徑導致的聲反饋嘯叫問題,提出了采用快速傅氏變換和快速傅氏反變換算法對STM32F407VGT6單片機集成的12位精密AD轉換器的音頻信號采樣結果進行分析,從而實現對嘯叫頻率的自動檢測和自動抑制,實現一種由低成本STM32F407VGT6單片機構成系統核心的自適應聲反饋嘯叫抑制系統。同時采用Matlab對系統在一般環境下對于回聲嘯叫的抑制性能進行了測試和分析,采用回聲抑制比(ERLE)對系統性能進行了定量檢測。
由于嘯叫出現時嘯叫頻率點并非只出現在單一頻率之上,為了更好的保證聲音的還原質量,系統還需要進一步研究更加適合STM32F407VGT6單片機的新算法。
[1] 厲劍,鄭成詩,李曉東. 基于幅度譜長時包絡跟蹤的嘯叫頻點檢測[J]. 聲學技術,2013,(1):213-214.
[2] 肖啟洋,張忠慧,方元. 基于DSP的聲反饋抑制系統的研究與實現[J]. 電子技術應用,2013,(1):13-16.
[3] 郝國莉,方元. 采用改進陷波器的聲反饋抑制[J]. 電子測量技術,2012,(3):65-68.
[4] 黃洪劍. 現場擴聲中嘯叫的抑制[J]. 音響技術,2012,(1):33-34.
[5] RAO I K. Fast LMS-newton algorithms for stereophonic acoustic echocancelation[J]. IEEE Transactions on Signal Processing. 2009.
[6] KIM N,VAN W T,CHRISTENSEN M G,etal.Adaptivefeedback Cancellation in Hearing aids Using a Sinusoidalnear-end Signal Model[C]. IEEE International Confer-ence on Acoustics,Speech and Signal Processing. 2010.
The Audio Power Amplifier Design with Howling Detection and Suppression
HE Kan, LI Zhi-xiong, HUO Jian-wen, ZHANG Jing
(SchoolofInformationEngineering,Southwestscienceandtechnologyuniversity,Mianyang621000,Sichuan,China)
In order to solve the problem about howling which dues to pickups and speakers too close, a howling suppression design based STM32F407VGT6 with 12 Precision AD converter was proposed, using the Fast Fourier Transform and Fast Fourier Transform Algorithm for filtering. And power through programmable chip AY-TPA3112D amplified output was achieved. By simulation analysis and experimental verification, the system can effectively inhibit howling between the 5W speaker and -40dB V/P pickup.
STM32F407VGT6; Howlround; Audio amplifier; AY-TPA3112
ERLE=101log(Pd/Pe)
2015-03-10
何侃(1994—)男,本科。研究方向為核電子學和探測技術。E-mail:475890217@qq.com
TP391.42
A
1671-8755(2015)02-0093-04