計前程, 羅小華
(浙江大學 電氣工程學院,浙江 杭州 310007)
濾波器是可執行信號處理功能的電子組件。數字濾波器系統包含對輸入信號進行采樣的模/數轉換器,微處理器和一些外圍組件,有時使用現場可編程門陣列(field programmable gate array,FPGA)或專用集成電路(application specific integrated circuit,ASIC)代替通用微處理器用于加速濾波操作[1]。
傳統的有限脈沖響應(finite impulse response,FIR)濾波器有2種設計方法,窗函數法和頻率采樣法,存在通阻帶邊界的頻率與波動不易控制等缺陷。自機器學習理論出現后,將神經網絡等算法應用到FIR濾波器設計[2]中,取得了良好的效果,同時針對神經網絡設計的FIR濾波器進行了硬件實現[3]。此外,開始使用支持向量機(support vector machine,SVM)設計FIR濾波器[4]。
本文使用SVM設計FIR濾波器,并根據FIR濾波器的情況針對SVM進行優化,改進了部分算法。在此基礎上,提出了一種基于SVM的FIR濾波器的嵌入式系統。軟件實現FIR濾波器的訓練部分,硬件實現FIR濾波器的測試部分。濾波器性能良好,滿足了基本要求。
FIR濾波器屬于線性系統。對于N階因果離散時間FIR濾波器,輸出序列的每個值為最近的輸入值的加權和
(1)
式中x(n)為輸入信號;y(n)為輸出信號;N為濾波器階數;hi為濾波器系數。
FIR濾波器的傳遞函數可由其沖激響應的z變換獲得
(2)
可以得到FIR濾波器的頻率響應
(3)
在設計FIR濾波器時,保證h(n)的對稱可保證濾波器的相位特性,保證h(n)的大小可保證濾波器的幅值特性。
對于FIR濾波器,其輸出可視作二分類問題,可使用SVM[5]作為分類器。
改寫式(1)為向量形式,濾波器系數hi組成一個向量,輸入信號x(n)組成另一向量,有
(4)
式(4)為一階多維線性函數,與線性SVM的決策邊界函數非常相似,可以經過簡單的變換達到形式上的一致。由于濾波器的輸出信號的范圍大致在0~1之間,輸出結果偏近1的信號為通過信號,輸出結果接近0的信號為阻隔信號,可以通過數學方法,引入一個參數α,放大輸出信號α倍并減去0.5α,使得y的值標準化,即令
(5)
此時,Y的取值范圍大致在-1~+1之間,輸出結果偏近+1的信號為通過信號,輸出結果接近-1的信號為阻隔信號。考慮截止頻率等因素,可以調整放大倍數。此時,式(5)可以看作一個決策邊界函數。令
w=α×[h0h1…hN]
(6)
x=[x(n)x(n-1)…x(n-N)]T
(7)
變換后的濾波器函數為
(8)
考慮到訓練樣本可能存在錯誤,以及樣本在決策空間中的距離可能很接近,引入松弛變量ξ和懲罰參數C。目標函數變為
(9)
由松弛變量的定義可知,松弛變量的取值為
(10)
式中yi實際濾波計算結果經變換后的值;y+,y-為目標結果,值分別為+1,-1。
將濾波器的約束條件施加在目標函數上,獲得新的拉格朗日目標函數,該函數為
(11)
對Lp求偏導可獲得約束條件。將約束條件施加在拉格朗日目標函數上,可以獲得拉格朗日對偶函數。約束條件和拉格朗日對偶函數組成了針對拉格朗日乘子λi、濾波器的系數w和決策邊界偏移量b的二次規劃方程組
(12)
對式(12)求解,可以得到一組可行的拉格朗日乘子。將其代入到式(13)~式(15)中,即可求得濾波器的參數
(13)
(14)
(15)
引入核技術解決高維問題:設引入的核為k(xi,xj),代入二次規劃方程組后,可解得一組拉格朗日乘子和參數b。核函數有多種,其中,徑向基函數(radial basis function,RBF)具有較寬收斂域[6],使用廣泛,因此,本文采用RBF核函數。計算如下
(16)
(17)
式中yi為支持向量xi標準化后的輸出值;yz為測試向量z在標準化環境下的輸出值;yreally為測試向量z在實際情況下應得的輸出值。
利用SVM訓練16階II型低通FIR濾波器。在[0,π]間平均取61組數據作為測試樣本。
1)求取最少可用的訓練集樣本數
分別采用2,5,8,11,16,25,40組訓練樣本進行實驗,σ=5,C=10。圖1(a)為不同訓練樣本下的準確率。隨著訓練樣本數的增加,濾波器模型的準確率不斷提升。在訓練組數達到16組后,準確率變化平緩。考慮硬件設計成本和濾波器準確率等,濾波器模型訓練樣本選取16組。
2)求取最合適的C值
采用8組C值進行實驗,訓練樣本數為16,σ=5。圖1(b)為得到的不同C值下的準確率。隨著C值的增加,濾波器的準確率不斷提升,但當C值達到一定值之后,濾波器準確率不再變化。可將SVM中的C值設為10。
3)求取最合適的σ值
采用8組σ值對濾波器進行實驗,訓練樣本數為16,C=10。圖1(c)為得到的不同σ值下的準確率。可以觀察到,當RBF核σ值為20時,濾波器準確率最高。

圖1 各參數與準確率關系
在Xilinx平臺上完成關于基于SVM的FIR 的嵌入式系統設計。權衡設計成本和運算速度,FIR濾波器系統分為硬件和軟件2個部分。軟件主要實現SVM訓練部分和測試部分中的運算框架,而硬件實現SVM中的核運算以乘加運算。圖2為基于SVM的FIR 嵌入式系統的整體設計框圖。本文通過軟處理器核MicroBlaze完成了軟件與硬件的連結。

圖2 嵌入式系統整體框圖
硬件部分實現FIR濾波器系統中頻繁使用的部分,浮點數乘加器和核函數模塊。整個硬件模塊如圖3所示。

圖3 硬件模塊整體框圖
浮點數乘加器完成使軟件程序得到的權值與核函數模塊相乘,并將所得到的N個積相加的工作,最終得到一個標準化的y值。核函數模塊實現RBF核函數運算,其中包括距離求和運算、乘法運算,以及指數運算。本文指數運算調用CORDIC核[7]。
3.2.1 優化距離求和運算

(18)
在FPGA中,乘法運算會消耗較多的資源和時間,不利于模塊內部的并行加速。因此,需簡化距離計算公式來優化算法。本文設計的為一維濾波器,可以采用曼哈頓距離公式[8]替代歐幾里得距離公式,即
(19)
設計曼哈頓距離計算的電路,如圖4所示。曼哈頓距離計算電路由2個加法器、1個比較器和1個選擇器組成,實現求取距離差絕對值的功能。

圖4 曼哈頓距離計算電路
表1中,在使用流水線情況下,對于RBF核函數,使用歐幾里得距離為137個時鐘周期,使用曼哈頓距離為133個時鐘周期,后者相比前者加速大約3 %。在乘法器的使用量上,后者較前者減少了2/3。由于使用曼哈頓距離會調用較多的加減器、比較器和選擇器,會使用較多的查找表(look up table,LUT),因此,LUT的使用量增長與此有關。

表1 硬件使用對比
3.2.2 向量分割
對于一個多維向量,其在輸入時會消耗較多的端口,算法在硬件上的讀寫會被限制。可以將較長的向量分割成為多個小數組,提高端口的使用效率。向量分割時,寄存端口可以分時段地載入或載出數據,可以縮短啟動間隔的時間,從而加速流水線。此外,分割后的向量變為多組小數組,在單元運算內部可采用并行計算,以減少單元運算的時間。
3.3.1 序列最小優化算法
序列最小優化(sequence minimum optimization,SMO)算法[9]是一種用于解決SVM訓練過程中二次規劃問題的算法。SMO算法是一個迭代優化算法,其時間復雜度為O(n3)。運算步驟如下:
1)初始化向量的權重λi,權重取隨機數,計算此時的偏移值b;
2)初始化每一項的誤差Ei;
3)選取兩個向量,作為要調整的點;




9)判斷是否達到終止條件,如果是,則算法結束;否則,開始執行步驟(3)。


(20)
3.3.2 測試運算

1)初始化,獲取拉格朗日乘子,支持向量;
2)計算拉格朗日乘子λi與yi的積;
3)計算關于支持向量xi的核函數;
4)將步驟(2)與步驟(3)的結果相乘;
5)求取和值獲得主值w;
6)將w與偏移量b相加得到最終結果。
最終優化后的SVM濾波器系統工作于100 MHz。系統使用開發板xc7z020clg484。表2中列出了硬件模塊在開發板上的資源使用情況。其中,觸發器FF使用了4 %,LUT使用了15 %,DSP48被調用了17 %,BRAM的使用率達到了9 %。單次計算并判定測試向量的時間約為3 500 ns。

表2 系統硬件資源使用
圖5(a)為16階II型低通FIR濾波器的在窗函數法下得到的幅頻響應,圖5(b)為在SVM設計下得到的幅頻響應。SVM設計的FIR濾波器在通帶和阻帶范圍內無過沖,邊界控制精確。在[0,π]間平均取61組數據作為測試樣本,SVM設計的FIR濾波器準確率可達到98.41 %。

圖5 不同設計方法下的幅頻響應
基于SVM設計的FIR濾波器在通帶和阻帶范圍內無過沖,邊界控制精確。避免了傳統濾波器設計方法中矩陣求逆時帶來的大量計算,同時也避免了神經網絡設計濾波器時需要較多的訓練數據,加快了計算速度。本文設計的嵌入式濾波器系統,訓練部分用軟件實現,測試部分用硬件實現,可以實現資源與速度的平衡。從最終的幅頻響應可以觀察到,由SVM設計的FIR濾波器的幅頻特性可以逼近理性濾波器,較傳統方法具有優勢。
[1] 劉 鑫,孫大軍,滕婷婷,等.一種基于二階錐規劃的浮點分數時延濾波器[J].傳感器與微系統,2014,33(12):101-104.
[2] Singh M A,Thakare V B V.Artificial neural network use for design low pass FIR filter a comparison[J].International Journal of Electronics and Electrical Engineering,2015,3(3):216-219.
[3] Kuldeep S Rawat,Massiha G H.Hardware implementation of FIR neural network for applications in time series data predic-tion[J].Indonesian Journal of Electrical Engineering,2015,14(1):130-139.
[4] 孫豐闊,席 斌.基于支持向量回歸(SVR)的線性相位FIR濾波器設計[J].福州大學學報,2008,36(1):143-145.
[5] 陳中杰,蔣 剛,蔡 勇.基于SVM一對一多分類算法的二次細分法研究[J].傳感器與微系統,2013,32(4):44-47.
[6] Mahnaz Mohammadi,Nitin Satpute,Rohit Ronge,et al.A flexible scalable hardware architecture for radial basis function neural networks[C]∥2015 14th International Conference on Embedded Systems,IEEE,2015:505-510.
[7] Shradha Gupta,Sumeet Saurav,Sanjay Singh,et al.VLSI architecture of exponential block for non-linear SVM classifica-tion[C]∥2015 International Conference on Advances in Computing,Communications and Informatics,IEEE,2015:528-532.
[8] 王一木,潘 赟,龍彥辰,等.基于自組織映射的手寫數字識別的并行實現[J].浙江大學學報,2014,48(4):742-747.
[9] Naveenkumar M,Vadivel A.3D projected PCA based DMMfeature fusing with SMO-SVM for human action recognition[C]∥India Twelfth International Conference on Data Mining and Warehousing(ICDMW),Bangalore,India,2016:759-763.