趙永翼, 丁建楠
(沈陽(yáng)師范大學(xué) 科信軟件學(xué)院, 沈陽(yáng) 110034)
在現(xiàn)實(shí)世界中,信號(hào)的應(yīng)用已經(jīng)占據(jù)了一個(gè)具有挑戰(zhàn)性的地位。隨著可編程邏輯器件的發(fā)展,現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)成為實(shí)現(xiàn)自適應(yīng)濾波器的重要手段。FPGA在對(duì)相同的硬件進(jìn)行重新編程方面表現(xiàn)出良好的靈活性,同時(shí)通過(guò)在較短的處理時(shí)間內(nèi)啟用并行計(jì)算實(shí)現(xiàn)了良好的性能。
自適應(yīng)濾波器是根據(jù)優(yōu)化算法自調(diào)整傳遞函數(shù)的濾波器。由于優(yōu)化算法的復(fù)雜性,大多數(shù)自適應(yīng)濾波器都是數(shù)字濾波器,它們執(zhí)行數(shù)字信號(hào)處理,并根據(jù)輸入信號(hào)來(lái)調(diào)整性能[1-3]。對(duì)于某些應(yīng)用程序,需要自適應(yīng)系數(shù),因?yàn)樗杼幚聿僮鞯哪承﹨?shù)(例如某些噪聲信號(hào)的特性)事先不知道。在這種情況下,通常采用自適應(yīng)濾波器,它使用反饋來(lái)細(xì)化濾波器系數(shù)的值,從而得到它的頻率響應(yīng)。自適應(yīng)濾波技術(shù)是近幾十年來(lái)發(fā)展起來(lái)的信號(hào)處理理論的一個(gè)重要分支。它的主要特點(diǎn)是濾波器參數(shù)可以隨著輸入信號(hào)統(tǒng)計(jì)特性的變化而自適應(yīng)調(diào)整,自適應(yīng)調(diào)整可以使濾波器在最佳狀態(tài)下運(yùn)行,獲得所需的輸出信號(hào)。自適應(yīng)濾波技術(shù)已廣泛應(yīng)用于通信系統(tǒng)、控制系統(tǒng)、雷達(dá)系統(tǒng)等領(lǐng)域。更重要的是,當(dāng)這種技術(shù)應(yīng)用于不同的應(yīng)用程序時(shí),它只是有不同的輸入信號(hào)和期望的信號(hào)。調(diào)整過(guò)程涉及到成本函數(shù)的使用。例如,最小化輸入的噪聲分量,這是濾波器最優(yōu)性能的一個(gè)準(zhǔn)則,它決定了如何修改濾波器系數(shù),以在下一次迭代中最小化成本。有維納濾波器,它是平均平方誤差的最優(yōu)線性濾波器,以及幾種試圖近似它的算法,如最速下降法。還有一種最小均方算法,由Windrow和Hoff開(kāi)發(fā),最初用于人工神經(jīng)網(wǎng)絡(luò)[4-5]。算法的選擇高度依賴于感興趣的信號(hào)和操作環(huán)境,以及所需的收斂時(shí)間和可用的計(jì)算能力。利用IIR(無(wú)限脈沖響應(yīng))或FIR(有限脈沖響應(yīng))濾波器可以建立自適應(yīng)數(shù)字濾波器。FIR本身是穩(wěn)定的,因?yàn)樗慕Y(jié)構(gòu)只涉及正向路徑,不存在反饋。反饋到輸入端的存在可能導(dǎo)致濾波器不穩(wěn)定,產(chǎn)生振蕩。因此,濾波器的設(shè)計(jì)是通過(guò)FIR實(shí)現(xiàn)來(lái)實(shí)現(xiàn)的。
LMS的步長(zhǎng)μ是一個(gè)非常重要的自適應(yīng)過(guò)濾參數(shù),同時(shí)它在參考信號(hào)功率、穩(wěn)定控制、收斂速度和LMS的波動(dòng)適應(yīng)過(guò)程中也非常重要。當(dāng)步長(zhǎng)較大時(shí),LMS算法收斂速度較快,但穩(wěn)態(tài)均方誤差(MSE)增大。另一方面,如果步長(zhǎng)比較小,MSE的穩(wěn)態(tài)較小,但收斂速度較慢。因此,步長(zhǎng)在LMS算法的收斂速度和MSE的穩(wěn)態(tài)之間提供了一個(gè)平衡。一個(gè)直觀的方法來(lái)提高LMS算法的性能是使步長(zhǎng)可變而非固定,也就是說(shuō),在LMS算法中選擇大的初始收斂步長(zhǎng)值,當(dāng)系統(tǒng)接近其穩(wěn)定狀態(tài)值時(shí),并使用小的步長(zhǎng)值時(shí),可以產(chǎn)生可變步長(zhǎng)LMS算法。利用該方法可以獲得較快的收斂速度和較小的穩(wěn)態(tài)MSE。為了便于描述,首先在具有真實(shí)信號(hào)的系統(tǒng)辨識(shí)模型的背景下,建立了LMS算法。在信號(hào)傳輸過(guò)程中,由于介質(zhì)性能的變化,會(huì)產(chǎn)生噪聲和失真。這些變化可能是慢變化或快變化,大多數(shù)時(shí)間變化是未知的。自適應(yīng)濾波器的應(yīng)用使信號(hào)失真降至最低,在實(shí)時(shí)信號(hào)處理領(lǐng)域得到了廣泛的應(yīng)用。自適應(yīng)濾波算法構(gòu)成了濾波系數(shù)的調(diào)節(jié)機(jī)制,實(shí)際上與經(jīng)典的優(yōu)化技術(shù)密切相關(guān)。此外,自適應(yīng)濾波器由于其實(shí)時(shí)自調(diào)整特性,在緩慢變化的環(huán)境中,可以有效跟蹤一個(gè)最佳動(dòng)作。自適應(yīng)濾波器的輸入輸出關(guān)系取決于其傳遞函數(shù)。這種結(jié)構(gòu)包括有限脈沖響應(yīng)(FIR)和無(wú)限脈沖響應(yīng)(IIR)濾波器。這對(duì)給定自適應(yīng)算法的計(jì)算復(fù)雜度和自適應(yīng)過(guò)程的總體速度有很大的影響。濾波器系數(shù)的自適應(yīng)遵循特定目標(biāo)函數(shù)或成本函數(shù)的最小化過(guò)程。
最小均方(LMS)算法作為自適應(yīng)算法中的一種基本方法和重要方法, 具有計(jì)算量小、實(shí)現(xiàn)簡(jiǎn)單等優(yōu)點(diǎn), 具有良好的可用性。 然而, 傳統(tǒng)的LMS實(shí)現(xiàn)難以滿足實(shí)時(shí)需求和高速的數(shù)字信號(hào)處理。 而且,隨著采樣率、單處理單元容量和系統(tǒng)頻率的提高, 嚴(yán)重增加了系統(tǒng)成本。 由于FPGA具有存儲(chǔ)量大、粒度小、并行計(jì)算等優(yōu)點(diǎn), 在基于并行延遲LMS(PDLMS)的FPGA中建立了一種基于約束型的PDLMS自適應(yīng)濾波結(jié)構(gòu)。 隨后, 將約束PDLMS應(yīng)用于信息采集系統(tǒng), 并將其性能與其他方法進(jìn)行了比較。
維納濾波算法中,以均方誤差表示的輸出為最優(yōu),下面給出了最優(yōu)輸出系數(shù)的表達(dá)式:
w0=R-1p
(1)
其中:R為輸入的相關(guān)矩陣;P為輸入與期望響應(yīng)之間的互相關(guān)向量。當(dāng)信號(hào)統(tǒng)計(jì)量隨時(shí)間變化時(shí),即使用自適應(yīng)濾波器的情況下,則必須重新計(jì)算輸出系數(shù)。這需要計(jì)算兩個(gè)矩陣,其中一個(gè)求倒數(shù),然后把它們相乘。該算法不能實(shí)時(shí)計(jì)算,因此必須使用其他近似維納濾波器的算法[6-9],可以使用最速下降法,收斂到最優(yōu)濾波器權(quán)值或給定值。由于曲面(或超曲面)的梯度指向最大值的方向增加,則梯度的反方向(-)將指向曲面的最小點(diǎn)。通過(guò)使用一種方式來(lái)更新權(quán)值,可以自適應(yīng)地達(dá)到最小值:
wn+1=wn+μ(-n)
(2)
其中,μ為步長(zhǎng)參數(shù),最小均方(LMS)算法類似于急降法,通過(guò)迭代逼近MSE最小值來(lái)調(diào)整權(quán)值。一開(kāi)始這種方法用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)。關(guān)鍵是,LMS算法不是每次都要計(jì)算梯度,而是使用梯度的粗略近似。誤差en,在濾波器輸出時(shí)可表示為
(3)
其中:dn是期望輸出;un是濾波器的輸入。利用誤差可以求出半徑的近似值:
=-2enun
(4)
將梯度的表達(dá)式代入急降法,權(quán)值更新得到
wn+1=wn+2μenun
(5)
其中μ為步長(zhǎng)參數(shù),定義了算法收斂到最優(yōu)權(quán)值的速度。最速下降算法收斂或穩(wěn)定的充要條件是μ滿足:
(6)
其中:M為濾波器數(shù)目;Smax為濾波器輸入功率譜密度的最大值。因?yàn)樗簧婕昂?jiǎn)單的加法和乘法,因此,這是首選的方法。
當(dāng)LMS算法在硬件上實(shí)現(xiàn)時(shí),這種硬件實(shí)現(xiàn)帶來(lái)了計(jì)算瓶頸,限制了迭代速度。為了解決這個(gè)問(wèn)題,Herzberg提出了一種延遲LMS算法[10-14]。然而,延遲LMS算法中存在的時(shí)延信息對(duì)算法的收斂性能有很壞的影響,當(dāng)濾波器階數(shù)變大時(shí),算法的收斂性能更差。針對(duì)這些不足,提出了一些算法,以提高算法的收斂性能為代價(jià),增加了運(yùn)算復(fù)雜度。
并行延遲LMS算法是一種將延遲和并行技術(shù)相結(jié)合的LMS算法。在相同條件下,PDLMS算法比延遲LMS算法的步長(zhǎng)限制小,收斂速度快,數(shù)據(jù)吞吐量高,同時(shí)保持了延遲LMS算法高效、簡(jiǎn)單的優(yōu)點(diǎn)。
LMS算法表達(dá)式如下:
其中,w(n)=[w0(n),…,wN-1]T是自適應(yīng)濾波系數(shù),x(n)=[x(n),…,x(n-N+1)]T是輸入信號(hào)序列,y(n)是輸出信號(hào),e(n)預(yù)測(cè)錯(cuò)誤信號(hào),d(n)是期望信號(hào)序列,μ是步長(zhǎng)參數(shù)和N是自適應(yīng)濾波長(zhǎng)度。
需要注意的是,LMS算法的誤差e(n)是在執(zhí)行了一次乘法和n次順序加法之后產(chǎn)生的。N個(gè)順序的加法限制了LMS算法的吞吐率[15]。為了獲得更高的吞吐率,引入了LMS算法和DLMS算法,其表達(dá)式可以寫(xiě)成
其中D為插入LMS算法誤差反饋路徑的總延時(shí)。如果D=0,則式(4)表示常用的LMS自適應(yīng)算法。
一個(gè)N-tap FIR濾波器可以在時(shí)域表示為:
(13)
輸入序列可分解為偶數(shù)部分x0(n)和奇數(shù)部分x1(n),如下:
同樣,長(zhǎng)度為n的濾波系數(shù)w(n)也可分解為偶數(shù)部分w0和奇數(shù)部分w1。偶數(shù)輸出序列和奇數(shù)輸出序列可以計(jì)算為:
當(dāng)并行技術(shù)應(yīng)用于延遲LMS算法時(shí),得到PDLMS算法。以2個(gè)并行PDLMS算法為例,每個(gè)輸出分支需要2個(gè)輸入分支進(jìn)行自適應(yīng)處理。并行PDLMS算法可分為6個(gè)部分:
為了更好的收斂性和穩(wěn)定性,可以在PDLMS算法中引入約束。對(duì)于變步長(zhǎng)或噪聲均可施加約束,以獲得較快的收斂速度和較小的穩(wěn)態(tài)MSE。約束PDLMS算法與PDLMS具有相同的形式,但在適應(yīng)的過(guò)程中該算法步長(zhǎng)μ是改變的。通過(guò)改變算法步長(zhǎng),可以改變算法的收斂速度,以及權(quán)系數(shù)在最優(yōu)值附近的變化量。
步長(zhǎng)在每次迭代中更新,更新后的步長(zhǎng)為:
(22)
因此,約束最小均方算法實(shí)現(xiàn)步驟如下:
1) 初始化權(quán)重向量為0;
2) 初始化μ值;
3) 通過(guò)e(k)=d(k)-y(k)計(jì)算錯(cuò)誤信號(hào);
4) 更新權(quán)重函數(shù):w(k+1)=w(k)+2μ(k)e(k)x(k);
5) 通過(guò)公式(22)更新步長(zhǎng)。
通常FPGA實(shí)施過(guò)程中,會(huì)注重以下幾個(gè)方面:1)定義需求和規(guī)范;2)為設(shè)計(jì)概念建立符合規(guī)格的系統(tǒng)模型;3)用VHDL語(yǔ)言實(shí)現(xiàn)系統(tǒng)模型;4)模擬VHDL來(lái)確定它是否符合系統(tǒng)規(guī)范;5)使用VHDL描述綜合設(shè)計(jì);6)通過(guò)仿真驗(yàn)證,綜合設(shè)計(jì)仍然滿足要求;7)將綜合設(shè)計(jì)方案編制成硬件;8)對(duì)實(shí)際設(shè)備和電路進(jìn)行測(cè)試,并與原要求進(jìn)行性能比較。
本文利用Altera公司的旋流器裝置和QuartuslI軟件實(shí)現(xiàn)了約束PDLMS算法的硬件實(shí)現(xiàn)。設(shè)置陣列天線個(gè)數(shù)為4,延遲信息為6個(gè)時(shí)鐘檔位,濾波參數(shù)為8。
為了便于PDLMS算法的實(shí)現(xiàn),將系統(tǒng)劃分為多個(gè)模塊,從而達(dá)到直觀、易于校正的優(yōu)點(diǎn)。根據(jù)PDLMS算法的特點(diǎn),可以將系統(tǒng)分為4個(gè)模塊,如圖1所示,PMx是相應(yīng)的處理模塊。利用FIFO的存儲(chǔ)結(jié)構(gòu),可以將AD的樣本數(shù)據(jù)分解為偶數(shù)部分和奇數(shù)部分。PM1是誤差產(chǎn)生模塊,接收PM3的權(quán)值w0和PM2的輸出yP2,將誤差信號(hào)e0和輸出數(shù)據(jù)yP1放入PM3和PM2中。圖2所示的PM1包括延遲單元、加法器單元、減法器單元和乘法器單元。
圖1 約束PDLMS的實(shí)施方案Fig.1 Scheme of Constrained PDLMS
圖2 PM1結(jié)構(gòu)Fig.2 Structure of PM1
PM3是更新權(quán)值的單位,其I/O參數(shù)為x0,e0,w0。PM3的模塊包含與PM1相同的單位。PM2和PM1內(nèi)部單位相同,但輸入?yún)?shù)不同。同樣,PM4和PM3也具有相同的處理單元。可以利用模塊復(fù)用的結(jié)構(gòu)高效的來(lái)實(shí)現(xiàn)該算法。此外,PM3和PM4的迭代模塊可以在同一時(shí)間的不同計(jì)算節(jié)點(diǎn)上運(yùn)行。該計(jì)算特性可大大提高系統(tǒng)的并行性,提高系統(tǒng)的運(yùn)行率,保持系統(tǒng)的實(shí)時(shí)性。
圖1、圖2直觀地表示了約束PDLMS算法的流程結(jié)構(gòu)。為了實(shí)現(xiàn)該算法,可以用IP核代替處理單元。為了降低資源消耗,提高運(yùn)行速度,采用數(shù)據(jù)轉(zhuǎn)移的方法實(shí)現(xiàn)步長(zhǎng)因子的更新。
圖3 步長(zhǎng)因子對(duì)MSE的影響Fig.3 The effect of step size on MSE
為了說(shuō)明本文提出方法的有效性,與文獻(xiàn)[16]及以DLMS作比較。文獻(xiàn)[16]僅提出一種并行延遲LMS算法,而本文對(duì)這種方法進(jìn)行了一種有效的約束,使得信息采集及抑制噪聲效果非常好。以導(dǎo)航干擾系統(tǒng)為應(yīng)用背景,在室外環(huán)境模擬條件下進(jìn)行了強(qiáng)干擾信號(hào)的處理。干擾的中心頻率為1 575.42 MHz,帶寬為10 MHz。干擾信號(hào)比為60 dB,采樣速率為65.28 MHz。首先分析了LMS中不同步長(zhǎng)因子對(duì)MSE值的影響,如圖3所示。
根據(jù)圖3分析,采用相同的步長(zhǎng)因子μ=2,實(shí)現(xiàn)約束PDLMS和DLMS算法與文獻(xiàn)[16]的對(duì)比。
通過(guò)對(duì)實(shí)測(cè)數(shù)據(jù)的處理,3種算法的收斂性能如表1所示。
表1 3種算法的收斂比較Table 1 Convergence comparison of the three algorithms
約束PDLMS算法具有良好的收斂性能。一方面,約束PDLMS算法的濾波長(zhǎng)度是DLMS算法濾波的一半。另一方面,算法權(quán)值的更新率是采樣率的一半。整體上比文獻(xiàn)[16]收斂性有一定的提高。
表2 數(shù)據(jù)吞吐量比較Table 2 Comparison of data throughput MHz
系統(tǒng)的采樣時(shí)鐘為60 MHz。對(duì)于2個(gè)并行約束PDLMS算法,輸入數(shù)據(jù)的采樣時(shí)鐘為60 MHz。將輸入數(shù)據(jù)分為偶數(shù)和奇數(shù)部分后,樣本時(shí)鐘變?yōu)?0 MHz。因此當(dāng)約束PDLMS算法處理輸入數(shù)據(jù)時(shí),算法處理時(shí)鐘為30 MHz。然而,對(duì)于傳統(tǒng)的DLMS算法,輸入數(shù)據(jù)的采樣時(shí)鐘和算法處理都是60 MHz。在同一采樣時(shí)鐘中,n個(gè)并行約束PDLMS算法的處理時(shí)鐘是DLMS算法的第n個(gè)處理時(shí)鐘。文獻(xiàn)[16]中所采用的也是2個(gè)PDLMS算法,因此它與2個(gè)并行約束PDLMS的吞吐率是一樣的,在實(shí)際應(yīng)用中,DLMS算法不能滿足實(shí)時(shí)處理輸入數(shù)據(jù)的要求。約束PDLMS算法采用并行輸入輸出結(jié)構(gòu),減少了計(jì)算時(shí)鐘,實(shí)現(xiàn)了對(duì)高速率數(shù)據(jù)的自適應(yīng)運(yùn)算。表2顯示了3種相同的算法處理時(shí)鐘之間的差異。
隨著LMS算法的發(fā)展,硬件需求隨著時(shí)鐘運(yùn)行速度的提高而急劇下降,這給FPGA的信息快速獲取提供了一個(gè)挑戰(zhàn),但是伴隨著很多問(wèn)題的出現(xiàn)。因此,本文提出抑制約束PDLMS方法來(lái)實(shí)施FPGA的信息獲取,更新其動(dòng)態(tài)約束步長(zhǎng),結(jié)果表明,本文提出的約束PDLMS方法是可行的。其性能優(yōu)于傳統(tǒng)的最小均方算法和全矩陣實(shí)時(shí)自適應(yīng)數(shù)字信號(hào)處理算法,對(duì)比結(jié)果也表明,提出的新方法具有功耗低、吞吐量高等優(yōu)點(diǎn)。