關(guān)鍵詞: 聲學(xué);窄帶ANC;FPGA;并聯(lián)FxLMS算法;資源復(fù)用
中圖分類號: TN98;O422.8
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170182
中文引用格式: 姜宇程,關(guān)添,王佳飛. 窄帶噪聲主動控制系統(tǒng)的FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(9):61-63,67.
英文引用格式: Jiang Yucheng,Guan Tian,Wang Jiafei. The FPGA implementation of narrowband active noise control system[J].Application of Electronic Technique,2017,43(9):61-63,67.
0 引言
噪聲污染廣泛存在于工業(yè)生產(chǎn)和日常生活中,而其中的周期性噪聲,如發(fā)動機、壓縮機、風扇及螺旋槳等旋轉(zhuǎn)或往復(fù)設(shè)備發(fā)出的噪聲也十分常見[1]。由于其噪聲能量集中分布于特定的頻帶,所以被稱為窄帶噪聲。隨著電子技術(shù)的進步,主動噪聲控制技術(shù)逐漸發(fā)展,相比于傳統(tǒng)的被動噪聲控制,主動噪聲控制具有成本低、靈活性高等優(yōu)點[2]。而且窄帶噪聲不同于寬帶噪聲,其頻率數(shù)值往往可以通過非聲學(xué)傳感器采集得到,進而避免了聲反饋問題,更適合于采用主動控制的方法[3]。
目前主動噪聲控制系統(tǒng)工程實現(xiàn)時主要采用的是DSP處理器,其優(yōu)點在于相關(guān)驅(qū)動比較成熟并且芯片成本較低[4]。但是隨著窄帶噪聲頻率的提高,需要的音頻采樣率也要提高,因此計算量會相應(yīng)增加,DSP的計算速度就會成為瓶頸,所以目前的主動噪聲控制系統(tǒng)所應(yīng)用的場景都是低頻噪聲[5]。為了能夠?qū)Ω哳l噪聲進行主動控制,同時也為了應(yīng)對多頻率、多通道情況下計算量成倍增加的情況,本系統(tǒng)采用并行計算能力較強的FPGA作為核心處理器,并對并聯(lián)結(jié)構(gòu)的窄帶前饋FxLMS算法進行了工程實現(xiàn)與實際測試。此外考慮到并聯(lián)結(jié)構(gòu)算法對于乘法器資源的消耗大,本文采用乘法器資源復(fù)用技術(shù)[6],極大降低了系統(tǒng)成本,便于系統(tǒng)的實際工程應(yīng)用。
1 FxLMS算法分析與改進
1.1 窄帶前饋FxLMS算法
前饋ANC系統(tǒng)有兩種實現(xiàn)方法,其主要區(qū)別在于參考信號的來源[2]。雖然用聲學(xué)傳感器采集初級噪聲作為參考信號的算法可以針對寬帶和窄帶噪聲進行主動控制,但是聲反饋問題會嚴重影響算法的穩(wěn)定性。所以本文設(shè)計的系統(tǒng)只針對窄帶噪聲信號,從而可利用加速度計、轉(zhuǎn)速計等非聲學(xué)傳感器采集并計算出噪聲信號主要頻率,進而在系統(tǒng)內(nèi)部生成參考信號。窄帶前饋FxLMS算法的結(jié)構(gòu)如圖1所示。算法主要包括參考信號的產(chǎn)生、次級聲通道的離線辨識以及LMS自適應(yīng)濾波3個部分[7]。
圖1中W(z)代表FIR濾波器,P(z)代表初級聲通道,S(z)代表從次級噪聲數(shù)模轉(zhuǎn)換到傳聲器采集到音頻數(shù)據(jù)之間的次級聲通道,[8],為了補償次級聲通道的影響,F(xiàn)xLMS算法需要得到次級聲通道S(z)的M階FIR估計 。假設(shè)次級聲通道是時不變系統(tǒng),則可以采用離線辨識的方法。圖1中虛線框內(nèi)即為系統(tǒng)所采用的離線辨識模塊。穩(wěn)定后得到次級聲通道的傳遞函數(shù)為:
1.2 并聯(lián)結(jié)構(gòu)FxLMS算法
在實際中,窄帶噪聲往往還包括其基頻的高次諧波或者其他能量較高的頻率分量。為了解決這個問題,可以使上一節(jié)中的正弦信號發(fā)生器包含多個對應(yīng)的頻率分量,這樣做的優(yōu)點是算法結(jié)構(gòu)簡單、資源消耗低。但同時會帶來一個嚴重的問題,即當噪聲中各頻率分量差距較大時,同一個步長因子μ無法使所有頻率達到最佳的收斂狀態(tài),會產(chǎn)生振蕩或者不收斂的情況。而當各頻率分量差距較小時,就需要自適應(yīng)濾波器的階數(shù)足夠長,以滿足相鄰頻率的高分辨率,這會導(dǎo)致收斂速度慢、量化誤差大等問題[2]。所以,解決這個問題最好的辦法是單獨處理各個頻率分量,即采用并聯(lián)結(jié)構(gòu)的FxLMS算法。算法結(jié)構(gòu)如圖2所示。
自適應(yīng)算法的系數(shù)調(diào)整公式為:
在并聯(lián)結(jié)構(gòu)的FxLMS算法中,不同頻率的正弦參考信號由其對應(yīng)的自適應(yīng)濾波器分別處理。所有濾波器輸出信號相加后作為次級噪聲信號,用于抵消初級噪聲。通過這種方式將噪聲中不同的頻率成分分開處理,系統(tǒng)的穩(wěn)定性和收斂速度都會得到明顯提高,同時增加了系統(tǒng)應(yīng)用的靈活性。相比于一般結(jié)構(gòu)的FxLMS算法,并聯(lián)結(jié)構(gòu)算法會成倍地增加對系統(tǒng)資源的占用,但是這個不足可以利用系統(tǒng)FPGA實現(xiàn)過程中采用的資源復(fù)用技術(shù)克服。
2 ANC系統(tǒng)的搭建與實現(xiàn)
系統(tǒng)采用FPGA作為信號處理器的原因有兩點。首先是將算法進行硬件實現(xiàn)后,其運算速度更快,利于搭建實時處理系統(tǒng);其次利用FPGA并行計算的優(yōu)點,通過簡單的復(fù)制,即可將現(xiàn)有ANC系統(tǒng)擴展為多通道,使系統(tǒng)可以應(yīng)用于更多的實際場景。然而FPGA在實現(xiàn)數(shù)字信號處理算法,尤其是濾波器等乘加運算較多的算法時,其內(nèi)部的乘法器資源消耗會很大,而選擇乘法器數(shù)量多的FPGA型號會極大提高系統(tǒng)成本。所以為了提高ANC系統(tǒng)的實用性,需要對FPGA內(nèi)部的乘法器進行復(fù)用。
2.1 乘法器資源復(fù)用技術(shù)
考慮到系統(tǒng)中FPGA的工作時鐘為50 MHz,而音頻模塊的采樣時鐘為32 kHz,滿足系統(tǒng)時鐘頻率遠大于數(shù)據(jù)時鐘頻率的條件。所以采用將同一時刻并行進行的乘法運算部分轉(zhuǎn)換為串行計算的方法對乘法器進行復(fù)用,即所謂的時間復(fù)用。時間復(fù)用的時序過程如圖3所示。
假設(shè)有N個并行的階數(shù)為M的濾波器,則當數(shù)據(jù)時鐘上升沿到來時,需要計算出N×M個乘法結(jié)果,即需要N×M個乘法器。而如果采用復(fù)用技術(shù),乘法器在數(shù)據(jù)有效后接受控制器的統(tǒng)一調(diào)度,逐一計算各濾波器在該級的乘法運算,只要滿足兩次乘法運算的時間間隔大于乘法器輸出結(jié)果的時間,則N個乘法器串行計算的輸出結(jié)果正確。這樣并行濾波器所消耗的乘法器數(shù)目就會降為M個,大大節(jié)約了乘法器資源。
由于本系統(tǒng)是對相同類型的算法模塊進行乘法器復(fù)用,所以可以采用簡單的計數(shù)器實現(xiàn)調(diào)度控制,即在數(shù)據(jù)有效后對系統(tǒng)時鐘開始進行計數(shù),在不同的計數(shù)值進行各算法模塊的乘法運算,同時在不同的計數(shù)值輸出各乘法運算結(jié)果。
2.2 系統(tǒng)分析
本文所實現(xiàn)的ANC系統(tǒng)所完成的功能是對環(huán)境噪聲中3個主要頻率分量進行主動控制,達到整體降噪的目的。降噪算法采用3個并聯(lián)的FxLMS濾波器實現(xiàn),如果不采用資源復(fù)用技術(shù),除了次級聲通道辨識以外,算法還需要3個128階FIR濾波器以及3個64階LMS自適應(yīng)濾波器,理論上共需要960個乘法器。由于采用了復(fù)用技術(shù),所以系統(tǒng)算法包括一個128階的次級聲通道辨識模塊、一個三輸入三輸出的128階FIR濾波器和一個三輸入三輸出的64階LMS自適應(yīng)濾波器,只需要320個乘法器即可,相比復(fù)用前節(jié)約了2倍的乘法器資源。系統(tǒng)采用的FPGA芯片為Altera公司Stratix III系列中的EP3SE260F1152C2,系統(tǒng)實現(xiàn)后所消耗的資源及比例如表1所示。
由表1可以看出,F(xiàn)PGA的資源可以滿足算法要求,經(jīng)調(diào)試后系統(tǒng)整體可以正常工作。
3 結(jié)果分析
對所搭建的ANC系統(tǒng)進行實際應(yīng)用測試,測試所采用的初級噪聲為音箱發(fā)出的窄帶噪聲信號,其主要頻率為1 000 Hz、2 000 Hz和3 000 Hz。ANC系統(tǒng)工作之前,拾音器采集到的聲音為初級噪聲,ANC系統(tǒng)工作之后,拾音器采集到的聲音為初級噪聲和次級噪聲疊加以后的誤差噪聲信號。通過將ANC系統(tǒng)工作前后拾音器所采集到的信號的時域和頻域進行對比,即可以判斷預(yù)期的系統(tǒng)功能是否實現(xiàn)。
對參考信號頻率與噪聲頻率基本相同的情況進行測試,即參考信號的頻率成分1 000 Hz、2 000 Hz和3 000 Hz。圖4顯示了ANC系統(tǒng)工作前后的噪聲信號時域和頻域的對比。
定義收斂時間為時域波形中的誤差噪聲信號幅值降低到初級噪聲幅值的20%以下的時間,對噪聲時域波形的分析可以得出在無頻偏的情況下,ANC系統(tǒng)的收斂時間為12.5 ms。分析頻域圖可以得出,無頻偏情況下系統(tǒng)對于噪聲中1 000 Hz、2 000 Hz和3 000 Hz的頻率分量分別可以達到15.5 dB、14.3 dB和11.0 dB的衰減。基于DSP的FxLMS算法的系統(tǒng)在汽車發(fā)動機噪聲主動控制測試的結(jié)果為13.5 dB[10],可以看出本文所實現(xiàn)的系統(tǒng)在降噪效果和功能擴展方面具有明顯優(yōu)勢。
4 結(jié)論
本文提出了一種基于FPGA的窄帶噪聲主動控制系統(tǒng)的設(shè)計方法。該系統(tǒng)克服了傳統(tǒng)ANC系統(tǒng)只能針對低頻窄帶噪聲控制應(yīng)用的不足,使其更適于實際應(yīng)用。此外,資源復(fù)用技術(shù)的應(yīng)用大大減少了系統(tǒng)對于FPGA乘法器資源的消耗,降低了系統(tǒng)成本。由于FPGA的并行性特點,可以通過模塊復(fù)制將系統(tǒng)應(yīng)用于多頻率多通道噪聲主動控制的環(huán)境。
通過對系統(tǒng)的實際測試驗證了系統(tǒng)噪聲控制的有效性。通過與不同噪聲頻率分析算法配合,可以將該系統(tǒng)應(yīng)用于多種窄帶噪聲的控制領(lǐng)域。例如對于汽車車內(nèi)發(fā)動機噪聲的主動控制,可以通過實時采集汽車發(fā)動機信號,分析出汽車發(fā)動機噪聲主要頻率,進而利用本文所提出的系統(tǒng)對其進行主動控制。但是本文系統(tǒng)自適應(yīng)算法的內(nèi)部參數(shù),包括濾波器階數(shù)以及算法步長因子等是通過仿真實驗確定的,并沒有形成一個統(tǒng)一的選擇方法,還需要后續(xù)的研究加以完善,以擴大系統(tǒng)的實際應(yīng)用范圍。
原文標題:【論文精選】窄帶噪聲主動控制系統(tǒng)的FPGA實現(xiàn)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論