東北大學(xué) 徐怡陽 屈喜銘
論文詳細(xì)描述了在黑金的ZYNQ-7010型號開發(fā)板上,結(jié)合AD9226、高速AD/DA模塊實現(xiàn)基于FPGA的自適應(yīng)濾波器的全過程。從Vivado集成開發(fā)環(huán)境的使用開始,介紹了線性自適應(yīng)濾波器的基本原理、算法及設(shè)計方法,講解了如何通過Verilog語言把AD模塊、DA模塊以及開發(fā)板上的自適應(yīng)濾波器模塊連接起來。并對已知噪聲和已知信號源兩種類型的干擾消除自適應(yīng)濾波器分別進(jìn)行了實現(xiàn),最終基于LMS算法設(shè)計實現(xiàn)了在25MHz頻率以內(nèi)的條件下的五級流水線自適應(yīng)濾波器。
數(shù)字濾波技術(shù)是數(shù)字信號處理的重要分支,無論是信號的獲取、傳輸都離不開濾波技術(shù),它對信號的有效性和安全性是至關(guān)重要的。FPGA芯片不僅包含查找表、寄存器、多路復(fù)用器和分布式塊結(jié)構(gòu),還嵌入了專用的DSP模塊,結(jié)合VHDL、Verilog等硬件描述語言,可以突破許多模擬器件所達(dá)不到的限制,非常適合做數(shù)字濾波器的設(shè)計。
自適應(yīng)信號處理是信息科學(xué)中信號與信息處理的一個重要分支學(xué)科,它的研究正從一維到多維,從線性到非線性,從一般自適應(yīng)系統(tǒng)到神經(jīng)智能化自適應(yīng)系統(tǒng),所要研究的內(nèi)容極為豐富。隨著數(shù)字超大規(guī)模集成(Very Large ScaleIntegration,VLSI)電路技術(shù)的發(fā)展,自適應(yīng)信號處理技術(shù)在許多領(lǐng)域(如回波消除、色散信道的均衡、系統(tǒng)辨識、信號增強(qiáng)、自適應(yīng)波束成形、噪聲消除及控制領(lǐng)域等)獲得了廣泛應(yīng)用。高速有效的自適應(yīng)濾波算法和可編程數(shù)字信號處理器的結(jié)合推動著自適應(yīng)信號處理領(lǐng)域向縱深方向迅速發(fā)展。
圖1 系統(tǒng)實現(xiàn)框圖
設(shè)計的系統(tǒng)框架如圖1所示,將AD通道1采集的信號作為干擾信號,將AD通道2采集的信號作為被傳輸?shù)挠杏眯盘?,將兩通道采集的?shù)據(jù)進(jìn)行移位,送至加法器,輸出混合信號,并將AD通道2采集的信號作為參考信號,送至自適應(yīng)濾波器模塊,最后將自適應(yīng)濾波模塊的輸出交給DA進(jìn)行數(shù)模轉(zhuǎn)換輸出。
在實物連接方面,AD和DA模塊都是黑金的配套模塊,可以直接安裝在板子兩側(cè)的擴(kuò)展接口上,模塊與示波器和信號發(fā)生器的連接采用BNC線。
設(shè)計濾波器模塊之前,首先比較FIR濾波器和IIR濾波器。對于FIR濾波器,直接型結(jié)構(gòu)很有利,所有的系數(shù)可以同時更新。而對于IIR濾波器,網(wǎng)格結(jié)構(gòu)似乎很有利,因為網(wǎng)格濾波器具有較低的定點計算舍入誤差靈敏度和簡化的系數(shù)穩(wěn)定性控制能力。
針對兩種濾波器結(jié)構(gòu),分別進(jìn)行了仿真測試,對比設(shè)計效果。
輸出始終為不確定態(tài),驗證了IIR型濾波器確實有不確定性,不適合用作自適應(yīng)濾波器的自適應(yīng)部分。
使用FIR濾波器仿真結(jié)果正常。
本濾波器設(shè)計方案采用已知信號源,未知噪聲源,把期望信號即已知信號當(dāng)作參考信號。算法總體由三個部分組成,F(xiàn)IR濾波器,比較器,自適應(yīng)權(quán)值控制器。FIR濾波器工作在輸入向量x[n]上,用于生成期望響應(yīng)的估計值y[n];比較器加在FIR濾波器的輸出端,將期望響應(yīng)d[n]減去其估計值,結(jié)果為誤差信號e[n];自適應(yīng)權(quán)值控制器通過包含在誤差信號中的信息來控制加到FIR濾波器上各抽頭權(quán)值增量的調(diào)整??驁D如圖2所示。
圖2 已知信號源框圖
原本想盡可能地提升系統(tǒng)的工作頻率,采購了采樣頻率達(dá)65MHz的AD9226模塊,但是由于DA輸出的局限與信號發(fā)生器的最高頻率25MHz的限制無法達(dá)到更高的頻率。最終仍在設(shè)計中運用了AD9226模塊。
由于AD9226的采樣方式與AN108的AD模塊不一樣,它采用的是12位有符號數(shù)采集,而本系統(tǒng)的變量均設(shè)置為8位,需進(jìn)行轉(zhuǎn)換再賦值給主程序進(jìn)行運算。
硬件描述代碼根據(jù)框圖編寫,使用乘法器IP核構(gòu)建乘法器方式,延時單元采用移位方式,在代碼中設(shè)置的變量位數(shù)可隨時調(diào)整,由于硬件設(shè)備DA輸出的位數(shù)固定位8位無符號數(shù),代碼中是有符號數(shù)的變量,采取把代碼中位數(shù)的設(shè)置擴(kuò)展成10位來處理8位無符號數(shù)避免符號位的影響。
實際波形如圖3所示:
圖3 實際波形如圖
左側(cè)圖為加法器輸出的混合信號,右側(cè)圖為濾波后信號(示波器右下角頻率與實測頻率有一定差異)
源信號:100KHz正弦波 噪聲:高斯白噪聲
在未作任何改善時,系統(tǒng)的工作頻率若大于10MHz,波形會發(fā)生嚴(yán)重抖動和失真,嘗試采用添加流水線對系數(shù)進(jìn)行緩存的方式來改善系統(tǒng)的頻率特性。
增加完流水線之后,系統(tǒng)可以穩(wěn)定地工作在25MHz頻率下。
引文:Meyer-Baese.Digital Signal Processing with Field Programmable Gate Arrays Third Edition,數(shù)字信號處理的FPGA實現(xiàn):劉凌等譯,清華大學(xué)出版社,2011;Simon Haykin.Adaptive Filter Theory Fifth Edition 自適應(yīng)濾波器原(第5版):鄭寶玉等譯,電子工業(yè)出版社,2016;何賓,張艷輝,Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn):電子工業(yè)出版社,2016;何賓,Xilinx FPGA權(quán)威設(shè)計指南:電子工業(yè)出版社;2015;夏宇聞,Verilog數(shù)字系統(tǒng)設(shè)計教程(第3版):北京航空航天出版社,2017。