在信號采集與處理中,常只關(guān)心具有較窄帶寬和較強周期特征的信號,這時寬帶噪聲成為必須濾除的有害成分。信號的頻譜攜帶著信源最本質(zhì)的特征,但是實際采集的信號不可避免地受到寬帶噪聲或?qū)拵Ц蓴_的影響,如何快速、高效地消除這些噪聲和干擾,增強目標(biāo)譜線在信號處理領(lǐng)域具有重要的意義。ALE利用窄帶信號的周期性和寬帶噪聲的弱相關(guān)性,能夠在信號特征未知的條件下自適應(yīng)地將信號從噪聲中提取出來,廣泛應(yīng)用于目標(biāo)識別和特征提取中。FPGA因具有高度的設(shè)計靈活性、高速的數(shù)據(jù)處理能力、豐富的片內(nèi)資源而在數(shù)字信號處理領(lǐng)域占用重要的地位。在此利用FPGA作為數(shù)字信號處理的核心部分。流水線結(jié)構(gòu)和分布式算法即是充分利用FPGA高速處理能力,實現(xiàn)復(fù)雜數(shù)字信號處理算法的有效途徑。ALE核心部分構(gòu)造了利用LMS(Least Mean Square LMS)算法實現(xiàn)自適應(yīng)譜線增強以及硬件實現(xiàn)的FPGA流水線結(jié)構(gòu)。
1自適應(yīng)濾波原理
自適應(yīng)濾波是相對固定濾波器而言的.固定濾波器濾波頻率是固定的,自適應(yīng)濾波器濾波的頻率自動適應(yīng)輸入信號而變化的,所以其適用范圍更加廣泛。自適應(yīng)濾波器是滿足某種準(zhǔn)則的最佳濾波器,這種濾波器能夠在不需要任何關(guān)于信號和噪聲先驗統(tǒng)計知識的情況下,自動地根據(jù)輸入信號的變化更新自身的權(quán)系數(shù),來滿足最佳濾波的需要。自適應(yīng)濾波器不僅能夠處理平穩(wěn)隨機信號而且能處理非平穩(wěn)隨機信號。這些特點使得自適應(yīng)濾波器在干擾消除、預(yù)測、反演、辨識等信號處理領(lǐng)域得到廣泛應(yīng)用。
自適應(yīng)濾波原理包含兩方面的內(nèi)容:一是調(diào)整濾波器系數(shù)的自適應(yīng)算法,二是濾波器結(jié)構(gòu)。自適應(yīng)濾波算法是設(shè)定某種準(zhǔn)則,使濾波后的輸出信號與參考信號的差在此準(zhǔn)則下最小。維納準(zhǔn)則廣泛應(yīng)用于自適應(yīng)濾波,它的解為維納解。濾波器結(jié)構(gòu)是具體實現(xiàn)自適應(yīng)算法的途徑,尋求高效的濾波器結(jié)構(gòu)一直是自適應(yīng)濾波的研究重點。FIR橫向結(jié)構(gòu)是最常見的濾波器結(jié)構(gòu)。為橫向結(jié)構(gòu)濾波器設(shè)計硬件的流水線是在FPGA中實現(xiàn)高速自適應(yīng)濾波的有效途徑,因此該設(shè)計中采用流水線實現(xiàn)ALE的自適應(yīng)濾波器。自適應(yīng)濾波器原理如圖1所示。其中,x(n)為輸入信號,y(n)為輸出信號,d(n)為參考信號,e(n)為誤差信號。
LMS算法是一種易于實現(xiàn)、性能穩(wěn)健、應(yīng)用廣泛的算法。它采用負(fù)誤差能量梯度更新濾波器的權(quán)系數(shù),它的穩(wěn)態(tài)解仍為維納解,算法遞推公式如下:
其中:Xj是輸入信號;Wj是自適應(yīng)濾波器的權(quán)系數(shù);dj是參考信號;ej是誤差;μ是一個用于控制自適應(yīng)速度和穩(wěn)定性的增益常數(shù)。
2.1 ALE原理
ALE屬于自適應(yīng)濾波的范疇,但是在譜線增強的自適應(yīng)濾波器設(shè)計中,沒有外部參考信號可以利用。此時,利用窄帶信號周期性明顯而寬帶噪聲周期性差,延遲一段時間后窄帶信號的相關(guān)函數(shù)會顯著地強于寬帶噪聲這一特征,將原始輸入信號接入具有固定延遲的延遲線作為參考信號。只要選取的延遲△足夠長,參考信號的寬帶噪聲和原始輸入的寬帶噪聲相關(guān)性就會迅速減弱,而窄帶周期信號的相關(guān)性不會受到影響。根據(jù)自適應(yīng)濾波理論可知,ALE濾波會有一個學(xué)習(xí)過程,學(xué)習(xí)過程就是誤差信號趨于不斷減小的過程。當(dāng)學(xué)習(xí)過程進(jìn)入穩(wěn)態(tài)后,濾波器輸出是源窄帶周期信號和一個隨機的誤差,其誤差可以通過選取合適的步長因子而達(dá)到很小的振幅。ALE原理圖如圖2所示。
2.2 ALE的Matlab仿真
Matlab是數(shù)字信號處理和仿真的有效工具,設(shè)計之初使用Matlab進(jìn)行仿真,可以有效地*估設(shè)計的最終效果,為整個設(shè)計過程提供強有力的理論支持。首先用Matlab仿真以LMS算法實現(xiàn)的ALE,從仿真結(jié)果的時域波形和處理時間兩方面證明算法在ALE系統(tǒng)中的有效性。將正弦波混合高斯白噪聲作為譜線增強濾波的輸入信號,圖3是用Matlab對算法的部分仿真結(jié)果。可以看出根據(jù)混有噪聲的輸入信號根本無法判斷原始周期信號,經(jīng)過0~100時間長度的學(xué)習(xí)過程后濾波器輸出信號已經(jīng)具有明顯的周期性,寬帶噪聲得到有效的濾除,窄帶信號得以濾出。而這段時間在高速FPGA中只需要μs級的處理時間,滿足實時性要求。
3 系統(tǒng)結(jié)構(gòu)
ALE系統(tǒng)總體包括:模/數(shù)轉(zhuǎn)換、FPGA核心處理、片外RAM、電源等。前端采用TLC5510完成模擬信號的采集,并以數(shù)字信號的形式傳遞給FPGA。FPGA部分是整個系統(tǒng)的核心,其實現(xiàn)模/數(shù)轉(zhuǎn)換器時序控制、內(nèi)部數(shù)據(jù)緩存FIFO、片內(nèi)時鐘合成、譜線增強算法以及片外RAM控制。經(jīng)過譜線增強后的數(shù)據(jù)存入片外RAM芯片CY7C1021V。電源提供整個系統(tǒng)需要的3.3 V和5 V以及TLC5510的參考電壓。系統(tǒng)結(jié)構(gòu)如圖4所示。
TLC5510是TI公司的高速模/數(shù)轉(zhuǎn)換器,可以用于視頻處理、高速數(shù)據(jù)轉(zhuǎn)換等領(lǐng)域,它的轉(zhuǎn)換速率達(dá)到20 Mb/s,采用高速AD芯片是為了與FPGA的高速處理能力相匹配。EP2C8F256C6是Altera公司的生產(chǎn)的CycloneⅡ系列的FPGA,片內(nèi)具有162 Kb的片內(nèi)存儲器和36個18×18 b片內(nèi)乘法器,可以用于實現(xiàn)復(fù)雜數(shù)字信號算法。片內(nèi)存儲器基于流行的M4K存儲器塊,可以支持廣泛的配置方式,包括RAM,ROM、先入先出(FIFO)緩沖器以及單端口和雙端口模式等。片內(nèi)乘法器是低成本數(shù)字信號處理(DSP)應(yīng)用的理想方案。這些乘法器可用于實現(xiàn)通用DSP功能,如有限沖擊響應(yīng)(FIR)濾波器、快速傅里葉變換、相關(guān)器、編/解碼器以及數(shù)控振蕩器(NCO)。EP2C8F256C6提供高級外部存儲器接口支持,允許開發(fā)人員集成外部單倍數(shù)據(jù)速率(SDR)、雙倍數(shù)據(jù)速率(DDR)、DDR2 SDRAM器件以及第2代4倍數(shù)據(jù)速率(QDRⅡ)SRAM器件。片內(nèi)具有時鐘管理模塊,利用PLL實現(xiàn)片內(nèi)時鐘合成,使數(shù)據(jù)處理速率遠(yuǎn)高于信號采集速率,以滿足實時性要求。在FPGA內(nèi)部首先實現(xiàn)TLC5510的采樣控制,采樣信號先要存人片內(nèi)FIFO,當(dāng)每次ALE算法迭代完成后,取出FIFO中的數(shù)據(jù),更新處理數(shù)據(jù)。需要處理的數(shù)據(jù)經(jīng)過信號延遲處理和LMS自適應(yīng)濾波算法后得到譜線增強的信號。片內(nèi)時鐘合成模塊為系統(tǒng)提供時鐘信號,利用片內(nèi)PLL對晶振時鐘倍頻和分頻,為片內(nèi)提供600 MHz時鐘和片外TLC5510以及RAM提供10 MHz時鐘。為了保證數(shù)據(jù)精度。經(jīng)過ALE處理后的數(shù)據(jù)以16位二進(jìn)制數(shù)字信號輸出。片外存儲器選用64K×16 b靜態(tài)RAM芯片CY7C1021V,它的讀/寫控制時序也由FPGA實現(xiàn)。
3.1 TLC5510的控制
TLC5510是8位高速模數(shù)轉(zhuǎn)換器,以流水線的工作方式進(jìn)行采樣,在每一個時鐘周期啟動1次采樣、完成1次采樣,采樣在時鐘下降沿進(jìn)行,經(jīng)過2.5個時鐘周期后輸出轉(zhuǎn)換結(jié)果。設(shè)計中根據(jù)采樣時序,用狀態(tài)機來描述采樣控制過程,實現(xiàn)了采樣的控制。實現(xiàn)狀態(tài)交替的VHDL代碼如下:
3.2 采樣信號延遲
為了實現(xiàn)延時,F(xiàn)PGA片內(nèi)開辟了3個緩沖區(qū),分別是輸入、時延、權(quán)值緩沖區(qū)。采樣后的數(shù)據(jù)首先存入片內(nèi)數(shù)據(jù)緩存FIFO,進(jìn)入待命狀態(tài)。時延緩沖區(qū)實現(xiàn)△長度的時延,權(quán)值緩沖區(qū)儲存權(quán)值。其中,時延緩沖區(qū)和輸入緩沖區(qū)地址是連續(xù)的。時延緩沖區(qū)的長度由延遲△決定,輸入緩沖區(qū)和權(quán)值緩沖區(qū)的長度由權(quán)值的維數(shù)決定。緩沖區(qū)的實現(xiàn)是在VHDL語言編寫的程序中定義存儲數(shù)據(jù)的向量,這些數(shù)據(jù)向量的數(shù)據(jù)類型定義如下:
其中:ARRAY_N1BIF定義的是濾波器參數(shù)向量的數(shù)據(jù)類型;ARRAY_N1BIYX定義的延遲后信號向量的數(shù)據(jù)類型;ARRAY_N1BIT定義的是輸入信號向量的數(shù)據(jù)類型;ARRAY_N2BIT定義的是譜線增強后信號向量的數(shù)據(jù)類型;W1是采樣數(shù)據(jù)的寬度,這里為8;Delay是延時長度;L是濾波器階數(shù)。
3.3 LMS算法核心模塊
這是設(shè)計的核心部分也是設(shè)計中的難點。用FPGA實現(xiàn)復(fù)雜數(shù)字信號處理并不像DSP中那樣簡單,需要考慮時序同步、數(shù)據(jù)寬度以及如何舍入。該設(shè)計采用16階自適應(yīng)濾波器實現(xiàn)ALE,濾波器初始權(quán)值全部為0,按照式(3)的算法進(jìn)行迭代更新,算法實現(xiàn)中用到大量乘法運算。調(diào)用芯片內(nèi)部嵌入的乘法器宏功能模塊lpm_mult使實現(xiàn)這些乘法運算更加快速、高效的方案。lpm_mult模塊輸入采樣的8位數(shù)據(jù),因為在乘法運算中2個8位二進(jìn)制數(shù)相乘得到的結(jié)果是1個16位二進(jìn)制數(shù),所以設(shè)計中將處理結(jié)果輸出為16位二進(jìn)制數(shù)。為了提高自適應(yīng)濾波速度,設(shè)計中采用流水線的濾波器結(jié)構(gòu)。流水線結(jié)構(gòu)能夠顯著地提高處理的速度,但是要消耗更多的硬件資源,特別是硬件乘法器,如果LMS FIR濾波器的長的為L則需要2L個通用乘法器。設(shè)計中L=16,片內(nèi)有36個片內(nèi)乘法器可以勝任處理要求。編譯結(jié)果顯示片內(nèi)應(yīng)用于LMS核心算法的其他資源消耗全部小于或等于總消耗的6%,其余資源可以用于片內(nèi)的采樣、輸出等時序控制。LMS算法硬件實現(xiàn)的流水線結(jié)構(gòu)框圖如圖5所示。
流水線結(jié)構(gòu)中調(diào)用乘法器的VHDL代碼如下:
4 仿真結(jié)果分析
VHDL程序在QuartusⅡ軟件上部分仿真結(jié)果如圖6所示,圖中仿真數(shù)據(jù)以十進(jìn)制表示。因為仿真結(jié)果不便于繪制類似Matlab中的圖形,將仿真結(jié)果的數(shù)據(jù)與Matlab仿真結(jié)果進(jìn)行對比。通過行比較,發(fā)現(xiàn)處理結(jié)果在大體上與Matlab相一致,但是在幅度上整體有些衰減,這是由于FPGA中將處理結(jié)果的低位進(jìn)行截尾處理,而Matlab仿真環(huán)境使用浮點形式、數(shù)據(jù)位數(shù)長,處理精度遠(yuǎn)高于FPGA,F(xiàn)PGA設(shè)計中存在較大的截尾誤差。該仿真結(jié)果表明,基于:FPGA實現(xiàn)ALE是切實可行的。
5 結(jié) 語
系統(tǒng)采用FPGA芯片加上少量的外圍電路,完成了信號的自適應(yīng)譜線增強。通過調(diào)用FPGA片內(nèi)乘法器和片內(nèi)存儲器,完成了LMS算法的自適應(yīng)譜線增強,仿真結(jié)果與理論相符合。現(xiàn)代數(shù)字信號處理算法大多要進(jìn)行大量的乘法運算,調(diào)用FPGA片內(nèi)乘法器是實現(xiàn)這些算法的快速高效而又經(jīng)濟的手段,這使得復(fù)雜信號處理算法在FPGA上實現(xiàn)成為可能。流水線結(jié)構(gòu)是硬件設(shè)計中犧牲資源以提高速度的有效手段,有效地利用流水線可以顯著地提高資源利用率和處理速度。該設(shè)計可以實現(xiàn)高速、準(zhǔn)確地譜線增強,在需要濾除寬帶噪聲提取單根譜線的領(lǐng)域具有一定的現(xiàn)實意義。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22040瀏覽量
618151 -
濾波器
+關(guān)注
關(guān)注
162文章
8134瀏覽量
181986 -
仿真
+關(guān)注
關(guān)注
52文章
4282瀏覽量
135784
發(fā)布評論請先 登錄
基于AccelDSP的自適應(yīng)濾波器設(shè)計
改進(jìn)的變步長LMS自適應(yīng)算法及其應(yīng)用
變步長LMS自適應(yīng)濾波算法及其分析
基于粒子群算法的自適應(yīng)LMS濾波器設(shè)計及可重構(gòu)硬件實現(xiàn)
改進(jìn)的變階數(shù)LMS自適應(yīng)濾波算法
用FPGA實現(xiàn)LMS自適應(yīng)濾波
求助!如何使用labview編寫 VS_LMS 算法自適應(yīng)陷波器
如何采用FPGA芯片完成基于LMS算法的自適應(yīng)譜線增強系統(tǒng)的設(shè)計?
求大神分享一種基于FPGA的自適應(yīng)譜線增強系統(tǒng)的設(shè)計
語音去噪LMS自適應(yīng)濾波器算法
基于LMS算法與RLS算法的自適應(yīng)濾波

評論