




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、鄭州航空工業(yè)管理學(xué)院電子通信工程系DSP原理及應(yīng)用課程設(shè)計報告設(shè)計題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計與實現(xiàn)姓名 王 泳學(xué)號: 091307229專業(yè):通信工程設(shè)計日期:2012 年 6月 15 日指導(dǎo)老師:趙成張松煒基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計與實現(xiàn)一.引言數(shù)字信號處理是電路系統(tǒng)從模擬時代向數(shù)字時代前進的理論基礎(chǔ),為數(shù)字信號處理的應(yīng)用而專門設(shè)計的可編程處理器,即數(shù)字信號處理器也應(yīng)運而生。在當今信息時代數(shù)字信號處理已成為一門極其重要的學(xué)科。數(shù)字信號處理在通信、語音、圖像等眾多相關(guān)領(lǐng)域得到了廣泛的應(yīng)用。數(shù)字信號處理(DSP)包括兩重含
2、義:數(shù)字信號處理技術(shù)(Digital Signal Processing)和數(shù)字信號處理器(Digital Signal Processor)。數(shù)字信號處理(DSP)是利用計算機或?qū)S锰幚碓O(shè)備,以數(shù)值計算的方法、對信號進行采集、濾波、增強、壓縮、估值和識別等加工處理,借以達到提取信息和便于應(yīng)用的目的,其應(yīng)用范圍涉及幾乎所有的工程技術(shù)領(lǐng)域。目前FIR濾波器的實現(xiàn)方法大致可分為三種:利用單片通用數(shù)字濾波器集成電路、DSP器件或者可編程邏輯器件實現(xiàn)。其中以使用通用DSP芯片實現(xiàn)方式較為簡單,是一種實時、快速、特別適合于實現(xiàn)各種數(shù)字信號處理運算的微處理器,借助于通用數(shù)字計算機按濾波器的設(shè)計算法編出程序
3、進行數(shù)字濾波計算。由于它具有豐富的硬件資源、改進的哈佛結(jié)構(gòu)、高速數(shù)據(jù)處理能力和強大的指令系統(tǒng)而在通信、航空、航天、雷達、工業(yè)控制、網(wǎng)絡(luò)及家用電器等各個領(lǐng)域得到廣泛應(yīng)用二.設(shè)計目的 1、掌握用窗函數(shù)法設(shè)計FIR濾波器的原理及方法,熟悉線性纖維FIR濾波器的幅頻特性和相頻特性及其圖像。2、 掌握使用matlab編程的基本方法,學(xué)會利用fdatool 工具來快速設(shè)計滿足需要的濾波器。3、 掌握TMS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學(xué)習(xí)驅(qū)動TMS320F2812 DSP處理器程序編寫并能使其正常工作。實習(xí)驅(qū)動ADC模塊實現(xiàn)信號的實時采集與模數(shù)轉(zhuǎn)換4、 掌握使用TMS320F2812
4、DSP處理器實現(xiàn)FIR數(shù)字低通濾波器的設(shè)計方法,并能夠?qū)崟r采集輸入信號并濾除高頻信號再通過SCI串口傳輸?shù)接嬎銠C顯示。三.設(shè)計要求1、利用Matlab軟件的FDATool工具設(shè)計FIR濾波器,并提取濾波器參數(shù);2、在CCS集成開發(fā)環(huán)境下,利用第1步得到的濾波器參數(shù),利用窗函數(shù)法設(shè)計FIR濾波器程序,觀察輸入信號及濾波后得到的輸出信號的時域波形及FFT Magnitude波形;3、利用TMS320F2812的ADC片內(nèi)外設(shè)的外圍電路實時采集的混頻信號數(shù)據(jù),使用1個51階的FIR低通濾波器,在CCS中設(shè)計FIR濾波器程序?qū)崿F(xiàn)濾波,觀察相關(guān)波形及濾波效果,通過SCI接口將數(shù)據(jù)傳送到計算機上;四、總體
5、設(shè)計4.1利用Matlab軟件的FDATool工具設(shè)計FIR濾波器4.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論濾波器就是在時間域或頻域內(nèi),對已知激勵產(chǎn)生規(guī)定響應(yīng)的網(wǎng)絡(luò),使其能夠從信號中提取有用的信號,抑制并衰減不需要的信號。濾波器的設(shè)計實質(zhì)上就是對提出的要求給出相應(yīng)的性能指標,再通過計算,使物理可實現(xiàn)的實際濾波器頻率響應(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è)計均使用繁瑣的公式計算,改變參數(shù)后需要重新運算,從而在分析與設(shè)計濾波器尤其是高
6、階濾波器時工作量特別大。這里應(yīng)用MATLAB 設(shè)計FIR濾波器,根據(jù)給定的性能指標設(shè)計一個H(z),使其逼近這一指標,進而計算并確定濾波器的系數(shù)b(n),再將所設(shè)計濾波器的幅頻響應(yīng)、相頻響應(yīng)曲線作為輸出,與設(shè)計要求進行比較,對設(shè)計的濾波器進行優(yōu)化。設(shè)計完成之后將得到FIR濾波器的單位沖激響應(yīng)序列h(n)的各個參數(shù)值。4.1.2 利用Matlab軟件的FDATool設(shè)計FIR濾波器() 首先在命令窗口鍵入FDAtool命令,啟動濾波器設(shè)計分析器,調(diào)出FDAtool界面,如下圖所示。FDATool界面() 在Filter Type選項中選Lowpass,在Design Method中選擇FIR濾波
7、器,接著在FIR中選擇Window (窗函數(shù)) 法。() 然后在Filter Order 中選擇Specify Order (為指定階數(shù)),輸入數(shù)值為“51”;在Opitions框中選中“Scale Passband”;在窗類型(Window:)下拉框選擇“Blackman”。() 在Frenquency Specification選項中,將fs(為采樣頻率)、fc (為通帶截止頻率)中分別鍵入250000 Hz和20000Hz。() 點擊“Design Filter”按鈕,完成濾波器的設(shè)計。() 通過菜單選項Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性。點擊Analysis 中的M
8、agnitude Response和Phase Response 對幅頻和相頻響應(yīng)進行分析。如下圖所示() 在FDATool 中,選擇Targets -> Generate C Header.,單擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計出的 FIR濾波器的系數(shù)表。(默認的系數(shù)表文件為fdacoefs.h。如下圖所示。() 在Matlab中打開得到的fdacoefs.h的文件,如下圖所示從Matlab中打開的fdacoefs.h文件4.1.3提取濾波器參數(shù)取系數(shù)表中的數(shù)據(jù)小數(shù)點后3位有效值,得到如下內(nèi)容:Const floatB52=0.000,0.000,0.000,0.00
9、0,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.000,0.0004.2
10、CCS環(huán)境下FIR濾波器的設(shè)計及軟件仿真4.2.1 程序流程圖初始化輸入低通濾波器各頻率參數(shù)構(gòu)建濾波器頻域特性波形使用FDATool提取濾波器參數(shù)或用FIR濾波器計算程序計算得到濾波器參數(shù)構(gòu)建FIR濾波器進行濾波無限循環(huán)4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程()實驗準備設(shè)置軟件仿真模式,啟動CCS。()建立工程建立一個文件夾,存放在D:FIR,將D:課程設(shè)計FIR濾波器Fir源程序文件夾下的工程全部復(fù)制到D:FIR,在CCS中打開D:FIRfirfir.pjt工程,打開的CCS集成開發(fā)環(huán)境如下圖所示。4.2.3觀察濾波前后的信號的時域波形及FFT Magnitude波形(1)編
11、譯工程文件生成fir.out文件,并通過File->Load Program裝載該文件。(2)設(shè)置波形時域觀察窗口。選擇菜單ViewGraphTime/Frequency ,分別進行如下圖所示進行設(shè)置以便觀察輸入/輸出時域波形。 輸入數(shù)據(jù)時域波形觀察 輸出數(shù)據(jù)時域波形觀察選擇菜單ViewGraphTime/Frequency ,分別進行如下圖所示進行設(shè)置以便觀察輸入/輸出頻域波形。輸入數(shù)據(jù)頻域波形觀察 輸出數(shù)據(jù)頻域波形觀察(3)設(shè)置斷點。在程序fir.c中,有注釋斷點的語句上設(shè)置軟件斷點。(4)運行并觀察結(jié)果。選擇Debug菜單的Run項,或按F5鍵運行程序。觀察到的圖形如下圖所示。左上
12、角:輸入數(shù)據(jù)時域圖(Start Address : input) 右上角:輸入數(shù)據(jù)頻譜(Display Type : FFT Magnitude) 左下角:輸出數(shù)據(jù)時域圖(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
13、Include File/#include "f2812a.h"#include"math.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.0
14、03,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.000,0.000 ;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSig
15、nal1,fSignal2;float fStepSignal1,fStepSignal2;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+;
16、if ( nOut>=256 )nOut=0;/* 請在此句上設(shè)置軟件斷點 */ float InputWave()for ( i=FIRNUMBER-1;i>0;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
17、;fSum=0;for ( i=0;i<FIRNUMBER;i+ )fSum+=(fXni*fHni);return(fSum);fir.cmd 程序-l rts2800_ml.lib-stack 400h-heap 100MEMORY PAGE 0 : PROG(R) : origin = 0x80000, length = 0x10000 PAGE 0 : BOOT(R) : origin = 0x3FF000, length = 0xFC0 PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2 /*PAGE 0 : VECTORS(
18、R) : origin = 0x3FFFC2, length = 0x3E*/ PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400 PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400 PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000 PAGE 1 : H0RAM(RW) : origin = 0x3F8000, length = 0x2000SECTIONS /* 22-bit program sections *
19、/ .reset : > RESET, PAGE = 0 /*vectors : > VECTORS, 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
20、 = 1 /* 32-bit data sections */ .ebss : > H0RAM, PAGE = 1 .econst : > H0RAM, PAGE = 1 .esysmem : > H0RAM, PAGE = 14.3 對實時采樣信號進行濾波的FIR濾波器的實現(xiàn)4.3.1 程序清單#include "DSP281x_Device.h" / DSP281x Headerfile Include File#include "DSP281x_Examples.h" / DSP281x Examples Include File
21、#include <math.h>#define pi 3.1415927int px256;int py256;double npass,h51, x, y, xmid51;int m=50;int n=256;/ Prototype statements for functions found within this errupt void adc_isr(void);/ Global variables used in this example:Uint16 LoopCount;Uint16 ConversionCount;void firdes(int m,
22、 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,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 e
23、xample, set HSPCLK to SYSCLKOUT / 6 (25Mhz assuming 150Mhz SYSCLKOUT) EALLOW; SysCtrlRegs.HISPCP.all = 0x3; / HSPCLK = SYSCLKOUT/6 EDIS; / Disable CPU interrupts DINT;/ Initialize the PIE control registers to their default state. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt fla
24、gs: IER = 0x0000; IFR = 0x0000;/ Initialize the PIE vector table with pointers to the shell Interrupt / Service Routines (ISR). InitPieVectTable();/ 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
25、register PieVectTable.ADCINT = &adc_isr; EDIS; / This is needed to disable write to EALLOW protected registersInitAdc(); / For this example, init the ADC/ Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; / Enable CPU Interrupt 1 EINT; / Enable Global interrupt INTM ERTM; /
26、Enable Global realtime interrupt DBGM LoopCount = 0; ConversionCount = 0; / Configure ADC AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; AdcRegs.ADCMAXCONV.all = 0x0000; / Setup 2 conv's on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x4; / Setup ADCINA0 as 1st SEQ1 conv. AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; / E
27、nable EVASOC to start SEQ1 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; / Enable SEQ1 interrupt (every EOS)/ Configure EVA/ Assumes EVA Clock is already enabled in InitSysCtrl(); EvaRegs.T1CMPR = 0x0380; / Setup T1 compare value EvaRegs.T1PR = 0x07FF; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1
28、; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0x1042; / Enable timer 1 compare (upcount mode)/ Wait for ADC interrupt k=0; fs = 250000; fstop = 20000; npass = 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+) xmi
29、dm-p = xmidm-p-1; xmid0 = x; r = 0; rm= 0; for (j=0; j<=m; j+) r = xmidj * hj;rm = rm + r; y = rm; ym = (int)(1023.0 * y); pyi = ym; k+; /加斷點,觀察波形 interrupt void adc_isr(void) pxConversionCount = AdcRegs.ADCRESULT0 >>4; if(ConversionCount = 256) ConversionCount = 0; else ConversionCount+; / Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚協(xié)議中子女探望權(quán)及安全保障補充協(xié)議
- 生態(tài)度假村地產(chǎn)返租合作經(jīng)營合同
- 影視拍攝場地消毒防疫執(zhí)行合同
- 高端藝術(shù)考級項目獨家授權(quán)經(jīng)營管理合同
- 電影特效替身演員薪資結(jié)算規(guī)范
- 《電競主題咖啡廳IP打造與運營協(xié)議》
- 婚姻忠誠協(xié)議附財產(chǎn)分割條件及執(zhí)行協(xié)議
- 虛擬現(xiàn)實主題公園項目投資評估合同
- 有機農(nóng)業(yè)種植大棚租賃與農(nóng)產(chǎn)品加工合作協(xié)議
- 臨床醫(yī)學(xué)影像設(shè)備質(zhì)保服務(wù)條款補充協(xié)議
- 2025年人教版小學(xué)三年級下冊奧林匹克數(shù)學(xué)競賽測試卷(附參考答案)
- 【8地一模 初二會考】安徽省蚌埠市2024-2025學(xué)年八年級下學(xué)期第一次月考地理試卷
- 火鍋店服務(wù)員服務(wù)全流程詳解
- 2024-2025學(xué)年八年級下學(xué)期道德與法治期中模擬試卷(二)(統(tǒng)編版含答案解析)
- 武安市公安局招聘警務(wù)輔助人員筆試真題2024
- 2023年高考真題-物理(廣東卷) 含答案
- 第三單元整本書閱讀《朝花夕拾》“魯迅心中的那些情”主題交流課 教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文七年級上冊
- 氣候變化適應(yīng)成本-深度研究
- 第2課《風(fēng)鈴》課件 花城版音樂三年級下冊
- R245fa螺旋管內(nèi)分液冷凝特性實驗研究
- 【營銷方案】2025小紅書平臺營銷通案
評論
0/150
提交評論