趙耀, 孫偉
(裝甲兵工程學院 機械系,北京 100072)
現(xiàn)代化汽車越來越朝著自動化、智能化發(fā)展,車輛的控制系統(tǒng)也越加完善,車輛的控制系統(tǒng)需要處理由轉(zhuǎn)速傳感器、油門開度傳感器、踏板角位移傳感器等各個類型傳感器輸入的信號,車輛主控系統(tǒng)如何抗干擾、如何快速濾除干擾獲得目標波形數(shù)據(jù)成為影響車輛主控系統(tǒng)運行速度和控制有效性的一個主要問題。在模擬信號的傳播、A/D轉(zhuǎn)換的過程中,僅僅使用硬件的方式進行抗干擾濾波已很難滿足現(xiàn)代車輛尤其是越野車行駛地形復(fù)雜、振動大、干擾多樣化的特點。本文將詳細介紹軟件抗干擾措施里IIR濾波器的設(shè)計與實現(xiàn)。
在一般情況下,模擬濾波器都具有無限長單位沖激響應(yīng),這與IIR濾波器具有相似性。因此,IIR設(shè)計的基本思想是使用映射方法將模擬濾波器變成所需的數(shù)字濾波器。該熟知的模擬濾波器映射到所需的數(shù)字濾波器的設(shè)計。這種方法優(yōu)點:模擬濾波器設(shè)計方法是很成熟的,各種模擬濾波器設(shè)計方法和映射表已經(jīng)一應(yīng)俱全,設(shè)計會簡單、精準。另一種設(shè)計方法是軟件輔助設(shè)計法,該方法是最優(yōu)化設(shè)計方法中的一個。首先確定一個優(yōu)化方式,如使所要求的理想的頻率響應(yīng)幅度|Hd(ejw)|與實際頻率響應(yīng)幅度|H(ejw)|的最大誤差最小的方法,或均方誤差最小化的方法等等。這種設(shè)計方法優(yōu)點是無限優(yōu)化能有效濾除并得到想要的數(shù)據(jù),缺點是需要大量的迭代,并且沒有固定的閉合響應(yīng)函數(shù)式[1-2]。
1)可編程邏輯器件。包括CPLD和FPGA,內(nèi)部邏輯模塊具有非常完整、非常豐富的內(nèi)部資源,非常適合實現(xiàn)IIR數(shù)字濾波器,比較DSP芯片和可編程邏輯器件利弊可知,這種方法的優(yōu)點是可擴展性和更強大的并行性。
2)單片機。專門用于數(shù)字信號區(qū)域的數(shù)字信號處理芯片,內(nèi)部預(yù)先寫好的大量的DSP功能函數(shù),我們可以容易地調(diào)用這些函數(shù)來實現(xiàn)各種功能的IIR濾波器。但因為不同的公司和不同的系列,數(shù)字信號處理芯片的編程代碼差距很大,延緩了開發(fā)速度,以及濾波的速度有很大的關(guān)系與芯片的性能。
圖1 IIR數(shù)字濾波器部分程序
圖2 IIR數(shù)字濾波器部分程序
圖3 FDATOOL工具設(shè)計IIR低通濾波器
3)數(shù)字集成電路。單片數(shù)字集成電路,或者使用多芯片的數(shù)字集成電路串聯(lián)在一起來實現(xiàn)濾波,我們可以很容易地實現(xiàn)IIR數(shù)字濾波器的功能。但是一個單片集成電路缺乏強大的性能,而多芯片集成電路級聯(lián)的功耗太高,體積過大,這種方法沒有非常好的前景[3]。
在濾波器的實際設(shè)計過程,整個計算量是很大的。當濾波器的階是比較高,則有大量的計算量,且在設(shè)計過程中更改濾波器種類或參數(shù)時需重新計算。
完成濾波器的頻率響應(yīng)設(shè)計時需要重新檢查,以獲得相位頻率振幅頻率響應(yīng)特性,計算量是很大的。數(shù)字濾波器通常時,設(shè)計的類型和階數(shù)不一定完全確定,它往往是根據(jù)濾波效果和目標要求進行不斷調(diào)整,以實現(xiàn)優(yōu)化設(shè)計。在這種條件下,濾波器的設(shè)計將運行大量復(fù)雜的計算,簡單的靠公式運算和通過一個簡單的程序是難以在很短的時間設(shè)計成功。采用計算機輔助設(shè)計,可以有效和快速地進行設(shè)計。
通常采用的是根據(jù)原型轉(zhuǎn)換法原理實現(xiàn)的四種IIR數(shù)字濾波器設(shè)計函數(shù):butter(巴特沃斯函數(shù))、cheby1(切比雪夫 I型函數(shù))、cheby2(切比雪夫Ⅱ型函數(shù))、ellip(橢圓濾波器函數(shù))及yulewalk函數(shù)。
給定采樣頻率為7000 Hz,通帶截至頻率為800 Hz,阻帶截至頻率為1500 Hz,通帶衰減為3dB,阻帶衰減為60dB。分別采用各個函數(shù)設(shè)計巴特沃斯濾波器、橢圓濾波器、切比雪夫I型濾波器、切比雪夫II型濾波器和yulewalk濾波器。
該方法可以在程序段調(diào)整濾波器參數(shù),試驗部分程序見圖1、圖2,在模擬試驗中,可以通過調(diào)整濾波器的參數(shù),找出最適合車輛某部分控制系統(tǒng)的濾波器。
FDATOOl(Filter Design&Analysis Tool) 是 專 門MATLAB的信號處理工具箱,它使濾波器的分析和設(shè)計具體、靈活、簡便,并且可以使用多種方式設(shè)計IIR濾波器。從 MATLAB界面下點 start→Toolboxes→Filter Design→Filter Design&Analysis Tool即可進入。IIR設(shè)計時選擇正確的按鈕,以下如圖3所示是FDATOOL工具設(shè)計IIR低通濾波器舉例。
可以看出FDATOOL設(shè)計濾波器非常方便,另外它還具有以下功能:1)點擊左上角的File→Generate MFile,可以根據(jù)你設(shè)計的濾波器自動生成程序代碼。2)單擊Targets→ XILINX Coefficient(.COE)File菜單直接生成FPGA所需的濾波器系數(shù)配置文件。
IIR濾波器設(shè)計成功后,通過串口直接傳至ECU,根據(jù)濾波效果進一步調(diào)整濾波器參數(shù),這是一個循序漸進不斷優(yōu)化的過程。
[1] 張賢達.現(xiàn)代信號處理[M].北京:清華大學出版社,1995.
[2] 錢同慧.數(shù)字信號處理[M].北京:機械工業(yè)出版社,2005.
[3] 程佩清.數(shù)字信號處理的原理和實現(xiàn)[M].上海:上海交通大學出版社,1998.
(編輯黃 獲)