摘 要:自適應噪聲消除技術在信號處于噪聲很強的環境中時,可以非常有效地將噪聲去除掉。而DSP是一種高速、高性能的專業數字信號處理器,用DSP實現自適應噪聲消除,其具有很好的實時性和處理精度。在此完成了基于DSP的自適應噪聲消除系統,有效地消除了信號中的噪聲。
關鍵詞:自適應;噪聲消除;DSP;LMS;RLS
中圖分類號:TP368.1文獻標識碼:B文章編號:1004373X(2008)2018402
Adaptive Noise Cancellation System Based on DSP
QI Shumin1, LIANG Wenjia2,ZHANG Meijuan2
(1.Department of Information Engineering,Chang′an University,Xi′an,710064,China;
2.Department of ElectricalControl Engineering,Chang′an University,Xi′an,710064,China)
Abstract:Adaptive noise cancellation is used to remove background noise from useful signals.This is an extremely useful technique where a signal is submerged in a very noisy environment.DSP is a kind of high speed and performance professional digital signal processor.Using DSP in adaptive noise cancellation system,real-time control and high precision can be achieved.In this paper,an adaptive noise cancellation system based on DSP is designed,and noise in the signals is decreased efficiently.
Keywords:adaptive;noise cancellation;DSP;LMS;RLS
DSP(Digital Signal Processor,數字信號處理器) 是在模擬信號變換成數字信號以后進行高速實時處理的專用處理器件,DSP具有接口簡單、方便;精度高、運算速度快、穩定性好;編程方便,容易實現復雜的算法;集成方便等優點,已經被廣泛的應用于通信、雷達、語音、圖像、消費類電子產品等領域。DSP技術的發展和應用,使得自適應信號處理技術得以實現。自適應噪聲消除是消除強背景噪聲的一種有效的技術,在通常情況下,背景噪聲不是穩定不變的,而是隨著時間的變化而變化。因此,噪聲消除應該是一個自適應噪聲處理過程:既可以在時變的噪聲環境下工作,還可以根據環境的改變而調整自身的工作參數。在本文中,利用DSP的優越性能,在TI公司TMS320VC5416芯片上,分別實現LMS和RLS算法的自適應強噪聲消除系統,該系統經過驗證,能夠很好地消除背景噪聲,恢復出原始話音信號。
1 自適應噪聲消除算法
自適應噪聲消除算法的基本思想是將噪聲混雜的信號通過一個濾波器來達到抑制噪聲,并使信號本身無失真通過的這樣一個過程。并且,正如上面所述,這個自適應處理過程不需要預先知道信號以及噪聲的特點。圖1為自適應噪聲消除算法的原理框圖。
為了實現這個自適應噪聲消除系統,這里使用2個輸入源和1個自適應濾波器。一個輸入源是混入了噪聲的信號(稱之為主輸入源,用s+n0表示),另一個輸入源為背景噪聲,這個背景噪聲與主輸入源噪聲相關,而與主輸入源中的信號無關(稱之為噪聲參考輸入源,用n1表示),噪聲參考輸入源通過自適應濾波器后輸出y。濾波器不斷地自我重新調整,使得y與n0的誤差達到最小。然后用主信號源減去輸出y得到系統的輸出z= s + n0 -y,z即去噪后的信號。
圖1 自適應噪聲消除算法的原理框圖
假設s,n0,n1,y是平穩過程,并且均值為0,s與n0 和n1無關聯,而n1 和n0相關,則可以得出以下的表達式:
E[z2]= E[s2]+ E[(n0 -y)2]
當調整濾波器,使得E[z2]達到最小值時,E[(n0 - y)2]也是最小值,因此,系統輸出z可以作為自適應濾波器的誤差信號。
文中的自適應濾波器采用2種自適應濾波算法:一種是最小均方算法(LMS),另一種是RLS算法。
最小均方算法(LMS)應用最廣、算法最簡單。LMS算法主要目的是使誤差信號的均方值達到最小。自適應濾波器的系數由下式決定。
w(i)=w(i-1)+μ·n1(i)·z(i)
其中μ是步長,決定算法收斂的速度。
RLS算法的濾波器的系數公式如下:
k(i) = λ-1P(i-1)n1 (i)1 + λ-1nH1 (i)P(i-1)n1 (i)
w(i)=w(i-1)+k(i)z(i)
P(i) = λ-1P(i-1)-λ-1k(i)nH1 (i)P(i-1)
其中,P(i)是第i個自相關矩陣的逆;k(i)是第i個增益向量;λ是指數型遺忘因子。從算法中矩陣的運算可以看出來,RLS算法比LMS算法要復雜得多。對于一個N階的濾波器,LMS算法每次迭代需要O(N)次運算,而RLS算法需要O(N2)此運算。在DSK方式實現時,發現在48 kHz的采樣率下,采用LMS算法設計的濾波器的階數最多20階,而在同樣的條件下,采用RLS算法設計的濾波器的階數只有5階左右。
2 DSP實現
本文的自適應噪聲消除算法處理器件采用TI的TMS320VC5416型DSP處理器。該處理器采用改進的哈佛結構,擁有專用的硬件乘法器和專門為數字信號處理而設計的指令系統,快速的指令周期等優點。由于聲音是模擬信號,要使用DSP對其進行處理,首先需要將模擬信號進行模/數轉換,本文采用MAX 197作為A/D轉換芯片。MAX 197是Maxim公司推出的8通道、12位的高速A/D轉換芯片,單次轉換時間僅為6 μs,采樣速率可達100 kSa/s。經過噪聲消除后的信號質量可以通過音箱來辨別,因此,在噪聲消除后,還要將信號進行數/模轉換。本文采用MX 7541作為系統的D/A轉換芯片。MX 7541是美國Maxim公司生產的高速高精度12位數字/模擬轉換器芯片,由于MX 7541轉換器件的功耗特別低,而且其線性失真可低達0.012%,因此,該D/A轉換器芯片特別適合于精密模擬數據的獲得和控制。
本文的自適應噪聲消除系統結構圖2所示。
麥克風1用于采集帶有強烈背景噪聲的話音信號作為系統的輸入1,麥克風2用于采集背景噪聲作為輸入2,輸入1和輸入2經過音頻接口輸入到MAX197中進行A/D轉換,轉換后的信號被送入TMS320VC5416中進行自適應噪聲消除處理,處理后的信號經過MX7541的D/A轉換后,送入音箱進行播放。另外,還可以通過計算機和Matlab軟件來比較自適應噪聲消除系統的輸入/輸出信號,驗證自適應噪聲消除系統工作情況。
圖3為3臺計算機記錄的自適應噪聲消除系統的工作情況:
圖2 自適應噪聲消除系統結構圖
圖3 自適應噪聲消除系統工作情況
比較主輸入信號、參考噪聲輸入信號和濾波器輸出信號,可以清楚地看出輸出與主輸入信號相比,噪聲成分被大大削弱,這與用音箱直接聽到的聲音效果一致,以上結果證明用DSP
成功地實現了實時的自適應噪聲消除系統。
3 結 語
本文采用TI的TMS320VC5416型DSP成功地實現了自適應噪聲消除系統,試驗的結果顯示LMS算法和RLS算法是去除噪聲的自適應濾波器非常有效的方法,DSP板也是實現實時自適應噪聲消除系統的好平臺。在整個系統工作過程中,仍有少量的背景噪聲不能完全從信號中去除掉,為了測試算法的效果,用Matlab產生一個白噪聲信號作為噪聲參考信號,同時將參考噪聲信號進行微小扭曲后與從麥克風輸入的語音信號疊加后作為主輸入信號,然后用前文所述的實現方式對主輸入信號和參考噪聲信號進行自適應噪聲去除算法處理。在處理后,噪聲完全從信號中去除掉了,由此,可以看出,背景噪聲不能完全從信號中去除掉問題不是由算法造成的,而是由于試驗設備造成的。麥克風、電纜以及采樣造成會造成信號扭曲,而這些扭曲在噪聲去除算法中是無法補償的,因此其可能是造成這個問題的最可能原因。
參考文獻
[1]劉薇,吳慶彪.基于LMS自適應噪聲抵消法的無位置傳感器研究[J].現代電子技術,2008,31(3):137-139.
[2]周又玲,周鐵,王志新.自適應LMS算法的DSP實現[J].現代電子技術,2006,29(9):135-137.
[3]李素芳,李穎,閏智義.單通道RLS算法自適應噪聲消除及其遺忘因子的確定[J].長春工業大學學報:自然科學版,2007,28(6):224-228.
[4]楊躍忠,闕沛文,李亮.自適應LMS濾波器在FPGA中的實現[J].微計算機信息,2006(22):158-160.
[5]戴逸民,梁曉雯,裴小平.基于DSP的現代電子系統設計[M].北京:電子工業出版社,2002.
[6]姚天任,孫洪.現代數字信號處理[M].武漢:華中科技大學出版社,2002.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文