




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州航空工業(yè)管理學(xué)院電子通信工程系DSP原理及應(yīng)用課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn) 姓名 王 泳學(xué)號(hào): 091307229 專業(yè): 通信工程 設(shè)計(jì)日期: 2012 年 6月 15 日 指導(dǎo)老師: 趙 成 張松煒 基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)一.引言 數(shù)字信號(hào)處理是電路系統(tǒng)從模擬時(shí)代向數(shù)字時(shí)代前進(jìn)的理論基礎(chǔ),為數(shù)字信號(hào)處理的應(yīng)用而專門設(shè)計(jì)的可編程處理器,即數(shù)字信號(hào)處理器也應(yīng)運(yùn)而生。在當(dāng)今信息時(shí)代數(shù)字信號(hào)處理已成為一門極其重要的學(xué)科。數(shù)字信號(hào)處理在通信、語音、圖像等眾多相關(guān)領(lǐng)域得到了廣泛的應(yīng)用。數(shù)字信號(hào)處
2、理(DSP)包括兩重含義:數(shù)字信號(hào)處理技術(shù)(Digital Signal Processing)和數(shù)字信號(hào)處理器(Digital Signal Processor)。數(shù)字信號(hào)處理(DSP)是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)值計(jì)算的方法、對(duì)信號(hào)進(jìn)行采集、濾波、增強(qiáng)、壓縮、估值和識(shí)別等加工處理,借以達(dá)到提取信息和便于應(yīng)用的目的,其應(yīng)用范圍涉及幾乎所有的工程技術(shù)領(lǐng)域。 目前FIR濾波器的實(shí)現(xiàn)方法大致可分為三種:利用單片通用數(shù)字濾波器集成電路、DSP器件或者可編程邏輯器件實(shí)現(xiàn)。其中以使用通用DSP芯片實(shí)現(xiàn)方式較為簡(jiǎn)單,是一種實(shí)時(shí)、快速、特別適合于實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算的微處理器,借助于通用數(shù)字計(jì)算機(jī)按
3、濾波器的設(shè)計(jì)算法編出程序進(jìn)行數(shù)字濾波計(jì)算。由于它具有豐富的硬件資源、改進(jìn)的哈佛結(jié)構(gòu)、高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng)而在通信、航空、航天、雷達(dá)、工業(yè)控制、網(wǎng)絡(luò)及家用電器等各個(gè)領(lǐng)域得到廣泛應(yīng)用二.設(shè)計(jì)目的 1、掌握用窗函數(shù)法設(shè)計(jì)FIR濾波器的原理及方法,熟悉線性纖維FIR濾波器的幅頻特性和相頻特性及其圖像。2、 掌握使用matlab編程的基本方法,學(xué)會(huì)利用fdatool 工具來快速設(shè)計(jì)滿足需要的濾波器。3、 掌握TMS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學(xué)習(xí)驅(qū)動(dòng)TMS320F2812 DSP處理器程序編寫并能使其正常工作。實(shí)習(xí)驅(qū)動(dòng)ADC模塊實(shí)現(xiàn)信號(hào)的實(shí)時(shí)采集與模數(shù)轉(zhuǎn)換4、 掌握使用
4、TMS320F2812 DSP處理器實(shí)現(xiàn)FIR數(shù)字低通濾波器的設(shè)計(jì)方法,并能夠?qū)崟r(shí)采集輸入信號(hào)并濾除高頻信號(hào)再通過SCI串口傳輸?shù)接?jì)算機(jī)顯示。三.設(shè)計(jì)要求1、利用Matlab軟件的FDATool工具設(shè)計(jì)FIR濾波器,并提取濾波器參數(shù);2、在CCS集成開發(fā)環(huán)境下,利用第1步得到的濾波器參數(shù),利用窗函數(shù)法設(shè)計(jì)FIR濾波器程序,觀察輸入信號(hào)及濾波后得到的輸出信號(hào)的時(shí)域波形及FFT Magnitude波形; 3、利用TMS320F2812的ADC片內(nèi)外設(shè)的外圍電路實(shí)時(shí)采集的混頻信號(hào)數(shù)據(jù),使用1個(gè)51階的FIR低通濾波器,在CCS中設(shè)計(jì)FIR濾波器程序?qū)崿F(xiàn)濾波,觀察相關(guān)波形及濾波效果,通過SCI接口將數(shù)
5、據(jù)傳送到計(jì)算機(jī)上;四、總體設(shè)計(jì)4.1利用Matlab軟件的FDATool工具設(shè)計(jì)FIR濾波器4.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論濾波器就是在時(shí)間域或頻域內(nèi),對(duì)已知激勵(lì)產(chǎn)生規(guī)定響應(yīng)的網(wǎng)絡(luò),使其能夠從信號(hào)中提取有用的信號(hào),抑制并衰減不需要的信號(hào)。濾波器的設(shè)計(jì)實(shí)質(zhì)上就是對(duì)提出的要求給出相應(yīng)的性能指標(biāo),再通過計(jì)算,使物理可實(shí)現(xiàn)的實(shí)際濾波器頻率響應(yīng)特性逼近給出的頻率響應(yīng)特性。FIR 數(shù)字濾波器系統(tǒng)的傳遞函數(shù)為: (1)由此得到系統(tǒng)的差分方程: (2)若FIR 數(shù)字濾波器的單位沖激響應(yīng)序列為h(n),它就是濾波器系數(shù)向量b(n)。傳統(tǒng)的濾波器分析與設(shè)計(jì)均使用繁瑣的公式計(jì)算,改變參數(shù)后需要重新運(yùn)算,從
6、而在分析與設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量特別大。這里應(yīng)用MATLAB 設(shè)計(jì)FIR濾波器,根據(jù)給定的性能指標(biāo)設(shè)計(jì)一個(gè)H(z),使其逼近這一指標(biāo),進(jìn)而計(jì)算并確定濾波器的系數(shù)b(n),再將所設(shè)計(jì)濾波器的幅頻響應(yīng)、相頻響應(yīng)曲線作為輸出,與設(shè)計(jì)要求進(jìn)行比較,對(duì)設(shè)計(jì)的濾波器進(jìn)行優(yōu)化。設(shè)計(jì)完成之后將得到FIR濾波器的單位沖激響應(yīng)序列h(n)的各個(gè)參數(shù)值。4.1.2 利用Matlab軟件的FDATool設(shè)計(jì)FIR濾波器() 首先在命令窗口鍵入FDAtool命令,啟動(dòng)濾波器設(shè)計(jì)分析器,調(diào)出FDAtool界面,如下圖所示。 FDATool界面() 在Filter Type選項(xiàng)中選Lowpass,在Design
7、 Method中選擇FIR濾波器,接著在FIR中選擇Window (窗函數(shù)) 法。() 然后在Filter Order 中選擇Specify Order (為指定階數(shù)),輸入數(shù)值為“51”;在Opitions框中選中“Scale Passband”;在窗類型(Window:)下拉框選擇“Blackman”。() 在Frenquency Specification選項(xiàng)中,將fs(為采樣頻率)、fc (為通帶截止頻率)中分別鍵入250000 Hz和20000Hz。() 點(diǎn)擊“Design Filter”按鈕,完成濾波器的設(shè)計(jì)。() 通過菜單選項(xiàng)Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性
8、。點(diǎn)擊Analysis 中的Magnitude Response和Phase Response 對(duì)幅頻和相頻響應(yīng)進(jìn)行分析。如下圖所示() 在FDATool 中,選擇Targets - Generate C Header.,單擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計(jì)出的 FIR濾波器的系數(shù)表。(默認(rèn)的系數(shù)表文件為fdacoefs.h。如下圖所示。() 在Matlab中打開得到的fdacoefs.h的文件,如下圖所示 從Matlab中打開的fdacoefs.h文件4.1.3提取濾波器參數(shù)取系數(shù)表中的數(shù)據(jù)小數(shù)點(diǎn)后3位有效值,得到如下內(nèi)容:Const float B52=0.000,0.0
9、00,0.000,0.000,0.000,0.000,0.000,0.000, 0.001,0.003,0.004,0.004,0.003,0,-0.006,-0.013, -0.019,-0.021,-0.017,-0.005,0.018,0.048,0.083,0.116,0.143,0.158,0.158,0.143,0.116,0.083,0.048,0.018,-0.005, -0.017,-0.021,-0.019,-0.013,-0.006,0,0.003,0.004,0.004,0.003,0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.
10、000,0.0004.2 CCS環(huán)境下FIR濾波器的設(shè)計(jì)及軟件仿真 4.2.1 程序流程圖初始化輸入低通濾波器各頻率參數(shù)構(gòu)建濾波器頻域特性波形使用FDATool提取濾波器參數(shù)或用FIR濾波器計(jì)算程序計(jì)算得到濾波器參數(shù)構(gòu)建FIR濾波器進(jìn)行濾波無限循環(huán)4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程()實(shí)驗(yàn)準(zhǔn)備設(shè)置軟件仿真模式,啟動(dòng)CCS。()建立工程建立一個(gè)文件夾,存放在D:FIR,將D:課程設(shè)計(jì)FIR濾波器Fir源程序文件夾下的工程全部復(fù)制到D:FIR,在CCS中打開D:FIRfirfir.pjt工程,打開的CCS集成開發(fā)環(huán)境如下圖所示。 4.2.3觀察濾波前后的信號(hào)的時(shí)域波形及FFT
11、Magnitude波形(1)編譯工程文件生成fir.out文件,并通過File-Load Program裝載該文件。(2)設(shè)置波形時(shí)域觀察窗口。選擇菜單ViewGraphTime/Frequency ,分別進(jìn)行如下圖所示進(jìn)行設(shè)置以便觀察輸入/輸出時(shí)域波形。 輸入數(shù)據(jù)時(shí)域波形觀察 輸出數(shù)據(jù)時(shí)域波形觀察選擇菜單ViewGraphTime/Frequency ,分別進(jìn)行如下圖所示進(jìn)行設(shè)置以便觀察輸入/輸出頻域波形。輸入數(shù)據(jù)頻域波形觀察 輸出數(shù)據(jù)頻域波形觀察(3)設(shè)置斷點(diǎn)。在程序fir.c中,有注釋斷點(diǎn)的語句上設(shè)置軟件斷點(diǎn)。(4)運(yùn)行并觀察結(jié)果。選擇Debug菜單的Run項(xiàng),或按F5鍵運(yùn)行程序。觀察到
12、的圖形如下圖所示。 左上角:輸入數(shù)據(jù)時(shí)域圖(Start Address : input) 右上角:輸入數(shù)據(jù)頻譜(Display Type : FFT Magnitude) 左下角:輸出數(shù)據(jù)時(shí)域圖(Start Address : output) 右下角:輸出數(shù)據(jù)頻譜(Display Type : FFT Magnitude)4.2.4 程序清單fir.c 程序/#include DSP281x_Device.h / DSP281x Headerfile Include File/#include DSP281x_Examples.h / DSP281x Examples Include File
13、/#include f2812a.h#includemath.h#define FIRNUMBER 52/#define SIGNAL1F 1000/#define SIGNAL2F 4500/#define SAMPLEF 10000#define PI 3.1415926float InputWave();float FIR();float fHnFIRNUMBER= 0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000, 0.001,0.003,0.004,0.004,0.003,0,-0.006,-0.013, -0.019,-0.021,-0
14、.017,-0.005,0.018,0.048,0.083,0.116,0.143,0.158,0.158,0.143,0.116,0.083,0.048,0.018,-0.005, -0.017,-0.021,-0.019,-0.013,-0.006,0,0.003,0.004,0.004,0.003,0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000 ;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fSt
15、epSignal2;float f2PI;int i;float fIn256,fOut256;int nIn,nOut;main(void) nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;while ( 1 )fInput=InputWave();fInnIn=fInput;nIn+; nIn%=256;fOutput=FIR();fOutnOut=fOutput;nOut+;if ( nOut=256 )nOut=0;/* 請(qǐng)?jiān)诖司渖显O(shè)置軟件斷點(diǎn)
16、 */ float InputWave()for ( i=FIRNUMBER-1;i0;i- )fXni=fXni-1;fXn0=sin(fSignal1)+cos(fSignal2)/6.0;fSignal1+=fStepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn0);float FIR()float fSum;fSum=0;for ( i=0;i RESET, PAGE = 0 /*vectors : VECT
17、ORS, PAGE = 0*/ .pinit : PROG, PAGE = 0 .cinit : PROG, PAGE = 0 .text : PROG, PAGE = 0 /* 16-Bit data sections */ .const : L0L1RAM, PAGE = 1 .bss : L0L1RAM, PAGE = 1 .stack : M1RAM, PAGE = 1 .sysmem : M0RAM, PAGE = 1 /* 32-bit data sections */ .ebss : H0RAM, PAGE = 1 .econst : H0RAM, PAGE = 1 .esysm
18、em : H0RAM, PAGE = 14.3 對(duì)實(shí)時(shí)采樣信號(hào)進(jìn)行濾波的FIR濾波器的實(shí)現(xiàn)4.3.1 程序清單#include DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include File#include #define pi 3.1415927int px256;int py256;double npass,h51, x, y, xmid51;int m=50;int n=256;/ Prototype statements for f
19、unctions found within this errupt void adc_isr(void);/ Global variables used in this example:Uint16 LoopCount;Uint16 ConversionCount;void firdes(int m, double npass) int t; for (t=0; t=m; t+) ht = sin(t-m/2.0)*npass*pi)/(pi*(t-m/2.0); if (t=m/2) ht=npass; void main(void) int xm,ym; double fs
20、,fstop,r,rm; int i,j,p,k;/ PLL, WatchDog, enable Peripheral Clocks/ This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl();/ For this example, set HSPCLK to SYSCLKOUT / 6 (25Mhz assuming 150Mhz SYSCLKOUT) EALLOW; SysCtrlRegs.HISPCP.all = 0x3; / HSPCLK = SYSCLKOUT/6 EDIS; / Disab
21、le CPU interrupts DINT;/ Initialize the PIE control registers to their default state. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000;/ Initialize the PIE vector table with pointers to the shell Interrupt / Service Routines (ISR). InitPieVectTable
22、();/ Interrupts that are used in this example are re-mapped to/ ISR functions found within this file. EALLOW; / This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; EDIS; / This is needed to disable write to EALLOW protected registersInitAdc(); / For this example, ini
23、t the ADC/ Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; / Enable CPU Interrupt 1 EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM LoopCount = 0; ConversionCount = 0; / Configure ADC AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; AdcRegs.ADCMAXCONV.all =
24、 0x0000; / Setup 2 convs on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x4; / Setup ADCINA0 as 1st SEQ1 conv. AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; / Enable EVASOC to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; / Enable SEQ1 interrupt (every EOS)/ Configure EVA/ Assumes EVA Clock is already enabled
25、 in InitSysCtrl(); EvaRegs.T1CMPR = 0x0380; / Setup T1 compare value EvaRegs.T1PR = 0x07FF; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0x1042; / Enable timer 1 compare (upcount mode)/ Wait for ADC interrupt k=0; fs = 250000; fstop = 20000; npa
26、ss = fstop/fs; for (i=0; i=m; i+) xmidi=0; for(;) firdes(m, npass);for (i=0; i=n-1; i+) xm = pxi; x = xm/1023.0; for (p=0; p=m; p+) xmidm-p = xmidm-p-1; xmid0 = x; r = 0; rm= 0; for (j=0; j4; if(ConversionCount = 256) ConversionCount = 0; else ConversionCount+; / Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; / Reset SEQ1 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; / ClearINT SEQ1 bit PieCtrlRegs.PIEA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省育華學(xué)校2025屆七下數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 法學(xué)研究方法的試題及答案
- Android 應(yīng)用開發(fā)技術(shù)試題及答案
- 公司戰(zhàn)略變革試題及答案
- 湖北省恩施州東城中學(xué)2025屆七下數(shù)學(xué)期末經(jīng)典模擬試題含解析
- 2025年軟考設(shè)計(jì)師復(fù)習(xí)建議試題及答案
- 贊美自然之美的2023高考作文試題及答案
- 精益創(chuàng)業(yè)中的項(xiàng)目管理試題及答案
- 2025年軟考重要章節(jié)梳理試題及答案
- 法學(xué)概論考試內(nèi)容的動(dòng)態(tài)變化試題及答案
- 校園安全工作考核表
- 22G101系列圖集常用點(diǎn)全解讀
- 北師大版六年級(jí)數(shù)學(xué)下冊(cè)專項(xiàng)二 圖形與幾何含答案
- MIDASM32調(diào)音臺(tái)培訓(xùn)教程歸納
- DB63-T 2152-2023公路建設(shè)項(xiàng)目代建管理規(guī)范
- 風(fēng)力擺系統(tǒng)設(shè)計(jì)
- 建筑地基處理技術(shù)規(guī)范jgj79-2012
- 普通地質(zhì)學(xué)教材
- 05G414-5預(yù)應(yīng)力混凝土工字形屋面梁(18m、雙坡)
- 《腦出血的外科治療》
- 科達(dá)監(jiān)控設(shè)備安裝與設(shè)置說明nvr攝像頭配置
評(píng)論
0/150
提交評(píng)論