|
《DSP課程設(shè)計(jì)》報(bào)告 (2017-2018學(xué)年第一學(xué)期)
利用DSP開(kāi)發(fā)環(huán)境CCS3.3實(shí)現(xiàn)IIR數(shù)字濾波器設(shè)計(jì)
目錄 一、課程設(shè)計(jì)性質(zhì)和目的 1 二、課程設(shè)計(jì)的內(nèi)容及要求 1 1、硬件/仿真設(shè)計(jì) 1 2、軟件設(shè)計(jì) 2 3、功能要求: 2 三、程序編寫 2 四、結(jié)果及分析 5 五、心得體會(huì) 9 六、參考文獻(xiàn) 10
一、課程設(shè)計(jì)性質(zhì)和目的 DSP課程設(shè)計(jì)是《DSP》課程是結(jié)課后的一門綜合性實(shí)踐課。設(shè)計(jì)了IIR濾波器,該設(shè)計(jì)利用DSP實(shí)現(xiàn)IIR數(shù)字濾波器。所選題目《利用DSP開(kāi)發(fā)環(huán)境CCS3.3實(shí)現(xiàn) IIR數(shù)字濾波器設(shè)計(jì)》緊密結(jié)合所學(xué)的主要內(nèi)容,加深鞏固所學(xué)知識(shí),同時(shí)對(duì)所學(xué)內(nèi)容進(jìn)行擴(kuò)展,有一定的深度和廣度,能充分發(fā)揮學(xué)生的思考能力和團(tuán)結(jié)協(xié)作的能力。通過(guò)對(duì)DSP課題的研究,提高了學(xué)生對(duì)DSP應(yīng)用系統(tǒng)的設(shè)計(jì)能力,進(jìn)一步了解濾波器的原理,了解IIR濾波器的設(shè)計(jì)過(guò)程、CCS的使用方法以及掌握基本編程語(yǔ)言,掌握CCS設(shè)計(jì)IIR濾波器和CCS工程的建立,源文件的匯編、連接以及調(diào)試程序,并且觀察其輸入、輸出波形。 二、課程設(shè)計(jì)的內(nèi)容及要求 1、硬件/仿真設(shè)計(jì)數(shù)字濾波是數(shù)字信號(hào)處理的一部分。數(shù)字信號(hào)處理主要是研究用數(shù)字或符號(hào)的序列來(lái)表示信號(hào)波形,并用數(shù)字的方式去處理這些序列,把它們改變成在某種意義上更為有希望的形式,以便估計(jì)信號(hào)的特征參量,或削弱信號(hào)中的多余分量和增強(qiáng)信號(hào)中的有用分量。具體來(lái)說(shuō),凡是用數(shù)字方式對(duì)信號(hào)進(jìn)行濾波、變換、調(diào)制、解調(diào)、均衡、增強(qiáng)、壓縮、估值、識(shí)別、產(chǎn)生等加工處理,都可納入數(shù)字信號(hào)處理領(lǐng)域。數(shù)字信號(hào)處理學(xué)科的一項(xiàng)重大進(jìn)展是關(guān)于數(shù)字濾波器設(shè)計(jì)方向的研究。 描述離散系統(tǒng)輸出與輸入關(guān)系的卷積和差分方程只是給數(shù)字信號(hào)濾波器提供運(yùn)算規(guī)則,使其按照這個(gè)規(guī)則完成對(duì)輸入數(shù)據(jù)的處理。時(shí)域離散系統(tǒng)的頻域特性: 其中  、  分別是數(shù)字濾波器的輸出序列和輸入序列的頻域特性(或稱為頻譜特性),  是數(shù)字濾波器的單位取樣響應(yīng)的頻譜,又稱為數(shù)字濾波器的頻域響應(yīng)。輸入序列的頻譜  經(jīng)過(guò)濾波后   ,因此,只要按照輸入信號(hào)頻譜的特點(diǎn)和處理信號(hào)的目的, 適當(dāng)選擇 ,使得濾波后的   滿足設(shè)計(jì)的要求,這就是數(shù)字濾波器的濾波原理。 2、軟件設(shè)計(jì)數(shù)字濾波器根據(jù)其沖激響應(yīng)函數(shù)的時(shí)域特性,可分為兩種,即無(wú)限長(zhǎng)沖激響應(yīng)(IIR)數(shù)字濾波器和有限長(zhǎng)沖激響應(yīng)(FIR)數(shù)字濾波器。IIR濾波器與FIR濾波器相比,具有相位特性差的缺點(diǎn),但它的結(jié)構(gòu)簡(jiǎn)單,運(yùn)算量小,具有經(jīng)濟(jì)、高效的特點(diǎn),并且可以用較少的階數(shù)獲得很高的選擇性。因此也得到了較為廣泛的應(yīng)用。 IIR 數(shù)字濾波器的特征是,具有無(wú)限持續(xù)時(shí)間沖激響應(yīng),需要用遞歸模型來(lái)實(shí)現(xiàn),其差分方程為: 系統(tǒng)函數(shù)為: 設(shè)計(jì)IIR濾波器的任務(wù)就是尋求一個(gè)物理上可實(shí)現(xiàn)的系統(tǒng)函數(shù)H(z),使其頻率響應(yīng)H(z)滿足所希望得到的頻域指標(biāo),即符合給定的通帶截止頻率、阻帶截止頻率、通帶衰減系數(shù)和阻帶衰減系數(shù)。 3、功能要求:用DSP匯編語(yǔ)言編程,實(shí)現(xiàn)IIR運(yùn)算,對(duì)產(chǎn)生的合成信號(hào),濾除信號(hào)中高頻成分,觀察濾波前后的波形變化。
三、程序編寫
在CCS內(nèi)編寫以上程序通過(guò)加載運(yùn)行等操作我們可以得到得到輸入,輸出的時(shí)域與頻域波形圖。 四、結(jié)果及分析 1.輸入信號(hào) <1> 輸入信號(hào)波形屬性 <2>輸入信號(hào)時(shí)域波形圖
<3>.輸入波形頻域圖
2.輸出波形 <1>輸出波形屬性 <2>輸出時(shí)域圖:
<3>輸出頻域圖:
分析仿真結(jié)果:有仿真輸入波形時(shí)域是混合波的疊加,在頻域分析時(shí)我們可以看出該輸入信號(hào)是一低頻和一高頻的疊加。當(dāng)我們將該信號(hào)通過(guò)一IIR濾波器時(shí),我們從輸出波形看到,時(shí)域是一余弦波,頻域也只保留了低頻頻率成分,這說(shuō)明混合信號(hào)通過(guò)IIR濾波器后,高頻成分被濾除,符合濾波器功能,因此CCS可以作為一種模擬濾波器功能的軟件。
五、心得體會(huì) 通過(guò)這次的IIR濾波器的DSP實(shí)現(xiàn)的課程設(shè)計(jì),我初步了解了TMS320C5502芯片,了解設(shè)計(jì)IIR數(shù)字濾波器的原理與方法;掌握數(shù)字濾波器的計(jì)算機(jī)仿真方法;通過(guò)觀察對(duì)實(shí)際信號(hào)的濾波作用,獲得對(duì)數(shù)字濾波器的感性認(rèn)識(shí),綜合實(shí)驗(yàn)的各個(gè)方面以及實(shí)驗(yàn)中出現(xiàn)的問(wèn)題,讓我對(duì)DSP環(huán)境下IIR數(shù)字濾波器設(shè)計(jì)有了全新而系統(tǒng)的認(rèn)識(shí):對(duì)濾波器設(shè)計(jì)要掌握足夠的理論知識(shí),遇到不理解不明白的地方要及時(shí)查找資料,在不斷學(xué)習(xí)的過(guò)程中提升自己。做什么事情都要踏實(shí)、嚴(yán)謹(jǐn)?shù)膶?duì)待,遇到困難不放棄,理論聯(lián)系實(shí)際,在失敗中總結(jié)經(jīng)驗(yàn),在成功中學(xué)習(xí)方法,不斷提升自己。 經(jīng)過(guò)這次課程設(shè)計(jì),我不僅對(duì)以前所學(xué)的知識(shí)有了較深刻的理解,而且動(dòng)手能力、獨(dú)立解決問(wèn)題的能力及查找資料的能力得到了提高。最后衷心感謝在設(shè)計(jì)過(guò)程中給與我?guī)椭母哓愗惱蠋熀退型瑢W(xué)。
- 匯編語(yǔ)言源程序(iir.asm)
- .global _iir,_init,_outdata
- _iir
- bset frct
- sub #1,t0
- mov t0,mmap(csr)
- add t0,ar0
- mov xar2,xdp
- mov ar2,cdp
- mov #0,ac0
- rpt csr
- macmz *ar0-,*cdp+,ac0
- add t0,ar1
- mov xar3,xdp
- mov ar3,cdp
- rpt csr
- macmz *ar1-,*cdp+,ac0
- mar *ar1+
- mov hi(ac0),*ar1
- mov hi(ac0),t0
- bclr frct
- ret
- _init
- sub #1,t0
- mov t0,mmap(csr)
- mov #0,ac0
- rpt csr
- mov ac0,*ar0+
- rpt csr
- mov ac0,*ar1+
- ret
- _outdata
- mov t1,ac0
- sub #2,ac0
- mov ac0,mmap(csr)
- add ac0,ar0
- rpt csr
- delay *ar0-
- mar *ar0+
- mov t0,*ar0
- ret
- 2.鏈接命令文件
- -stack 0x0500
- -sysstack 0x0500
- -heap 0x1000
- -c
- -u _Reset
- -l rts55.lib
- MEMORY
- {PAGE 0:
- RAM(RWIX): origin=0x000100, length=0x01ff00
- ROM(RIX): origin=0x020100, length=0x01ff00
- VECS(RIX): origin=0xffff00, length=0x000200
- PAGE 2:
- IOPORT(RWI):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
- }
- 3.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
- int N_L=IIRNUMBER_L;
- int data_in[bufer_L];
- int out[bufer_L] ;
- int x[IIRNUMBER_L+1];
- int y[IIRNUMBER_L+1];
- int k=0;
- int bufer=bufer_L;
- int fBn[IIRNUMBER_L]={0,0x634a};
- int fAn[IIRNUMBER_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);
- void inputwave();
- void main()
- {int iirout;
- inputwave();
- init(x,y,N_L);
- while(1)
- {x[0]=data_in[k];
- 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;
- wt2=wt2/signal_sample_f;
- data_in[i]=(cos(wt1)+cos(wt2))/2*32768;
- }}
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
利用DSP開(kāi)發(fā)環(huán)境CCS3.3實(shí)現(xiàn)IIR數(shù)字濾波器設(shè)計(jì).doc
(494 KB, 下載次數(shù): 77)
2018-5-31 18:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|