IIR濾波器的DSP實現(xiàn)_第1頁
IIR濾波器的DSP實現(xiàn)_第2頁
IIR濾波器的DSP實現(xiàn)_第3頁
IIR濾波器的DSP實現(xiàn)_第4頁
IIR濾波器的DSP實現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、IIR濾波器的DSP實現(xiàn)一、IIR濾波器的基本結(jié)構(gòu)IIR濾波器差分方程的一般表達式為:yn=i=0Nbixn-i-i=1Maiy(n-i)式中x(n)為輸入序列;y(n)為輸出序列; ai和bi為濾波器系數(shù).若所有系數(shù)ai等于0,則為FIR濾波器.IIR濾波器具有無限長的單位脈沖響應,在結(jié)構(gòu)上存在反饋回路,具有遞歸性,即IIR濾波器的輸出不僅與輸入有關,而且與過去的輸出有關.將上式展開得出y(n)表達式為:yn=b0xn+b1xn-1+bNxn-N-a1yn-1-a2yn-2-aMyn-M在零初始條件下,對上式進行z變換,得到:Yz=b0Xz+b1z-1Xz+bNz-NXz-a1z-1Yz-a

2、2z-2Yz-aMz-MYz設N=M,則傳遞函數(shù)為:Hz=Y(z)X(z)=b0+b1z-1+bNz-N1+a1z-1+aNz-N上式可寫成:Hz=b0zN+b1zN-1+bNzN+a1z-1+aN=Ci=1Nz-ziz-pi上式具有N個零點zi和N個極點pi.若有極點位于單位圓外將導致系統(tǒng)不穩(wěn)定.由于FIR濾波器所有的系數(shù)ai均為0,不存在極點,不會造成系數(shù)的不穩(wěn)定.對于IIR濾波器,系統(tǒng)穩(wěn)定的條件如下:若|pi|<1,當n時,h(n)0,系統(tǒng)穩(wěn)定;若|pi|>1,當n時,h(n),系統(tǒng)不穩(wěn)定.IIR濾波器具有多種形式,主要有:直接型(也稱直接I型)、標準型(也稱直接II型)、變

3、換型、級聯(lián)型和并聯(lián)型.二階IIR濾波器,又稱為二階基本節(jié),分為直接型、標準型和變換型.對于一個二階IIR濾波器,其輸出可以寫成:yn=b0xn+b1xn-1+b2xn-2-a1yn-1-a2yn-21.直接型(直接I型)根據(jù)上式可以得到直接二型IIR濾波器的結(jié)構(gòu)圖.如圖1所示.共使用了4個延遲單元(z-1).圖1 直接I型二階IIR濾波器直接型二階IIR濾波器還可以用圖2的結(jié)構(gòu)實現(xiàn).圖2 直接I型二階IIR濾波器此時,延時變量變成了w(n).可以證明上圖的結(jié)構(gòu)仍滿足二階IIR濾波器輸出方程.前向通道:yn=i=02biw(n-i) 1.1 反饋通道:wn=xn-j=12ajwn-j 1.2 將

4、1.2式代入1.1式可得: yn=i=02bix(n-i)-j=12ajw(n-i-j) =i=02bix(n-i)-i=02bij=12ajw(n-i-j) =i=02bix(n-i)-i=02ajj=12biw(n-i-j)=i=02bix(n-i)-j=12ajy(n-j)2.標準型(直接II型)從圖2可以看出,左右兩組延遲單元可以重疊,從而得到標準二階IIR濾波器的結(jié)構(gòu)圖,如圖3所示.由于這種結(jié)構(gòu)所使用的延遲單元最少(只有2個),得到了廣泛地應用,因此稱之為標準型IIR濾波器.圖3 標準型二階IIR濾波器二、IIR濾波器的設計IIR濾波器的設計可以利用模擬濾波器原型,借鑒成熟的模擬濾波

5、器的設計結(jié)果進行雙線性變換,將模擬濾波器變換成滿足預定指標的數(shù)字濾波器,即根據(jù)模擬設計理論設計出滿足要求的傳遞函數(shù)H(s),然后將H(s)變換成數(shù)字濾波器的傳遞函數(shù)H(z).設計IIR濾波器的基礎是設計模擬濾波器的原型,這些原型濾波器主要有:巴特沃茲(Butterworth)濾波器,其幅度響應在通帶內(nèi)具有最平特性;切比雪夫(Chebyshev)濾波器,在通帶內(nèi)具有等波紋特性,且階數(shù)小于巴特沃茲濾波器.橢圓(Elliptic)濾波器,在通帶內(nèi)具有等波紋特性,且階數(shù)最小.將模擬濾波器轉(zhuǎn)換為數(shù)字濾波器常用的方法是雙線性變換,其作用是完成從s平面到z平面的一個映射.其關系為:s=z-1z+1 (2.1

6、)z=1+s1-s (2.2)雙線性變換的基本性質(zhì)如下:s平面上的j軸映射到z平面的單位圓上;s平面的左半平面映射到z平面的單位圓內(nèi);s平面的右半平面映射到z平面的單位圓外.考慮到s平面上的虛軸映射為z平面的單位圓,令s=jA,它代表一個可變的模擬頻率.其z平面上相應的數(shù)字頻率為D,即z=ejDT,將以上兩式代入2.1式得:jA=ejDT-1ejDT+1=ejDT2(ejDT/2-e-jDT/2)ejDT2(ejDT2+e-jDT/2)對上式求解得:A=arctanDT2 (2.3)模擬頻率A和相應的數(shù)字頻率D之間的映射關系如圖4所示:圖4 A和D之間的映射關系當A在01之間變化時, D在0D

7、4之間變化, s為采樣頻率:當A>1時,其對應的D在D4D2之間.雙線性變換會造成頻率失真,通常采用預畸變來補償頻率失真.雙線性變換設計的步驟如下:選擇一個合適的模擬傳遞函數(shù)H(s);對截止頻率或預定的數(shù)字頻率D進行畸變,并根據(jù)式2.3求得相應的模擬頻率A;用A對H(s)中的頻率進行換算,即: Hs|s=s/A用式2.1計算H(z): Hz=HsAs=z-1z+1三、二階IIR濾波器的DSP實現(xiàn)1.標準型二階IIR濾波器的實現(xiàn)在二階IIR濾波器結(jié)構(gòu)中,標準型結(jié)構(gòu)是最常見的濾波器結(jié)構(gòu),其結(jié)構(gòu)如圖5所示:圖5 標準型二階IIR濾波器由結(jié)構(gòu)圖可以寫出反饋通道和前向通道的差分方程:反饋通道: w

8、n=xn+a1wn-1+a2w(n-2)前向通道: yn=b0wn+b1wn-1+b2w(n-2)由以上兩式對二階IIR濾波器進行編程,其中乘法-累加運算可采用單操作數(shù)指令或雙操作數(shù)指令,數(shù)據(jù)和系數(shù)可存放在DARAM中,如圖6所示:圖6 雙操作數(shù)數(shù)據(jù)存放和系數(shù)表2.直接型二階IIR濾波器的實現(xiàn)二階IIR濾波器可以用直接型結(jié)構(gòu)來實現(xiàn).在迭代運算中,先衰減后增益,系統(tǒng)的動態(tài)范圍和魯棒性要好些.直接型二階IIR濾波器的結(jié)構(gòu)如圖7所示:圖7 直接型二階IIR濾波器直接型二階IIR濾波器的脈沖傳遞函數(shù)為:Hz=b0+b1z-1+b2z-21-a1z-1-a2z-2差分方程為:yn=b0xn+b1xn-1

9、+b2xn-2+a1yn-1+a2yn-2為了實現(xiàn)直接型濾波,可在DARAM中開辟4個循環(huán)緩沖區(qū),用來存放變量和系數(shù),并采用循環(huán)緩沖區(qū)方式尋址.這4個循環(huán)緩沖區(qū)的結(jié)構(gòu)如圖8所示:圖8 循環(huán)緩沖區(qū)結(jié)構(gòu)四、總體設計方案1.利用MATLAB來確定IIR濾波器的參數(shù);2.啟動CCS,在CCS中建立一個匯編源文件、建立一個C源文件和一個命令文件,并將這三個文件添加到工程,再編譯并裝載程序;3.設置波形時域觀察窗口,得到其濾波前后波形變化圖;4.設置頻域觀察窗口,得到其濾波前后頻譜變化圖.五、主要參數(shù)f1=500Hz f2=1000Hz fs=2000六、源程序1.匯編源文件程序(.asm).global

10、 _iir,_init,_outdata_iir bset frct sub #1,t0 mov t0,mmap(csr)add t0,ar0mov xar2,xdpmov ar2,cdpmov #0,ac0rpt csrmacmz *ar0-,*cdp+,ac0add t0,ar1mov xar3,xdpmov ar3,cdprpt csrmacmz *ar1-,*cdp+,ac0mar *ar1+mov hi(ac0),*ar1mov hi(ac0),t0bclr frctret_init sub #1,t0mov t0,mmap(csr)mov #0,ac0rpt csrmov ac0,

11、*ar0+rpt csrmov ac0,*ar1+ret_outdata mov t1,ac0sub #2,ac0mov ac0,mmap(csr)add ac0,ar0rpt csrdelay *ar0-mar *ar0+mov t0,*ar0ret2.C源文件程序(.c)#include "math.h"#define signal_1_f 500#define signal_2_f 10000#define signal_sample_f 25000#define pi 3.1415926#define IIRNUMBER_L 2#define bufer_L 256

12、int N_L=IIRNUMBER_L; int data_inbufer_L;int outbufer_L ;int xIIRNUMBER_L+1;int yIIRNUMBER_L+1;int k=0;int bufer=bufer_L;int fBnIIRNUMBER_L=0,0x634a;int fAnIIRNUMBER_L=0xe5c,0xe5c;extern int iir(int *x,int *y,int *fAn,int *fBn,int N_L);extern int init(int *,int *,int);extern int outdata(int *,int,int

13、);void inputwave();void main()int iirout;inputwave();init(x,y,N_L);while(1)x0=data_ink;iirout=iir(x,y,fAn,fBn,N_L);outdata(out,iirout,bufer);k+;if(k>=bufer_L)k=0;void inputwave()float wt1;float wt2;int i;for(i=0;i<=bufer_L;i+)wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;

14、wt2=wt2/signal_sample_f;data_ini=(cos(wt1)+cos(wt2)/2*32768;3.命令文件程序(.cmd)-stack 0x0500-sysstack 0x0500-heap 0x1000-c-u _Reset-l rts55.libMEMORY PAGE 0: RAM(RWIX): origin=0x000100, length=0x01ff00 ROM(RIX): origin=0x020100, length=0x01ff00 VECS(RIX): origin=0xffff00, length=0x000200PAGE 2: IOPORT(RW

15、I):origin=0x000000, length=0x020000 SECTIONS .text >ROM PAGE 0 .data >ROM PAGE 0 .bss >RAM PAGE 0 .const >RAM PAGE 0 .sysmem >RAM PAGE 0 .stack >RAM PAGE 0 .cio >RAM PAGE 0 .sysstack >RAM PAGE 0 .switch >RAM PAGE 0 .cinit >RAM PAGE 0 .pinit >RAM PAGE 0 .vectors >VECS PAGE 0 .ioport >IOPORT PAGE 2 七、實驗結(jié)果及分析1.輸入波形:時域波形:頻域波形:2.輸出波形:時域波形:頻域波形:八、心得體會課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論