本發(fā)明涉及一種自適應子帶音頻反饋抑制方法,屬于信號處理、語音信號處理技術(shù)領(lǐng)域。
背景技術(shù):
擴聲應用中的反饋(嘯叫)問題由來已久。我們幾乎都有如此的經(jīng)歷:在擴聲時為了提高傳聲增益、加大發(fā)言人的擴聲輸出音量,往往在增加音量時引起擴聲系統(tǒng)發(fā)生刺耳的嘯叫;這就是常見的擴聲系統(tǒng)的反饋自激(也叫嘯叫)現(xiàn)象。為了解決擴聲中音量小的問題,在保證擴聲系統(tǒng)不發(fā)生反饋自激的同時,如何提高傳聲增益是一個關(guān)鍵性的問題。從控制理論的角度看待這個問題,這就是一個典型的反饋回路的控制問題:從揚聲器發(fā)出的信號經(jīng)空間衰減后進入麥克風,此信號再經(jīng)過電路放大送給揚聲器,如此形成一個閉環(huán)回路;當此閉環(huán)回路的增益小于1時,系統(tǒng)穩(wěn)定;當此閉環(huán)回路的增益大于1時,系統(tǒng)產(chǎn)生反饋自激。
為了防止擴聲系統(tǒng)的反饋自激,最基本的做法就是減小系統(tǒng)的環(huán)路增益。傳統(tǒng)的做法有:1、改善環(huán)境聲裝,提高從揚聲器到麥克風的衰減,從而降低環(huán)路增益;2、采用指向型音柱、選用指向型麥克風等,這都是為了達到減小從揚聲器到麥克風的反饋增益,從而降低環(huán)路增益。隨著電路處理技術(shù)和數(shù)字音頻信號處理技術(shù)(DSP)的發(fā)展,20年前出現(xiàn)了移頻、移相和陷波濾波器等技術(shù),進一步提高傳聲增益。其基本原理也都是利用環(huán)境空間對不同頻率信號的衰減不同,來降低回路增益:3、移頻技術(shù)是通過將麥克風拾取的信號頻率(大多是)向高頻端變換(頻率移升),對麥克風拾取信號頻率變換增加,使反饋信號的頻率逐漸增加,而使得在反饋最強點的頻率信號在每一次的反饋中逐漸移到更高的頻率,從而使信號偏移最強反饋頻率點,減小反饋增益,達到防止反饋自激的目的;4、移相技術(shù)是通過調(diào)整麥克風信號相位的方法,使得揚聲器發(fā)出的信號相位隨著時間改變,這樣不同相位的信號在麥克風處疊加而得到抵消或減弱,從而降低反饋強度,減小回路增益,到達防止反饋自激的目的;5、陷波濾波器則是采用數(shù)字信號處理技術(shù)對特定頻率進行陷波,降低特定頻率的回路增益,而選定的特定頻率是環(huán)境空間的反饋增益中最大的一些頻率,如此降低回路的增益,達到防止反饋自激的目的。但是,以上3和4的移頻和移相技術(shù)會嚴重地造成音頻信號失真,產(chǎn)生音頻的顫抖現(xiàn)象,同時對傳聲增益的提升也有限;5的陷波濾波器的方法沒有音頻顫抖現(xiàn)象,但由于對特定頻率的陷波,同樣造成音頻的失真,此外,其另一個缺陷是:對音箱、麥克風的位置較為敏感(這是因為音頻在空間傳播、反射后在不同位置疊加的效果不同,不同位置的最大反饋增益頻率不同所致),同時對環(huán)境溫度和濕度敏感,因此當以上條件改變時,往往需要重新調(diào)整陷波器;還有,在麥克風較多時,由于敏感的頻率過多,不得不設置許多頻點的陷波器,造成音頻的嚴重失真。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的缺陷,提供一種基于自適應子帶音頻反饋抑制方法,解決了現(xiàn)有擴聲技術(shù)中傳聲增益不足、容易引起擴聲系統(tǒng)自激反饋產(chǎn)生嘯叫的技術(shù)問題。
為解決上述技術(shù)問題,本發(fā)明提供一種自適應子帶音頻反饋抑制方法,其特征是,包括以下步驟:
步驟一,分別對采樣獲得的麥克風信號和輸出到功放信號按采樣時間順序分割為數(shù)據(jù)塊,對分割的數(shù)據(jù)塊進行子帶濾波器濾波,分別得到麥克風子帶信號和功放子帶信號;將時間域音頻信號轉(zhuǎn)換為子帶信號進行處理,是因為子帶頻帶窄,因此可以對信號進行下采樣;通過對子帶信號的下采樣,可大大地降低子帶濾波器的長度(點數(shù)),因此可大幅度減少子帶濾波器的計算量和子帶濾波器修正時的計算量,從而提高了本算法的效率;
步驟二,利用子帶反饋濾波器對功放信號進行濾波,得到揚聲器傳遞到麥克風產(chǎn)生的反饋信號;
步驟三,從所述麥克風子帶信號中減去所述反饋信號,得到消除反饋后的麥克風子帶信號;由步驟二計算得到的反饋信號(在自適應濾波器收斂后)與實際麥克風拾取的反饋信號一致,因此當從麥克風信號中減去估算的反饋信號后,剩余的成分是單純的發(fā)言人的語音;如此,原有的反饋回路被切斷,因此提高擴聲增益不會引起嘯叫;
步驟四,對所述功放子帶信號、所述麥克風子帶信號、以及所述消除反饋后的麥克風子帶信號進行加權(quán)能量分析統(tǒng)計,決定子帶反饋濾波器的修正步長;
步驟五,將所述消除反饋后的麥克風子帶信號,經(jīng)過子帶合成濾波器復原為時間域語音信號,輸出給功放擴聲;由于在步驟一中將數(shù)據(jù)分割為數(shù)據(jù)塊經(jīng)子帶濾波器濾波得到子帶信號,在將子帶信號合成復原為時間域的語音信號時,各數(shù)據(jù)塊之間容易產(chǎn)生不連貫畸變,造成數(shù)據(jù)塊效應噪聲,因此需對時間域信號進行濾波,以濾除數(shù)據(jù)塊效應噪聲;
步驟六,根據(jù)所述修正步長、功放子帶信號和消除反饋后的麥克風子帶信號,對子帶反饋濾波器進行修正;在很短的時間里,子帶反饋濾波器將與實際揚聲器到麥克風的傳遞函數(shù)相一致,起到消除反饋的作用。
進一步的,所述步驟一中,將采樣信號根據(jù)設定的子帶數(shù)量和時間順序分割為數(shù)據(jù)塊,再對分割的數(shù)據(jù)塊經(jīng)子帶濾波器濾波分別得到輸入子帶信號和功放子帶信號。
進一步的,考慮到算法引入的群延時和聲音從揚聲器傳播到麥克風引起的延時,調(diào)整功放信號的時間,使之與回聲信號時間對齊,保持功放信號和回聲信號同步。
進一步的,調(diào)整所述子帶反饋濾波器(反饋濾波器的說法是從功能上講,而此濾波器本身是自適應濾波器)的修正步長,包括凍結(jié)濾波器、以及不同步長的修正參數(shù)。
進一步的,在所述步驟三之后,根據(jù)需求加入降噪、自動增益控制、均衡(EQ)處理,由于反饋抑制處理后的數(shù)據(jù)更接近于發(fā)言人的原聲,因此在做降噪、自動增益控制處理時可得到更好的效果。
進一步的,還包括移頻、移相處理。在對音質(zhì)要求不高的場合,在經(jīng)過反饋抑制濾波之后,再加入移頻、移相處理。
一種自適應子帶音頻反饋抑制方法,其特征是,包括以下步驟:
步驟一,分別對采樣獲得的麥克風信號和輸出到功放信號按采樣時間順序分割為數(shù)據(jù)塊,對分割的數(shù)據(jù)塊進行子帶濾波器濾波,分別得到麥克風子帶信號和功放子帶信號;將時間域音頻信號轉(zhuǎn)換為子帶信號進行處理,是因為子帶頻帶窄,因此可以對信號進行下采樣;通過對子帶信號的下采樣,可大大地降低子帶濾波器的長度(點數(shù)),因此可大幅度減少子帶濾波器的計算量和子帶濾波器修正時的計算量,從而提高了本算法的效率;
步驟二,利用子帶反饋濾波器對功放信號進行濾波,得到系統(tǒng)產(chǎn)生的反饋信號;
步驟三,從所述麥克風子帶信號中減去所述反饋信號,得到消除反饋后的麥克風子帶信號;由步驟二計算得到的反饋信號(在自適應濾波器收斂后)與實際麥克風拾取的反饋信號一致,因此當從麥克風信號中減去估算的反饋信號后,剩余的成分是單純的發(fā)言人的語音;如此,原有的反饋回路被切斷,因此提高擴聲增益不會引起嘯叫。
步驟四,對所述功放子帶信號、所述麥克風子帶信號、以及所述消除反饋后的麥克風子帶信號進行加權(quán)能量分析統(tǒng)計,決定子帶反饋濾波器的修正步長;
步驟五,將所述消除反饋后的麥克風子帶信號,經(jīng)過子帶合成濾波器復原為時間域語音信號,輸出給功放擴聲;由于在步驟一中將數(shù)據(jù)分割為數(shù)據(jù)塊經(jīng)子帶濾波器濾波得到子帶信號,在將子帶信號合成復原為時間域的語音信號時,各數(shù)據(jù)塊之間容易產(chǎn)生不連貫畸變,造成數(shù)據(jù)塊效應噪聲,因此需對時間域信號進行濾波,以濾除數(shù)據(jù)塊效應噪聲;
步驟六,根據(jù)所述修正步長、功放子帶信號和消除反饋后的麥克風子帶信號,對子帶反饋濾波器進行修正;在很短的時間里,子帶反饋濾波器將與實際揚聲器到麥克風的傳遞函數(shù)相一致,起到消除反饋的作用;
進一步的,所述步驟一中,將采樣信號根據(jù)設定的子帶數(shù)量和時間順序分割為數(shù)據(jù)塊,再對分割的數(shù)據(jù)塊經(jīng)子帶濾波器濾波分別得到參考子帶信號和功放子帶信號。
進一步的,還包括保持功放信號和回聲信號同步的步驟。
進一步的,所述修正步長包括凍結(jié)濾波器、以及不同步長的修正參數(shù)。
進一步的,在所述步驟三之后,根據(jù)需求加入降噪、自動增益控制、均衡處理。由于反饋抑制處理后的數(shù)據(jù)更接近于發(fā)言人的原聲,因此在做降噪、自動增益控制處理時可得到更好的效果;
進一步的,還包括移頻、移相處理,在對音質(zhì)要求不高的場合,在經(jīng)過反饋抑制濾波之后,再加入移頻、移相處理,可以進一步提高傳聲增益
本發(fā)明所達到的有益效果:
1)本發(fā)明采用反饋信號估算、掐斷反饋回路的方法,極大地提高了傳聲增益;與陷波濾波的方法相比,通常陷波濾波的方法只能提升傳聲增益大約3至6分貝,而本方法可穩(wěn)定地提高傳聲增益6至10分貝,在環(huán)境較好時可提升傳聲增益15分貝。
2)本發(fā)明采用自適應濾波的方法,因此可以針對任何環(huán)境自動適應,無需像陷波濾波方法那樣人為地設置調(diào)節(jié),簡化了系統(tǒng)設置、大幅度地提高了系統(tǒng)的環(huán)境適應性和系統(tǒng)使用的簡便性。
3)本發(fā)明采用反饋抵消的方法,對音頻信號不做移頻、移相,也不對特定頻率進行陷波,因此,對語音影響極小,無上述的語音失真,提高了系統(tǒng)的保真度。
4)本發(fā)明采用了子帶算法,降低了不同頻率信號之間的相互影響和干擾,提高了自適應濾波器的穩(wěn)定性,減小了反饋抑制處理對音質(zhì)的影響,提高了處理效率,降低了系統(tǒng)成本。
5)在對音質(zhì)要求不高的場合,本發(fā)明也可與移頻、移相等處理相結(jié)合,可以進一步提高傳聲增益。
附圖說明
圖1是本發(fā)明一種自適應子帶音頻反饋抑制算法的原理示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
如圖1所示,M_in 是一路麥克風的采樣信號,S_out是經(jīng)反饋抑制處理后輸出給功放的信號,本發(fā)明的一種自適應子帶音頻反饋抑制算法,包括以下步驟:
步驟一,分別對采樣獲得的麥克風信號M_in和輸出到功放參考信號S_out按采樣時間順序分割為數(shù)據(jù)塊(Data Block),對分割的數(shù)據(jù)塊進行子帶濾波器濾波,分別得到麥克風和功放的子帶信號。數(shù)據(jù)塊的大小由子帶濾波器的子帶數(shù)決定。從理論上講,子帶的數(shù)量越多,子帶自適應濾波計算量越小,算法效率越高;但在增加子帶數(shù)量的同時,子帶的帶寬變得更窄(以音頻帶寬D為例,子帶數(shù)為N,則一般子帶帶寬為D/N),因此需要子帶濾波器更長,子帶濾波的計算量更大,引起系統(tǒng)總計算量上升;從系統(tǒng)引入的群延時來看,當子帶數(shù)量增加,會引入更長的系統(tǒng)群延時,而在擴聲系統(tǒng)中系統(tǒng)群延時是一個重要的指標。因此,綜合優(yōu)化系統(tǒng)計算量和系統(tǒng)群延時等要求,有一個最佳子帶數(shù)量;這里以子帶數(shù)128為例,做出原理說明,但這不局限本發(fā)明的權(quán)利要求。此外,為了減小由于數(shù)據(jù)分塊造成的分塊效應(Block-effect),數(shù)據(jù)分塊時采用了重疊分塊的方法(Over-lap),即每一個數(shù)據(jù)塊包含2N個采樣點,下一個數(shù)據(jù)塊不是移動2N個采樣點,而是只移動N個采樣點,這樣兩個相鄰的數(shù)據(jù)塊之間有N個采樣點是重疊(相同)的,如此可降低2個數(shù)據(jù)塊之間銜接造成的分塊效應。此外,子帶可根據(jù)需要采用等帶寬子帶,也可采用等比帶寬子帶或其他不同帶寬子帶,這些都在本發(fā)明的權(quán)利要求之內(nèi)。
步驟二,利用子帶反饋濾波器對參考信號進行濾波,得到系統(tǒng)產(chǎn)生的反饋信號。在系統(tǒng)啟動初期,為了保證自適應濾波器穩(wěn)定,對子帶反饋濾波器進行初始化,設置濾波器參數(shù)為0。
步驟三,從麥克風子帶信號中除去估算出的反饋信號,得到消除反饋后的麥克風子帶信號。在實際計算中,計算出的反饋信號與實際的反饋信號之間總存在誤差,此誤差即為自適應濾波器的輸出誤差,用于自適應濾波器的修正。
步驟四,對功放參考子帶信號、麥克風子帶信號、以及上述消除反饋后的麥克風子帶信號進行加權(quán)能量分析統(tǒng)計,決定子帶反饋濾波器(自適應濾波器)的修正步長。自適應濾波器的修正步長對自適應濾波器的穩(wěn)定性和收斂性極其重要;修正步長太大,容易引起濾波器發(fā)散,最終造成自適應濾波器失效;但修正步長太小,引起濾波器收斂速度太慢,特別在使用定點(Fix Point)處理器時數(shù)據(jù)有效位數(shù)有限的情況下,會影響自適應濾波器的收斂精度,造成較大的估算誤差。此外,為了保證自適應濾波器的穩(wěn)定和濾波效果,根據(jù)功放參考信號的能量調(diào)整修正步長:即當功放參考信號能量較小時,取較小的修正步長;當功放參考信號能量較大時,取較大的修正步長;當功放參考信號能量很?。o語音)時,設置修正步長為零,凍結(jié)自適應濾波器,防止濾波器發(fā)散。
步驟五,將消除反饋后的麥克風子帶信號,經(jīng)過子帶合成濾波器復原為時間域語音信號,輸出給功放擴聲。如上述步驟一所述,為了減小由于數(shù)據(jù)分塊造成的分塊效應(Block-effect),數(shù)據(jù)分塊時采用了重疊分塊的方法(Over-lap),因此,經(jīng)子帶合成濾波器復原得到的時間域語音信號需仔細選擇復原濾波器,以保證信號的完美復原和減少數(shù)據(jù)分塊效應。
步驟六,根據(jù)前述決定的修正步長、以及功放參考子帶信號和消除反饋后的麥克風子帶信號,對子帶反饋濾波器參數(shù)進行修正。自適應濾波器參數(shù)修正的算法有LMS、NLMS、PNLMS等多種算法,LMS的波動較大;NLMS穩(wěn)定但收斂速度較PNLMS慢;PNLMS 穩(wěn)定但計算量較大。本發(fā)明采用簡化的PNLMS方法,但不排除以上的方法。
本發(fā)明說明了一種自適應子帶音頻反饋抑制算法,由于采用子帶技術(shù)降低了子帶(相對于原音頻頻帶)的帶寬,因此可下采樣子帶信號,減少子帶信號數(shù)據(jù)量,如此降低了自適應濾波器的計算量,提高了算法效率。但是,本發(fā)明不限于以上的子帶形式,在時間域內(nèi)類似的自適應濾波器方法也在本權(quán)利要求之內(nèi),因為時間域信號可看作是只有一個子帶的特殊條件,同時采用自適應濾波器的方法是本發(fā)明與其他反饋抑制方法本質(zhì)的不同。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。