山東省廣播電影電視局蒙山轉(zhuǎn)播臺(tái) 高 峰
IIR數(shù)字濾波器具有無(wú)限寬的沖擊相應(yīng),與模擬濾波器相匹配。所以IIR濾波器的設(shè)計(jì)可以采取在模擬濾波器設(shè)計(jì)的基礎(chǔ)上進(jìn)一步變換的方法。例如:
利用脈沖響應(yīng)不變法設(shè)計(jì)IIR數(shù)字濾波器,其基本設(shè)計(jì)思路是直接設(shè)計(jì)一個(gè)數(shù)字濾波器并讓它的時(shí)間特性逼近一個(gè)模擬濾波器。為了達(dá)到時(shí)間特性的最佳逼近,把模擬濾波器的沖擊響應(yīng)均勻取值,作為數(shù)字濾波器的單位脈沖響應(yīng),即:
h(n)=h(t)∣t-nT
然后將h(n)通過(guò)z變換即求得H(z)。因此,脈沖響應(yīng)不變法實(shí)際是時(shí)域取樣法,整個(gè)過(guò)程是先根據(jù)給定的指標(biāo)設(shè)計(jì)一個(gè)模擬濾波器,進(jìn)而按下列變換的順序,最后求得數(shù)字濾波器的系統(tǒng)函數(shù)H(z),即:
H(s)→h(t)→h(n)→H(z)
在對(duì)濾波器進(jìn)行實(shí)際設(shè)計(jì)時(shí),整個(gè)過(guò)程運(yùn)算量是很大的。設(shè)計(jì)完成后要對(duì)已設(shè)計(jì)的濾波器的頻率響應(yīng)進(jìn)行校核,得到幅頻相頻響應(yīng)特性,運(yùn)算量也是很大的。通常,待設(shè)計(jì)的數(shù)字濾波器,階數(shù)和類型并不一定是完全給定的,很多時(shí)候都是要根據(jù)設(shè)計(jì)要求和濾波效果不斷進(jìn)行調(diào)整,以達(dá)到設(shè)計(jì)的最優(yōu)化。在這種情況下,濾波器的設(shè)計(jì)就要進(jìn)行大量復(fù)雜的運(yùn)算,單純的靠公式計(jì)算和編制簡(jiǎn)單的程序很難在短時(shí)間內(nèi)完成設(shè)計(jì)。利用MATLAB強(qiáng)大的計(jì)算功能進(jìn)行計(jì)算機(jī)輔助設(shè)計(jì),可以快速有效地設(shè)計(jì)數(shù)字濾波器,大大地簡(jiǎn)化了計(jì)算量,直觀簡(jiǎn)便。
表1 5種窗函數(shù)性能比較
圖1 IIR數(shù)字濾波器仿真圖
圖2 濾波前和濾波后的波形圖
圖3 利用窗函數(shù)實(shí)現(xiàn)的FIR數(shù)字濾波器
應(yīng)用實(shí)例:設(shè)計(jì)通帶截止頻率為500Hz、阻帶截止頻率為600Hz、通帶的最大衰減為ldB、阻帶的最小衰減為50dB、采樣頻率為2000Hz的數(shù)字低通巴特沃斯濾波器。
(1)程序設(shè)計(jì)法
在MATLAB中,對(duì)各種濾波器的設(shè)計(jì)都有相應(yīng)的計(jì)算振幅響應(yīng)的函數(shù),可以用來(lái)做濾波器的程序設(shè)計(jì)。對(duì)于上面的應(yīng)用實(shí)例,也可以采用程序設(shè)計(jì)法利用模擬巴特沃斯濾波器來(lái)實(shí)現(xiàn)數(shù)字低通濾波器的設(shè)計(jì)。在前面已經(jīng)介紹了脈沖響應(yīng)不變法設(shè)計(jì)IIR數(shù)字濾波器的原理和函數(shù)的轉(zhuǎn)換方法,下面給出采用脈沖響應(yīng)不變法實(shí)現(xiàn)IIR數(shù)字低通濾波器設(shè)計(jì)的部分代碼:
%利用模擬巴特沃斯濾波器設(shè)計(jì)數(shù)字低通濾波器
%脈沖響應(yīng)不變法
Wp=500;%Wp為通帶截止頻率
Ws=600;%Ws為阻帶截止頻率
Rp=1;%Rp為通帶w(=0一Wp)中的最大衰減系數(shù)
As=50;%As為阻帶W>=Ws中的最小衰減系數(shù)
Fs=2000;%Fs為采樣頻率%性能指標(biāo)
OmgP=2*pi*Wp:
OmgS=2*pi*Ws:
[N,OmsC]=buttord(Omgp,OmsS,Rp,As,’s’);%選取模擬濾波器的階數(shù)
[cs,ds]=butter(N,OmgC,’s’);%設(shè)計(jì)出所需的模擬低通濾波器
[bz,az]=impinvar(cs,ds,Fs);%應(yīng)用脈沖響應(yīng)不變法把模擬濾波器轉(zhuǎn)換為數(shù)字濾波器
(2)Simulink仿真
Simulink是MATLA B軟件的擴(kuò)展,是一個(gè)實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模和仿真的軟件包。它與MATLAB語(yǔ)言的主要區(qū)別在于:Simulink與用戶交互接口是基于Windows的模型化圖形輸入,因而用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語(yǔ)言的編程上。所謂模型化圖形輸入是指Simulink提供了一些按功能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過(guò)對(duì)這些基本模塊的調(diào)用,再將它們連接起來(lái)就可以構(gòu)成所需要的系統(tǒng)模型,進(jìn)而進(jìn)行仿真與分析。下面介紹如何調(diào)用Simulink中的功能模塊來(lái)實(shí)現(xiàn)IIR數(shù)字濾波器仿真的方法,在仿真過(guò)程中,可以雙擊各功能模塊,隨時(shí)改變參數(shù),以便獲取不同狀態(tài)下的仿真結(jié)果。
本次設(shè)計(jì)是對(duì)帶有白噪音的正弦波信號(hào)進(jìn)行濾波處理,調(diào)用Simulink中的功能模塊構(gòu)成數(shù)字濾波器的仿真框圖,如圖1所示。在圖2中,應(yīng)用了Simulink環(huán)境中的Signal Processing Blockset工具箱。該工具箱提供了一些濾波器模型,在設(shè)計(jì)時(shí)通過(guò)設(shè)置相應(yīng)的參數(shù)即可得到需要的數(shù)字濾波器模型。對(duì)于輸入信號(hào),通過(guò)DSPSources模塊中的一個(gè)白噪音信號(hào)模塊RandomSource和一個(gè)正弦波信號(hào)模塊Sine Wave,疊加在一起形成一個(gè)帶有干擾信號(hào)的雜質(zhì)波。對(duì)于濾波器的設(shè)計(jì),通過(guò)Filter Designs模塊中的Digital Filter Design模塊設(shè)計(jì)符合要求的低通濾波器,對(duì)帶有干擾的原始信號(hào)進(jìn)行濾波。
此外,圖2中還有兩個(gè)信號(hào)輸出模塊,分別應(yīng)用DSP Sinks模塊中的Vector Scope模塊輸出濾波前和濾波后的波形圖,Vector Scopel用來(lái)輸出帶有干擾的原始信號(hào),Vector Scope用來(lái)輸出經(jīng)濾波器濾波之后的信號(hào),以便在仿真運(yùn)行的過(guò)程中可以動(dòng)態(tài)地觀察濾波效果。例如在濾波器設(shè)計(jì)模塊中設(shè)置2階低通IIR數(shù)字濾波器,采樣頻率為1000Hz。仿真運(yùn)行后的結(jié)果如圖3所示。從圖3中可以看到,該數(shù)字濾波器仿真模型實(shí)現(xiàn)了對(duì)原始信號(hào)進(jìn)行動(dòng)態(tài)數(shù)字濾波的功能,濾除了原始波中的忙刺,得到了很好的正弦波信號(hào),在數(shù)字信號(hào)傳輸和處理過(guò)程中對(duì)信號(hào)雜質(zhì)作了清除,達(dá)到了濾波器的設(shè)計(jì)要求。
利用MATLAB的強(qiáng)大運(yùn)算功能,應(yīng)用基于MATLAB的IIR數(shù)字濾波器設(shè)計(jì)方法可以快速有效地實(shí)現(xiàn)由軟件組成的常規(guī)IIR數(shù)字濾波器的仿真,設(shè)計(jì)方便、快捷,極大地減輕了工作量,在設(shè)計(jì)過(guò)程中還可以對(duì)比濾波器特性,隨時(shí)更改參數(shù),以達(dá)到濾波器設(shè)計(jì)的最優(yōu)化,為濾波器的設(shè)計(jì)和實(shí)現(xiàn)開辟了廣闊的天地。
窗函數(shù)是一種用一定寬度窗函數(shù)截取無(wú)限長(zhǎng)脈沖響應(yīng)序列獲取有限長(zhǎng)脈沖響應(yīng)序列的設(shè)計(jì)方法。而其設(shè)計(jì)FIR濾波器的基本思想:根據(jù)給定的濾波器技術(shù)指標(biāo)選取濾波器長(zhǎng)度N和窗函數(shù)Wd(n),使其具有最窄寬度的主瓣和最小的旁瓣。其核心是從給定的頻率特性。通過(guò)加窗確定有限長(zhǎng)單位脈沖響應(yīng)序列h(n)即實(shí)際濾波器的系數(shù)向量。其是由理想濾波器脈沖響應(yīng)hd(n)與窗函數(shù)函數(shù)Wd(n)相乘得到。工程上常用的窗函數(shù)有5種。即矩形窗(Rectangular Window)、三角形窗(Triangular Window)、漢寧窗(Harming)、哈明窗(Hamming)-凱澤窗(Kaiaser-Bassel Window)。它們之間的性能比較如表1所示。為了滿足工程上需要,可以通過(guò)改變窗函數(shù)的形狀來(lái)改善濾波器的幅度頻率特性。窗函數(shù)的選擇原則是:
(1)具有較低的旁瓣幅度,尤其是第一旁瓣的幅度;
(2)旁瓣的幅度下降的速率要快,有利于增加阻帶衰減;
(3)主瓣的寬度要窄,這樣可以得到較窄的速度帶。
通常以上幾種難以同時(shí)滿足。實(shí)際中選用的窗函數(shù)往往是它們的折中。
用Hamming窗設(shè)計(jì)一個(gè)線性相位低通FIR數(shù)字濾波器,截止頻率wc=0.2*pi。窗口長(zhǎng)度N15,33.要求在兩種窗口長(zhǎng)度下,分別畫出h(n)和響應(yīng)幅頻特性和相頻特性的變化,注意長(zhǎng)度N變化的影響。程序如下:
N=15;wc=0.2*pi;
b=fir1(N,wc/pi);
[H,W]=freqz(b,1)
mag=abs(H);db=20*log10((mag+eps)/max(mag));
subplot(2,1,1);
plot(W/pi,db);grid;
xlabel(‘頻率、Hz’);ylabel(‘幅值’);
subplot(2,1,2);
plot(W/pi,unwrap(angle(H)));grid;
xlabel(‘頻率/Hz’);ylabel(‘相位’);
通過(guò)以上程序可得出圖像如圖3。
一般DSP芯片實(shí)現(xiàn)FIR濾波器時(shí),常是先在Matlab中設(shè)計(jì)要求的濾波器,得到濾波器系數(shù),在目標(biāo)DSP匯編程序中,對(duì)系數(shù)進(jìn)行相應(yīng)的Q格式轉(zhuǎn)換,再用相關(guān)匯編指令實(shí)現(xiàn)FIR濾波器算法。但在調(diào)試時(shí),每改變一次濾波器參數(shù),相關(guān)系數(shù)也改變,目標(biāo)DSP中的程序也要做相應(yīng)改變,給調(diào)試仿真帶來(lái)很大麻煩,使濾波器設(shè)計(jì)效率很低。Matlab具有強(qiáng)大的數(shù)值分析、計(jì)算、信號(hào)處理及圖形顯示功能,并為用戶提供了強(qiáng)大的信號(hào)處理工具箱和友好方便的交互式圖形用戶界面,用Matlab輔助DSP實(shí)現(xiàn)FIR,在濾波器系數(shù)改變時(shí)可以不必改變DSP中程序,大大提高了濾波器設(shè)計(jì)效率。本文只是利用Matlab輔助DSP實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的FIR低通濾波器,并在TMS320C6713 DSK上成功運(yùn)行。還可以利用Matlab輔助DSP來(lái)實(shí)現(xiàn)比較復(fù)雜的諸如語(yǔ)音處理、通信、圖像處理等方面的程序開發(fā),可以大大縮短DSP應(yīng)用程序的開發(fā)時(shí)間,提高設(shè)計(jì)效率,這也是以后DSP設(shè)計(jì)的一個(gè)趨勢(shì)。
通過(guò)對(duì)上面內(nèi)容的介紹我們可以清楚的認(rèn)識(shí)到Matlab在數(shù)字信號(hào)處理中的應(yīng)用。具體可體現(xiàn)為:在離散系統(tǒng)中的分析,IIR數(shù)字濾波器中的設(shè)計(jì),F(xiàn)IR數(shù)字信號(hào)處理中的應(yīng)用等方面。以后的數(shù)字信號(hào)處理課程在Matlab軟件的作用下會(huì)更好的利于應(yīng)用。Matlab已經(jīng)給數(shù)字信號(hào)處理課程帶來(lái)了一次變革,以后會(huì)更能體現(xiàn)出其在數(shù)字信號(hào)處理中的應(yīng)用。
[1]王艷芬,史良,王剛.基于Matlab軟件環(huán)境的“數(shù)字信號(hào)處理”課程新實(shí)驗(yàn)開發(fā)[J].實(shí)驗(yàn)技術(shù)與管理,2002,19(3).
[2]丁玉美,高西全.數(shù)字信號(hào)處理[M].西安:電子科技大學(xué)出版社,2001(第2版).
[3]伯曉晨,李濤,劉路,等.Matlab工具箱應(yīng)用指南——信息工程篇[M].北京:電子工業(yè)出版社,2000.
[4]劉云秀,李曉光,基于MATLAB語(yǔ)言數(shù)字FIR.濾波器的設(shè)計(jì)[J].吉林師范工程技術(shù)學(xué)院學(xué)報(bào),2003,20(3):26-28.
[5]胡錦,彭成,孫曉寧.FIR數(shù)字濾波器的優(yōu)化設(shè)計(jì)[J].宇航計(jì)測(cè)技術(shù),2006,26(6):48-51.
[6]陳懷深,吳大正,高西全.Matlab及在電子信息課程中的應(yīng)用[M].北京:電子工業(yè)出版社,2004.