王倢婷
摘要:為了獲取高精度有效信號在信號檢測系統(tǒng)中,常常需要進行濾波,將設置頻率以外的信號徹底清除,數字濾波器廣泛應用于各種測量系統(tǒng)。基于MATLAB的在線數字濾波器設計過程簡單易行,不僅具有較高的精度和穩(wěn)定性,還有運算速度快,延遲小的特點,可以滿足測量要求。但在實際應用時如果采樣數據長度選擇不當,輸出波形會出現失真。通過實驗分析了采樣數據長度與波形失真的關系,在使用時要兼顧誤差與延遲,保證數字濾波測量精度。
關鍵詞:MATLAB;數字濾波器;在線測量;誤差分析;信號失真
中圖分類號:TP302 文獻標識碼:A 文章編號:1009-3044(2014)26-6242-04
Abstract: In order to acquire high quality signal in the sensing and data acquisition system, it is needed to perform filtering to get rid of the frequency band which isn't wanted. As a result, digital filters are widely used in all kinds of measuring systems. The real-time online digital filter that based on MATLAB is easy to design. It also possesses high accuracy and stability, fast speed and low delay, which means it satisfy the demands of most measuring system. However, the distortion occurs when the length of sample string is too short in the application. This work analyzes the relation between sample string length and the distortion by the experiments and tries to reach a balance between errors and delay to ensure the high quality of filter performance.
Key words: MATLAB; digital filter; online measuring; error analyze; signal distortion
1 概述
在信號測量與采編系統(tǒng)中,為了提高采編系統(tǒng)的信噪比,經常使用濾波器對采集的信號進行濾波,在某些情況下,測量系統(tǒng)在信號處理時要求信號精度高、信號識別率高,使得系統(tǒng)對濾波器的性能提出了很高的要求,比如要求濾波器滿足通帶不平度小、帶外衰減快、系統(tǒng)延遲低等。
MATLAB,又稱矩陣實驗室,是美國MathWorks公司出品的一款功能強大的數學軟件,可以用于數據分析、算法研發(fā)和數值計算,在科學研究以及工程上應用十分廣泛。然而MATLAB雖然功能強大,但其本身的設計主要是面向離線的數據分析,所以鮮有人嘗試利用MATLAB進行低延遲,高性能的在線濾波。該文以腦電信號處理中的theta波(4~12Hz)為例,利用MATLAB中的數字濾波器實現實時濾波。
2 數字濾波器設計
2.1 濾波器類型選擇
工程上常用的濾波器有四種:切比雪夫I型濾波器、切比雪夫II型濾波器、巴特沃茲濾波器和橢圓濾波器。腦中樞神經信號Theta波是4-10Hz的低頻信號,需用帶通濾波器,四種濾波器作為theta波濾波器時的頻域特性,見圖1所示。
為滿足通帶不平度小、帶外衰減快,從圖中我們可以看出,切比雪夫I型濾波器通帶增益為0,阻帶衰減幅度最大,是最佳的theta波濾波器的選擇。
2.2 濾波器參數設計
在MATLAB信號處理工具箱提供了幾個直接設計IIR數字濾波器的函數,可以直接調用。設計契比雪夫I型IIR濾波器可使用cheby1函數,cheby1函數可設計低通、高通、帶通和帶阻契比雪夫I型濾IIR波器,其通帶內為等波紋,阻帶內為單調。cheby1(n,Wn,Rp)函數要確定濾波器的最小階數n、截止頻率Wn 、通帶波紋系數Rp。濾波器的頻域響應并不是平滑的,會有一定波動,通帶波動Rp即描述這種波動的參數,其意義為濾波器頻域響應曲線在通帶上均值與極值的差,即波動的幅度。theta波帶通頻率為4~12Hz,需要設定濾波器階數n;通帶波動R。濾波器階數n越大,其通帶與阻帶的增益差就越大,濾波效果就越好,但相對地,運算時間也會越長。這里n選取一個適當的中間值5,由于為帶通濾波器,其實際階數為2n即10,一個10階濾波器對于實時測量系統(tǒng)來說是比較合適的,不會產生太大的運算量,同時也可以保證較好的濾波效果。Rp取不同值,濾波器的頻域特性不同,圖2為其頻域響應在通帶附近局部放大圖。從圖中可以看出Rp在0.18和0.19之間存在一個閾值,使濾波器在通帶上的增益關于Rp有一個突變,而隨著Rp增大,響應曲線在通帶上的波動也越來越大,因此選取0.19作為Rp的值。
2.3 在線濾波的失真分析
理想情況下,采樣信號的長度無限長,經傅立葉變換后得到有限的傅立葉級數,而在實際測量中,常將數據進行分段采樣,有限長度的信號經過傅立葉變換后會得到一個無窮的傅立葉級數,致使其頻域成分會產生一定的失真。所以在信號采集時,如果信號分段的長度過短,經濾波后,頻域信號會出現較嚴重的失真,實驗發(fā)現濾波的信號分段越短,失真越厲害,如圖4所示,實驗過程如下所述。
首先產生一個隨機數組,其中每個點都為隨機數,將此隨機數組作為原始的采樣信號。然后分別通過以下兩種方法得到兩個濾波后的信號:一是將整個數組采集下來先濾波后截取一段信號;二是先采集同樣長度的一組信號后濾波。最后將這兩組濾波后的信號進行比對,找出它們不相等點的個數。從理論分析第一組信號沒有失真或失真較小。濾波器設置為:切比雪夫I型帶通濾波器,通帶為4~12Hz,Rp=0.18,采樣頻率設定為2000赫茲。每組實驗重復1000次,對其不相等點的個數取平均,用來表示失真程度,取三位有效數字,實驗結果見表1。隨機產生的原始信號長度為100000,即相當于50秒的采樣信號。每一數組的每次重復即代表隨機生成新的模擬信號和新的截取位置,可以認為該實驗結果能夠反映信號處理的真實情況。從表中可以看出,在信號長度為5000時,絕對的失真程度開始基本保持不變,而失真所占截取信號的比例開始減小。
2.4 在線濾波的延遲分析
對于一個實時工作的系統(tǒng)來說,延遲的大小是非常重要的一個指標。實時濾波造成的延遲主要是運算延遲,運算延遲與單次處理數據的長度成正比。為方便起見,濾波器設置為:theta波濾波器(4~12Hz),采樣率2k,階數為5,Rp為0.18。通過實驗1000次,實驗結果如圖5所示。
其中橫坐標為數據長度(采樣點數),縱坐標為延遲時間(單位毫秒)。濾波數據為指定長度的隨機數列。其中,延遲時間為1000次實驗結果的平均值,每次實驗均使用一個新的隨機數列。從圖中可明顯地看出,運算延遲和數據大小是呈線性關系,不存在“最佳”單次濾波數據長度。要確定濾波的數據采集長度,應該結合實際應用要求和運算條件來判斷。
3 結論
隨著科學技術的不斷發(fā)展,在傳感器檢測與數據采集系統(tǒng)中,為了獲取高精度有效信號,一方面需要提高數據采集系統(tǒng)的信噪比,另一方面需要設置相應帶寬,將設置頻率以外的信號徹底清除?;贛ATLAB的在線濾波器設計簡單,使用方便。但在實際應用時如果采樣數據長度截取的太短,會導致輸出波形失真;如果采樣數據長度截取的太長,加大運算量,會產生延遲,因此,在使用時要兼顧誤差與延遲,保證數字濾波器的測量精度。
參考文獻:
[1] 宋壽鵬.數字濾波器設計及工程應用[M].鎮(zhèn)江:江蘇大學出版社,2009.
[2] 王建軍,主譯.神經科學-探索腦[M].2版.北京:高等教育出版社,2011.
[3] 張志涌.MATLAB教程[M].北京:北京航空航天大學出版社,2010.
[4] 高會生,主譯.MATLAB實用教程[M]2版.北京:電子工業(yè)出版社,2010.
[5] 杜勇.數字濾波器的MATLAB與FPGA實現[M].北京:電子工業(yè)出版社,2012.
[6] 陳懷琛.數字信號處理教程[M].北京:電子工業(yè)出版社,2008.
[7] 胡順華.一種基于Chebyshev函數的新型帶通濾波器設計方法[J].電訊技術,2010,50(7):123-124.
[8] 無名氏.基于matlab 數字濾波器的設計[EB/OL].http://wenku.baidu.com/view/5beb2798d5b bfd0a7956738c.html.