陳 赫,呂麗君
(長治學院 電子信息與物理系,山西 長治 046011)
文章研究的Matlab在數字信號處理中的應用建立在數字濾波器的基礎上,因為數字濾波器是信號處理中一種常見的設備。準確來說,數字濾波器搭載了能夠過濾時間離散信號的數字系統,這樣技術人員可以通過應用數學理論處理取樣數據的方式,來實現對處理范圍內數字信號的處理。
數字信號處理指的是通過計算機或者是專門的數字信號處理設備,應用專門的數字數值計算理論和方法,對數字信號進行轉換、過濾、識別、評估、更改、運算等操作,以此令抽象的數值具備實際應用價值,為數字及數字信號的應用奠定基礎。數字信號處理也開始成為通信專業、電子專業、計算機專業的主修課程之一。由于數字信號處理具有較強的專業性,學習內容涉及到了大量的學術理論、計算過程、演算分析方式等,這需要學習者和研究者具備一定的邏輯思維能力和運算能力,并且要適當掌握計算機編程[1]。
Matlab是美國的Mathworks公司新推出的一款計算型軟件,該軟件具備了數據分析、數值計算等多種功能。除了主體系統外,Matlab還包括了搭載了多種功能的工具箱,這些工具箱能夠解決使用者在數字信號處理過程中遇到的各種問題,此外,工具箱中還包含了大量由數學專家編制的函數公式,這些函數公式都可以被直接應用在數字信號處理中,進而簡化了數字信號處理的編程。
從理論上來講,數字濾波器實際上是一個離散的運算系統,可用于對數字濾波器的進一步分析。以雙線性法設計形式展示出來的數字濾波器所對應的單位脈沖樣值有無限個,這種能夠保持無限單位脈沖樣值的數字濾波器便被稱為無限脈沖響應數字濾波器,簡稱IIR數字濾波器,這便是本節要探討的數字濾波器[2]。
IIR數字濾波器的設計流程較為簡單,可以概括為探索濾波器各個系數,并使其無限接近設計目標和設計要求。Matlab引導下的IIR數字濾波器的設計方式有兩種:一種是直接設計方式,也可以稱為最優化設計方式的選擇,先由設計人員確定一種最優化設計方案,并在其中明確指出誤差最小確定準則和誤差最大確定準則,隨后再在此設計方案的基礎上計算濾波器系數;一種是間接設計方式,先由設計人員設計一個符合數值信號處理要求的模擬數字濾波器,然后再將具體的數字信號處理要求和技術條件應用到模擬數字濾波器中,最終設計出符合數字信號處理要求的數字濾波器。
現以參照butter函數設計的butterworth數字濾波器為例,分析應用Matlab間接設計IIR數字濾波器的方式。
首先,應用butter函數設計butterworth數字濾波器,需要調用以下格式:[b,a](其中a和b分別代表數字濾波器的變量)=butter(N,Wn),此格式被應用在低通型數字濾波器和常通型數字濾波器設計中;[b,a]=butter(N,Wn^,high^),此格式被應用在高通型數字濾波器設計中;[b,a]=butter(N,Wn^,stop^),此格式被應用在阻撓型數字濾波器設計中;[b,a]=butter(N,Wn^,S^),此格式被應用在模擬數字濾波器設計中[3]。
其次,參照階數N到截止頻率Wn的計算公式,可以計算出butterworth數字濾波器中的分子和分母的多項式系數,并以Wn為計算標量,將計算范圍控制在0-1之間,且使其逐一對應抽樣計算頻率的一半。
最后,以IIR數字濾波器的設計指標為參考依據,將數字濾波器的阻帶截止頻率控制在0.3 pi,并確保其最小衰減不超過15 dB。
雙線性法設計IIR數字濾波器的特性曲線如圖1所示。

3.2.1 窗函數設計FIR數字濾波器的方式
FIR數字濾波器的脈沖響應時間是有限制的,基于此原理,應用窗函數來設計FIR數字濾波器。設計人員需要先計算出符合設計要求的數字濾波器的頻率響應機制,以此來逼近最優的FIR數字濾波器設計方式,但是此時的設計工作需要在規定的時域內完成,此時通過傅里葉反變導數可以推導出窗函數設計公式。
但由于FIR數字濾波器應用的是無限長序列,并且這些設計序列之間不存在顯著的因果關系,因此,設計人員需要在設計過程中應用有限長序列來逼近無限長序列,并且用窗函數序列來截取無限長序列,最后再通過Matlab軟件來檢測設計結果和精確程度,并檢測模擬數字濾波器的性能是否符合FIR數字濾波器的設計要求[4]。
窗函數設計FIR數字濾波器的基本思想是根據給定的濾波器技術指標,選擇濾波器長度N和窗函數w(n),使其具有最窄的主瓣和最小的旁瓣。其核心是由給定的頻率特性通過加窗確定有限長單位脈沖響應h(n)。考慮到數字濾波器的頻率響應是以2π為周期的周期函數,若指標所要求的頻響為Hd(ejw),則與它相應的序列Hd(n),根據DTFT變換對的關系有:
3.2.2 應用Matlab工具箱設計FIR數字濾波器的方式
現以Matlab工具箱為例,分析FIR數字濾波器的設計方式,并應用窗函數來檢驗FIR數字濾波器設計的標準程度。
第一,建立矩形窗,調用格式W=boxcar(n),此時根據長度(n)可以產生一個矩形窗W;第二,建立三角窗,調用格式W=triang(n),此時根據長度(n)可以產生一個三角窗W;第三,建立漢寧窗,調用格式W=hanning(n),此時根據長度(n)可以產生一個漢寧窗W。
相對于其他類型的數字信號處理軟件來說,Matlab能夠更加精確的確定線性相位系統,進而節約了大量的編程時間,并且大幅度的提高了編程效率和速度,并且設計人員修改編程也較為方便,隨著該軟件版本的不斷更新,其運行系統和數據運算功能也在逐漸完善。