董 雷
(華中師范大學物理科學與技術學院,湖北武漢430079)
隨著對信號處理要求的提高,數字濾波器作為一種離散的LIT系統,與模擬濾波相比,具有更高的效率和精度,而且穩定度強,靈活性也更大。
MATLAB是以矩陣運算為基礎的一款軟件,具有強大的運算功能,集計算、編程、可視化操作于一體,是數字信號處理研究的有力工具,其中MATLAB的數字信號處理工具箱中自帶的圖形化信號處理設計工具-SPTOOL包含四個GUI工具:信號瀏覽器、濾波器設計器、濾波器瀏覽器和頻譜瀏覽器,為數字信號處理的設計過程提供了更加方便有效的途徑。運用sptool的交互式濾波器設計界面設計數字濾波器,不僅避免了傳統數字濾波器設計過程中繁冗復雜的運算,而且顯得更加直觀。形化信號處理界面,如圖1所示。

圖1 sptool界面
(1)確定濾波器指標
在實際應用中濾波器的設計常常是基于用戶的要求而進行,即由用戶提出指標要求。這里給出一個濾波器指標:用凱澤窗設計通帶截止頻率分別為1 000 Hz和2 000 Hz,阻帶截止頻率分別為4 000 Hz和5 000 Hz,峰值通帶波紋為1 dB,最小阻帶衰減為60 dB的帶通濾波器,抽樣頻率為48 000 Hz。
(2)設計濾波器
在MATLAB的命令行窗口中輸入sptool打開圖
單擊列表框Filters下的New按鈕,打開濾波器設計器,在彈出的濾波器設計界面中根據給定的指標輸入相應的參數,然后點擊Design Filters,得到濾波器幅頻響應如圖2。設計完成后保存為bandpass.fda的文件。在設計完成后圖1所示界面的filters列表會出現filter1。在simulink仿真環境下,設計保存好的濾波器文件 .fda,可以直接導入到Digital Filter Design模塊中去應用。
(1)導入測試信號
以信號 y=sin(2000πt)+sin(6000πt)+sin(10000πt)作為輸入信號去測試濾波器,在命令行窗口中輸入如下程序:

圖2 濾波器設計界面
fs=48000;
t=(0:1000)/fs;
y=sin(2*pi*1000*t)+sin(2*pi*3000*t)+sin(2*pi*5000*t);
信號y和抽樣頻率fs被存入工作空間。
點擊圖1所示界面file菜單下的import選項將fs和y導入到signal列表中,如圖3所示。導入完成后sig1就出現在signals列表中。

圖3 導入測試信號
選中sig1,點擊下方的view按鈕,打開信號瀏覽器,觀察測試信號的時域圖,如圖4所示。

圖4 測試信號的時域圖
(2)信號濾波處理及結果分析
選中sig2,點擊下方的view按鈕,觀察濾波輸出信號的時域圖,如圖5所示。與圖4對比明顯可以看出波形發生變化。

圖5 濾波后信號時域圖
選中sig1,點擊spectra列表下的creat,生成sig1的頻譜圖默認名為spect1,選中sig2,點擊spectra列表下的creat,生成sig2的頻譜圖默認名為spect2,可分別選中spect1和spect2,點擊下面的view按鈕,打開頻譜瀏覽器,觀察兩個信號的頻譜。也可同時選中spect1和spect2,對比觀察濾波前后信號的頻譜,如圖6所示。可以看出濾波之前,能量集中1 000Hz,3 000 Hz,5 000 Hz,濾波之后主要集中在3 000 Hz,而1 000 Hz和5 000 Hz的頻譜分量被濾波器濾掉,濾波器設計基本滿足要求。

圖6 濾波前后信號的頻域圖
用MATLAB的圖形化信號處理設計工具可以快速有效地設計出符合用戶要求的常規濾波器,既不需要復雜的計算也避免了編程和大量的函數調用。保存好的.fda文件可以直接導入到模塊中仿真,減少了工作量,對于研究信號處理來說有較強的實用性。
[1] Sanjit K Mitra(美).Digital Signal Processing:A Computer Approach(Fourth Edition)[M].India:McGraw Hill Higher Education,2010.
[2] 林 川.MATLAB與數字信號處理實驗[M].武漢:武漢大學出版社,2011.
[3] 李 茂,任學恒,李 濤,張懷武.基于MATLAB/Simulink的數字濾波器設計與仿真[J].磁性材料及器件,2007,01:59-61.
[4] 崔 楊,趙 利,廖連貴.基于SG FIR Filter的設計方法與分析[J].通信技術,2011,03:148-150.
[5] 史杰玉.MATLAB信號處理超級學習手冊[M].北京:人民郵電出版社,2014.