![武漢理工基于fir的高通濾波器DSP綜合報(bào)告_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/21/e5cc913f-069e-4fd3-a0a6-96d8444746f8/e5cc913f-069e-4fd3-a0a6-96d8444746f81.gif)
![武漢理工基于fir的高通濾波器DSP綜合報(bào)告_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/21/e5cc913f-069e-4fd3-a0a6-96d8444746f8/e5cc913f-069e-4fd3-a0a6-96d8444746f82.gif)
![武漢理工基于fir的高通濾波器DSP綜合報(bào)告_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/21/e5cc913f-069e-4fd3-a0a6-96d8444746f8/e5cc913f-069e-4fd3-a0a6-96d8444746f83.gif)
![武漢理工基于fir的高通濾波器DSP綜合報(bào)告_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/21/e5cc913f-069e-4fd3-a0a6-96d8444746f8/e5cc913f-069e-4fd3-a0a6-96d8444746f84.gif)
![武漢理工基于fir的高通濾波器DSP綜合報(bào)告_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-4/21/e5cc913f-069e-4fd3-a0a6-96d8444746f8/e5cc913f-069e-4fd3-a0a6-96d8444746f85.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要 dsp 技術(shù)一般指將 dsp 處理器用于完成數(shù)字信號(hào)處理的方法與技術(shù)。目前的 dsp 芯片 以其強(qiáng)大的數(shù)據(jù)處理功能在通信和其他信號(hào)處理領(lǐng)域得到廣泛注意并已成為開(kāi)發(fā)應(yīng)用的熱 點(diǎn)技術(shù)。主要應(yīng)用是實(shí)時(shí)快速的實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法,如卷積及各種變換等。其中 利用 dsp 來(lái)實(shí)現(xiàn)數(shù)字濾波器就是很重要的一種應(yīng)用,本文深入研究 dsp 芯片的濾波器系統(tǒng) 軟件實(shí)現(xiàn)方法,用窗口設(shè)計(jì)法實(shí)現(xiàn) fir 濾波器,實(shí)驗(yàn)結(jié)果表明濾波結(jié)果效果良好,達(dá)到了 預(yù)期的性能指標(biāo)。 一、實(shí)驗(yàn)?zāi)康囊?、?shí)驗(yàn)?zāi)康?1 掌握 fir 數(shù)字濾波器的原理。 2 2 掌握 fir 數(shù)字濾波器的 dsp 實(shí)現(xiàn)方法。 二、實(shí)驗(yàn)原理二、實(shí)驗(yàn)原理
2、 數(shù)字濾波器一直以來(lái)就是數(shù)字信號(hào)處理器最廣為人知的應(yīng)用。數(shù)字濾波器有別于模擬 濾波器的優(yōu)點(diǎn)是:1)可重復(fù)設(shè)計(jì),不需更改任何硬件電路的設(shè)計(jì),就可以將一個(gè)低通濾 波器重新設(shè)計(jì)成一個(gè)高通濾波器。2)執(zhí)行階段可以直接更新濾波器的系數(shù),形成適應(yīng)性 濾波器。濾波器分成兩種形態(tài):有限長(zhǎng)度脈沖響應(yīng)(fir)濾波器。fir 指的是單一采樣 響應(yīng)的期間是有限長(zhǎng)的,iir 指的是單一采樣響應(yīng)的期間是無(wú)限長(zhǎng)的。fir 濾波器的特性 可以用一個(gè)差分方程來(lái)描述: ).2()2() 1() 1 ()()0()(nxhnxhnxhny 其中是濾波器的系數(shù)。 ., 210 aaa 常用的濾波器有:低通、高通、帶通及帶阻濾波器。
3、濾波器特性可以由很多的參數(shù)來(lái)決定, 這些參數(shù)包括帶通漣波、帶阻漣波、帶通截止頻率及帶阻截止頻率。在設(shè)計(jì) fir 濾波器 時(shí),必須根據(jù)這些參數(shù)來(lái)確定 fir 濾波器的系數(shù)及階數(shù)。這個(gè)過(guò)程可以通過(guò)幾種方法來(lái)完成。一是通過(guò) matlab 軟件來(lái) 完成,二是通過(guò)專(zhuān)門(mén)的數(shù)字濾波器設(shè)計(jì)的軟件包來(lái)完成。這一過(guò)程本實(shí)驗(yàn)不詳述,本實(shí)驗(yàn) 假定該過(guò)程已經(jīng)完成,并得到了濾波器的階數(shù)及系數(shù)。 本設(shè)計(jì)是基于 fir 算法的 dsp 高通濾波器的設(shè)計(jì),采用dsp 芯片。其中采樣頻率為 64000hz,高通濾波器的邊界頻率為 2000hz,階數(shù)為 101 階。 三、算法設(shè)計(jì) 1采用 matlab 設(shè)計(jì) fir 數(shù)字濾波器 采
4、用 matlab 設(shè)計(jì) fir 數(shù)字濾波器的方法有多種,本實(shí)驗(yàn)采用 fir1 函數(shù),使用方法簡(jiǎn)介如下: 設(shè)計(jì)高通濾波器,格式為:b=fir1(n,wn, high) 其中 n+1 為濾波器階數(shù),b 為返回的長(zhǎng)度為 n+1 的系數(shù)向量。wn 為歸一化邊界頻率,0 wn daram .text: daram .stack: daram .sysstack: daram .cinit: daram2 .pinit: daram2 .bss: daram2 .const: daram2 /*firhigh.cmd/ ; fir.asm 該程序用于實(shí)現(xiàn) fir 濾波器,可被 c 語(yǔ)言程序調(diào)用 ; int
5、 fir(int *,int *, unsigned int,int) ; 參數(shù) 0: ar0 輸入信號(hào)緩沖區(qū)指針 ; 參數(shù) 1: ar1 - fir 濾波器系數(shù)向量指針 ; 參數(shù) 2: t0 - fir 濾波器的階數(shù) l ; 參數(shù) 3: t1 - 輸入信號(hào)當(dāng)前值在循環(huán)緩沖區(qū)的序數(shù) ; 返回值: t0 - 輸出信號(hào)當(dāng)前值 .global _fir .def _fir _fir pshm st1_55 ;現(xiàn)場(chǎng) st1,st2 和 st3 入棧 pshm st2_55 pshm st3_55 or #0 x340,mmap(st1_55) ;設(shè)置 frct,sxmd,satd bset smul
6、;置位 smul mov mmap(ar0),bsa01 ;ar0=輸入信號(hào)循環(huán)緩沖區(qū)的起始地址 mov mmap(ar1),bsa23 ;ar1=濾波器系數(shù)循環(huán)緩沖區(qū)的起始地址 mov mmap(t0),bk03 ;設(shè)置循環(huán)緩沖區(qū)大小 or #0 x5,mmap(st2_55) ;ar0 和 ar2 為循環(huán)緩沖區(qū)指針 mov t1,ar0 ; ar0 從 index 偏移量開(kāi)始 mov #0,ar2 ; ar2 從 0 偏移量開(kāi)始 sub #2,t0 ;t0=l-2 mov t0,csr ;設(shè)置外部循環(huán)次數(shù)為 l-1 mpym *ar0+,*ar2+,ac0 ;執(zhí)行第一次運(yùn)算 | rpt c
7、sr ;啟動(dòng)循環(huán) macm *ar0+,*ar2+,ac0 mov hi(ac0),t0 ; 用 q15 格式存放結(jié)果 popm st3_55 ; 恢復(fù) st1, st2 和 st3 popm st2_55 popm st1_55 ret .end /* main.c/ #include math.h #define fs 64000 /* 采樣頻率 */ #define t 1/fs /* 采樣時(shí)間 */ #define f1 500 /* 正弦信號(hào) 1 頻率 */ #define f2 2500 /* 正弦信號(hào) 2 頻率 */ #define f3 3300 /* 正弦信號(hào) 3 頻率 */
8、 #define pi 3.1415926 #define w1 (2*pi*f1*t) /* 正弦信號(hào) 1 數(shù)字頻率=2*pi*f1/fs */ #define w2 (2*pi*f2*t) /* 正弦信號(hào) 2 數(shù)字頻率=2*pi*f2/fs */ #define w3 (2*pi*f3*t) /* 正弦信號(hào) 3 數(shù)字頻率=2*pi*f3/fs */ #define a1 0.333 /* 正弦信號(hào) 1 幅度 */ #define a2 0.30 /* 正弦信號(hào) 2 幅度 */ #define a3 0.30 /* 正弦信號(hào) 3 幅度 */ extern int fir(int *,int
9、*,unsigned int,int ); /* low-pass fir filter coefficients */ int coeff101= 6 , 3 , 0 , -4 , -8 , -13 , -19 , -25, -31 , -38 , -44 , -49 , -52 , -53 , -51 , -45, -34 , -20 , 0 , 24 , 53 , 85 , 120 , 155, 189 , 221 , 247 , 266 , 274 , 270 , 251 , 216, 163 , 91 , 0 , -110 , -238 , -381 , -538 , -705, -
10、879 , -1055 , -1229 , -1397 , -1554 , -1695 , -1817 , -1915, -1988 , -2033 , 30713 , -2033 , -1988 , -1915 , -1817 , -1695, -1554 , -1397 , -1229 , -1055 , -879 , -705 , -538 , -381, -238 , -110 , 0 , 91 , 163 , 216 , 251 , 270, 274 , 266 , 247 , 221 , 189 , 155 , 120 , 85, 53 , 24 , 0 , -20 , -34 ,
11、 -45 , -51 , -53, -52 , -49 , -44 , -38 , -31 , -25 , -19 , -13, -8 , -4 , 0 , 3 , 6 ; int in101; /* input buffer */ int out101; /* output buffer */ main() unsigned int l=101; unsigned int i; float signal; unsigned int n=0; int index=0; for(i=0;i2 以后,yk能用 yk-1和 yk-2算出,這是一個(gè)遞歸的差分方程。式中 ,2cos2cos(2* */)
12、 s atnff 1b sinsin(2* */) s ctnff fs 為采樣頻率,f 為正弦波頻率。a 為正弦波幅度。可見(jiàn)用數(shù)字頻率振蕩器產(chǎn)生正弦波的實(shí)質(zhì)就 是用程序?qū)崿F(xiàn)上述的遞歸差分方程。 如要產(chǎn)生振蕩器的頻率為 2khz 正弦波,設(shè)采樣速率為 40k,通過(guò)定時(shí)器設(shè)置,每隔 25us 中斷一 次,即產(chǎn)生一個(gè) yn。則遞歸差分方程系數(shù)為: 2cos2cos(2*/) s atff2cos(2*2000/40000)2*0.95105652 b=-1 sinsin(2*/)sin(2*2000/40000)0.30901699 s ctff 為了便于定點(diǎn) dsp 處理,將所有系數(shù)除以 2,然
13、后用 16 位定點(diǎn)格式表示為: a=79bch,b=c000h,c=13c7h,這便是產(chǎn)生 2khz 正弦信號(hào)的三個(gè)系數(shù)。 主程序初始化時(shí)先計(jì)算出 y1和 y2,然后開(kāi)放定時(shí)器中斷,以后每次進(jìn)入定時(shí)器中斷服務(wù)程序 時(shí),利用前面計(jì)算出的 y1和 y2計(jì)算出新的 y。 初始化 y1和 y2 ssbx frct ;置 frct=1,準(zhǔn)備進(jìn)行小數(shù)乘法運(yùn)算 st #0 x79bc,aa ;將常數(shù)裝入變量 aa st #0 xc000h,bb ;將常數(shù)裝入變量 bb st #0 x13c7h,cc;將常數(shù)裝入變量 cc pshd cc ;將 cc 壓入堆棧 popd y2 ; 初始化 y2=cc ld a
14、a,t ; 將 aa 裝到 t 寄存器 mpy y2,a ;y2 乘以系數(shù) a,結(jié)果放入 a 寄存器 sth a,y1 ;將 a 寄存器的高 16 位存入變量 y1 ;中斷服務(wù)程序段: ld bb,t ;將系數(shù) b 裝入 t 寄存器 mpy y2,a ;y2 乘系數(shù) b,結(jié)果放入 a 寄存器 ltd y1 ;將 y1 裝入 t 寄存器,同時(shí)復(fù)制到 y2 mac aa,a ;完成新正弦數(shù)據(jù)計(jì)算,a 寄存器 ;中為 y1*aa+y2*bb sth a,1,y1 ;將新數(shù)據(jù)存入 y1,因所有系數(shù)都 ;除過(guò) 2,在保存結(jié)果時(shí)轉(zhuǎn)移一位, ;恢復(fù)數(shù)據(jù)正常大小 sth a,1,y0 ;將新正弦數(shù)據(jù)存入 y0
15、 vc5402 的片內(nèi)定時(shí)器利用 clkout 時(shí)鐘計(jì)數(shù),用三個(gè)寄存器(tim、prd、tcr)來(lái)控制定時(shí)器。到 定時(shí)器實(shí)際上可以有 20 個(gè)比特的周期寄存器。它對(duì) clkout 信號(hào)計(jì)數(shù),先將 psc 減 1,直到 psc 為 0,然后用 tddr 重新裝入 psc,同時(shí)將 tim 減 1,直到 tim 減為 0。這時(shí) cpu 發(fā)出 tint 中斷,同時(shí)在 tout 引腳輸出一個(gè)脈沖信號(hào),脈沖寬度為 clkout 一致。然后用 prd 重新裝入 tim,重復(fù)下去直到系 統(tǒng)或定時(shí)器復(fù)位。因而定時(shí)器中斷的頻率由下面的公式?jīng)Q定: tint 的頻率=,其中 tc表示 clkout 的周期。設(shè)置 pr
16、d 寄存器值為 11 1 prdtddrtc 12499,tint 中斷頻率為 40khz。 定時(shí)器初始化程序段為: stm #10h,tcr ;停止定時(shí)器 stm #2499h,prd;設(shè)置prd 寄存器值為2499, ;tint 中斷頻率為foutclk =(2499+1)= 100mhz/2500 = 40 khz stm #20h,tcr ;重新裝入tim 和psc,然后; ;啟動(dòng)定時(shí)器,在開(kāi)放中斷屏蔽寄存器imr后,就可以產(chǎn)生頻率為2000hz的正弦波。 三、實(shí)驗(yàn)內(nèi)容與步驟三、實(shí)驗(yàn)內(nèi)容與步驟 .使用 c54x 匯編語(yǔ)言實(shí)現(xiàn)數(shù)字振蕩器,并通過(guò) ccs 提供的顯示窗口觀察輸出信號(hào)波形以及
17、頻譜。 .根據(jù)確定數(shù)字振蕩器的頻率,確定系數(shù)。數(shù)字振蕩器系數(shù)的確定在前面已經(jīng)說(shuō)明, 3. 啟動(dòng) ccs,新建工程文件,如文件名為sinewave.pjt。并建立如下文件: 匯編源程序exer3.asm .title for test int service program .(25 us) .mmregs .global _c_int00,_tint,vector off_intimer .set 04ch ; vector of inttimer at vector+off_intimer init_a .set 079bch ; a/2=0.9510498 init_b .set 0c00
18、0h ; b/2=-0.5 init_c .set 013c7h ; c/2=0.1545105 .bss y0,1 .bss y1,1 .bss y2,1 .bss temp,1 .bss aa,1 .bss bb,1 .bss cc,1 .text _c_int00: ld #0,dp ssbx intm ; disable all interrupt ! st #1fffh,sp ld #vector, a ; get vector table address ! and #0ff80h, a andm #007fh, pmst or pmst, a stlm a, pmst ; 設(shè)置i
19、ptr stm #10h,tcr ; init timer stm #2499,prd ; f=100m/(2499+1)=40khz stm #20h,tcr ; reset timer ldm imr,a ; read back imr or #08h,a ; enable timer interrupt stlm a,imr ; set imr ld #temp,dp ; set dp ssbx frct ; prepare for fraction mpy st #init_a,aa ; init aa,bb,cc st #init_b,bb ; st #init_c,cc ; psh
20、d cc popd y2 ; init y2,y2=cc ld aa,t ; t=aa mpy y2,a ; y2*aa - a sth a,y1 ; y2*aa - y1 stm #0h,tcr ; enable timer nop rsbx intm ; enable all int ! again: nop b again nop nop nop nop nop nop ;- ; interrupt for int_timer ! ;- _tint: ld #bb,dp ld bb,t ; t=bb mpy y2,a ; a=y2*bb ltd y1 ; t=y1,y2=y1 mac a
21、a,a ; a=a+y1*aa sth a,1,y1 ; new cos data - y1 sth a,1,y0 ; new cos data - y0 nop ; set breakpoint in ccs ! int1_end: nop rete .end vec_table.asm文件 .mmregs .ref _ret .ref _c_int00 .ref _tint .global vector ._table ;- ; interrupte vector table ! ;- vector: rs b _c_int00 nop nop nmi b _ret nop
22、 nop sint17 b _ret nop nop sint18 b _ret nop nop sint19 b _ret nop nop sint20 b _ret .word 0,0 sint21 b _ret .word 0,0 sint22 .word 01000h .word 0,0,0 sint23 .word 0ff80h .word 0,0,0 sint24 .word 01000h .word 0,0,0 sint25 .word 0ff80h .word 0,0,0 sint26 .word 01000h .word 0,0,0 sint27 .word 0ff80h .
23、word 0,0,0 sint28 .word 01000h .word 0,0,0 sint29 .word 0ff80h .word 0,0,0 sint30 .word 01000h .word 0,0,0 int0 b _ret nop nop int1 b _ret nop nop int2 b _ret nop nop tint b _tint nop nop brint0 b _ret nop nop bxint0 b _ret nop nop trint b _ret nop nop dmac1 b _ret nop nop int3 b _ret nop nop hpint
24、b _ret nop nop q26 .word 0ff80h .word 0,0,0 q27 .word 01000h .word 0,0,0 dmac4 b _ret nop nop dmac5 b _ret nop nop q30 .word 0ff80h .word 0,0,0 q31 .word 01000h .word 0,0,0 ;- ; end of interrupte vector table ! ;- _ret rete 鏈接定位sinewave.cmd memory page 1: int_d: origin=80h, length=1f80h page 0: ext_
25、p: origin=2000h, length=2000h sections .text : ext_p page 0 .int_table : (ext_p align (128) page (0) .data : int_d page 1 選擇project 菜單中的add file to project 選項(xiàng),將匯編源程序exer3.asm、vec_table.asm 和連接 定位sinewave.cmd文件依次添加到工程文件中。注意,你可以在添加文件對(duì)話框中選擇顯示不同的文 件類(lèi)型來(lái)加快文件選擇速度。你也可以使用鼠標(biāo)右鍵單擊工程文件名(如sinewave.pjt)并選擇add files 項(xiàng)來(lái)添加需要的文件。其中,exer3.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化活動(dòng)策劃方案范文
- 現(xiàn)代企業(yè)如何依賴(lài)云平臺(tái)優(yōu)化數(shù)據(jù)審核流程
- 游戲類(lèi)直播平臺(tái)的用戶(hù)行為分析與優(yōu)化策略研究
- 現(xiàn)代舞臺(tái)背景屏技術(shù)革新與發(fā)展
- 環(huán)保材料在辦公環(huán)境建設(shè)中的應(yīng)用
- 生產(chǎn)過(guò)程中的危機(jī)應(yīng)對(duì)與風(fēng)險(xiǎn)化解
- 未來(lái)十年電動(dòng)汽車(chē)市場(chǎng)預(yù)測(cè)與展望
- 生態(tài)系統(tǒng)服務(wù)在商業(yè)地產(chǎn)開(kāi)發(fā)中的應(yīng)用
- 現(xiàn)代網(wǎng)絡(luò)技術(shù)企業(yè)管理的重要支撐
- 18《書(shū)湖陰先生壁》說(shuō)課稿-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 養(yǎng)老護(hù)理員培訓(xùn)老年人日常生活照料
- 黑龍江省哈爾濱市八年級(jí)(下)期末化學(xué)試卷
- 各種抽油泵的結(jié)構(gòu)及工作原理幻燈片
- 學(xué)習(xí)弘揚(yáng)雷鋒精神主題班會(huì)PPT雷鋒精神我傳承爭(zhēng)當(dāng)時(shí)代好少年P(guān)PT課件(帶內(nèi)容)
- 社區(qū)獲得性肺炎的護(hù)理查房
- 體育賽事策劃與管理第八章體育賽事的利益相關(guān)者管理課件
- 專(zhuān)題7閱讀理解之文化藝術(shù)類(lèi)-備戰(zhàn)205高考英語(yǔ)6年真題分項(xiàng)版精解精析原卷
- 《生物資源評(píng)估》剩余產(chǎn)量模型
- 2022年廣東省10月自考藝術(shù)概論00504試題及答案
- 隧道二襯承包合同參考
評(píng)論
0/150
提交評(píng)論