陳 赫,呂麗君
(長治學(xué)院 電子信息與物理系,山西 長治 046011)
文章研究的Matlab在數(shù)字信號處理中的應(yīng)用建立在數(shù)字濾波器的基礎(chǔ)上,因為數(shù)字濾波器是信號處理中一種常見的設(shè)備。準確來說,數(shù)字濾波器搭載了能夠過濾時間離散信號的數(shù)字系統(tǒng),這樣技術(shù)人員可以通過應(yīng)用數(shù)學(xué)理論處理取樣數(shù)據(jù)的方式,來實現(xiàn)對處理范圍內(nèi)數(shù)字信號的處理。
數(shù)字信號處理指的是通過計算機或者是專門的數(shù)字信號處理設(shè)備,應(yīng)用專門的數(shù)字數(shù)值計算理論和方法,對數(shù)字信號進行轉(zhuǎn)換、過濾、識別、評估、更改、運算等操作,以此令抽象的數(shù)值具備實際應(yīng)用價值,為數(shù)字及數(shù)字信號的應(yīng)用奠定基礎(chǔ)。數(shù)字信號處理也開始成為通信專業(yè)、電子專業(yè)、計算機專業(yè)的主修課程之一。由于數(shù)字信號處理具有較強的專業(yè)性,學(xué)習(xí)內(nèi)容涉及到了大量的學(xué)術(shù)理論、計算過程、演算分析方式等,這需要學(xué)習(xí)者和研究者具備一定的邏輯思維能力和運算能力,并且要適當(dāng)掌握計算機編程[1]。
Matlab是美國的Mathworks公司新推出的一款計算型軟件,該軟件具備了數(shù)據(jù)分析、數(shù)值計算等多種功能。除了主體系統(tǒng)外,Matlab還包括了搭載了多種功能的工具箱,這些工具箱能夠解決使用者在數(shù)字信號處理過程中遇到的各種問題,此外,工具箱中還包含了大量由數(shù)學(xué)專家編制的函數(shù)公式,這些函數(shù)公式都可以被直接應(yīng)用在數(shù)字信號處理中,進而簡化了數(shù)字信號處理的編程。
從理論上來講,數(shù)字濾波器實際上是一個離散的運算系統(tǒng),可用于對數(shù)字濾波器的進一步分析。以雙線性法設(shè)計形式展示出來的數(shù)字濾波器所對應(yīng)的單位脈沖樣值有無限個,這種能夠保持無限單位脈沖樣值的數(shù)字濾波器便被稱為無限脈沖響應(yīng)數(shù)字濾波器,簡稱IIR數(shù)字濾波器,這便是本節(jié)要探討的數(shù)字濾波器[2]。
IIR數(shù)字濾波器的設(shè)計流程較為簡單,可以概括為探索濾波器各個系數(shù),并使其無限接近設(shè)計目標(biāo)和設(shè)計要求。Matlab引導(dǎo)下的IIR數(shù)字濾波器的設(shè)計方式有兩種:一種是直接設(shè)計方式,也可以稱為最優(yōu)化設(shè)計方式的選擇,先由設(shè)計人員確定一種最優(yōu)化設(shè)計方案,并在其中明確指出誤差最小確定準則和誤差最大確定準則,隨后再在此設(shè)計方案的基礎(chǔ)上計算濾波器系數(shù);一種是間接設(shè)計方式,先由設(shè)計人員設(shè)計一個符合數(shù)值信號處理要求的模擬數(shù)字濾波器,然后再將具體的數(shù)字信號處理要求和技術(shù)條件應(yīng)用到模擬數(shù)字濾波器中,最終設(shè)計出符合數(shù)字信號處理要求的數(shù)字濾波器。
現(xiàn)以參照butter函數(shù)設(shè)計的butterworth數(shù)字濾波器為例,分析應(yīng)用Matlab間接設(shè)計IIR數(shù)字濾波器的方式。
首先,應(yīng)用butter函數(shù)設(shè)計butterworth數(shù)字濾波器,需要調(diào)用以下格式:[b,a](其中a和b分別代表數(shù)字濾波器的變量)=butter(N,Wn),此格式被應(yīng)用在低通型數(shù)字濾波器和常通型數(shù)字濾波器設(shè)計中;[b,a]=butter(N,Wn^,high^),此格式被應(yīng)用在高通型數(shù)字濾波器設(shè)計中;[b,a]=butter(N,Wn^,stop^),此格式被應(yīng)用在阻撓型數(shù)字濾波器設(shè)計中;[b,a]=butter(N,Wn^,S^),此格式被應(yīng)用在模擬數(shù)字濾波器設(shè)計中[3]。
其次,參照階數(shù)N到截止頻率Wn的計算公式,可以計算出butterworth數(shù)字濾波器中的分子和分母的多項式系數(shù),并以Wn為計算標(biāo)量,將計算范圍控制在0-1之間,且使其逐一對應(yīng)抽樣計算頻率的一半。
最后,以IIR數(shù)字濾波器的設(shè)計指標(biāo)為參考依據(jù),將數(shù)字濾波器的阻帶截止頻率控制在0.3 pi,并確保其最小衰減不超過15 dB。
雙線性法設(shè)計IIR數(shù)字濾波器的特性曲線如圖1所示。
3.2.1 窗函數(shù)設(shè)計FIR數(shù)字濾波器的方式
FIR數(shù)字濾波器的脈沖響應(yīng)時間是有限制的,基于此原理,應(yīng)用窗函數(shù)來設(shè)計FIR數(shù)字濾波器。設(shè)計人員需要先計算出符合設(shè)計要求的數(shù)字濾波器的頻率響應(yīng)機制,以此來逼近最優(yōu)的FIR數(shù)字濾波器設(shè)計方式,但是此時的設(shè)計工作需要在規(guī)定的時域內(nèi)完成,此時通過傅里葉反變導(dǎo)數(shù)可以推導(dǎo)出窗函數(shù)設(shè)計公式。
但由于FIR數(shù)字濾波器應(yīng)用的是無限長序列,并且這些設(shè)計序列之間不存在顯著的因果關(guān)系,因此,設(shè)計人員需要在設(shè)計過程中應(yīng)用有限長序列來逼近無限長序列,并且用窗函數(shù)序列來截取無限長序列,最后再通過Matlab軟件來檢測設(shè)計結(jié)果和精確程度,并檢測模擬數(shù)字濾波器的性能是否符合FIR數(shù)字濾波器的設(shè)計要求[4]。
窗函數(shù)設(shè)計FIR數(shù)字濾波器的基本思想是根據(jù)給定的濾波器技術(shù)指標(biāo),選擇濾波器長度N和窗函數(shù)w(n),使其具有最窄的主瓣和最小的旁瓣。其核心是由給定的頻率特性通過加窗確定有限長單位脈沖響應(yīng)h(n)??紤]到數(shù)字濾波器的頻率響應(yīng)是以2π為周期的周期函數(shù),若指標(biāo)所要求的頻響為Hd(ejw),則與它相應(yīng)的序列Hd(n),根據(jù)DTFT變換對的關(guān)系有:
3.2.2 應(yīng)用Matlab工具箱設(shè)計FIR數(shù)字濾波器的方式
現(xiàn)以Matlab工具箱為例,分析FIR數(shù)字濾波器的設(shè)計方式,并應(yīng)用窗函數(shù)來檢驗FIR數(shù)字濾波器設(shè)計的標(biāo)準程度。
第一,建立矩形窗,調(diào)用格式W=boxcar(n),此時根據(jù)長度(n)可以產(chǎn)生一個矩形窗W;第二,建立三角窗,調(diào)用格式W=triang(n),此時根據(jù)長度(n)可以產(chǎn)生一個三角窗W;第三,建立漢寧窗,調(diào)用格式W=hanning(n),此時根據(jù)長度(n)可以產(chǎn)生一個漢寧窗W。
相對于其他類型的數(shù)字信號處理軟件來說,Matlab能夠更加精確的確定線性相位系統(tǒng),進而節(jié)約了大量的編程時間,并且大幅度的提高了編程效率和速度,并且設(shè)計人員修改編程也較為方便,隨著該軟件版本的不斷更新,其運行系統(tǒng)和數(shù)據(jù)運算功能也在逐漸完善。