




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 鄭州航空工業(yè)管理學院 電子通信工程系DSP原理及應(yīng)用課程設(shè)計報告設(shè)計題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計與實現(xiàn)學號: 0913082305 專業(yè): 電子信息工程 設(shè)計日期: 2012 . 6 . 14 指導老師: 趙 成 閆利超 TOC o 1-3 h u HYPERLINK l _Toc18587 一、引言 PAGEREF _Toc18587 4 HYPERLINK l _Toc8876 二、 設(shè)計目的 PAGEREF _Toc8876 4 HYPERLINK l _Toc9959 三、設(shè)計要求 PAGEREF _Toc9959 5 HYPERLINK l _
2、Toc14239 四、 總體設(shè)計 PAGEREF _Toc14239 6 HYPERLINK l _Toc28462 4.1利用Matlab軟件的FDATool工具設(shè)計FIR濾波器 PAGEREF _Toc28462 6 HYPERLINK l _Toc1415 4.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論 PAGEREF _Toc1415 6 HYPERLINK l _Toc23772 4.1.2 利用Matlab軟件的FDATool設(shè)計FIR濾波器 PAGEREF _Toc23772 7 HYPERLINK l _Toc21360 4.1.3提取濾波器參數(shù) PAGEREF _Toc21360
3、 12 HYPERLINK l _Toc22251 4.2 CCS環(huán)境下FIR濾波器的設(shè)計及軟件仿真 PAGEREF _Toc22251 13 HYPERLINK l _Toc16384 4.2.1 程序流程圖 PAGEREF _Toc16384 13 HYPERLINK l _Toc28318 4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程 PAGEREF _Toc28318 13 HYPERLINK l _Toc6110 4.2.3觀察濾波前后的信號的時域波形及FFT Magnitude波形 PAGEREF _Toc6110 14 HYPERLINK l _Toc25794 4.2
4、.4 程序清單 PAGEREF _Toc25794 16 HYPERLINK l _Toc11355 4.3 對實時采樣信號進行濾波的FIR濾波器的實現(xiàn) PAGEREF _Toc11355 18 HYPERLINK l _Toc29237 4.3.1 程序清單 PAGEREF _Toc29237 18 HYPERLINK l _Toc5221 4.3.2 測試效果 PAGEREF _Toc5221 22 HYPERLINK l _Toc13713 4.3.3 SCI串行數(shù)據(jù)傳輸 PAGEREF _Toc13713 22 HYPERLINK l _Toc20999 五、 總結(jié) PAGEREF _
5、Toc20999 27 HYPERLINK l _Toc30498 六、參考文獻 PAGEREF _Toc30498 28一、引言隨著信息和數(shù)字技術(shù)的發(fā)展,數(shù)字信號處理已成為當今極其重要的學科和技術(shù)領(lǐng)域之一。它在通信、語音、圖像、雷達、軍事、航空航天等眾多領(lǐng)域得到了廣泛的應(yīng)用。在數(shù)字信號處理的基本方法中,通常會涉及到變換、濾波、頻譜分析、調(diào)制解調(diào)和編碼解碼等處理。其中,濾波是應(yīng)用非常廣泛的一個環(huán)節(jié),數(shù)字濾波器的理論與相關(guān)設(shè)計也一直都是人們研究的重點之一。數(shù)字濾波器根據(jù)其沖激響應(yīng)函數(shù)的時域特性,可分為無限長沖激響應(yīng)(I-IR)濾波器和有限長沖激響應(yīng)(FIR )濾波器。其中FIR濾波器具有嚴格的相
6、位特性,同時系統(tǒng)函數(shù)的極點固定在原點上,因而該類型的濾波器是穩(wěn)定的。FIR濾波器的設(shè)計方法主要有窗函數(shù)法、頻率取樣法和最優(yōu)線性相位設(shè)計法。其中窗函數(shù)設(shè)計方法由于其運算簡便、物理意義直觀,已成為工程實際中應(yīng)用最廣泛的方法,本文從FIR數(shù)字濾波器的原理與基本設(shè)計步驟出發(fā),對FIR數(shù)字濾波器在MATLAB中的仿真與設(shè)計的基本思路做了闡述,并在定點DSP上實現(xiàn)了滿足要求的FIR濾波器。設(shè)計目的 (1)掌握用窗函數(shù)法設(shè)計FIR濾波器的原理及方法,熟悉線性纖維FIR濾波器的幅頻特性和相頻特性,熟悉不同的窗函數(shù)對濾波器性能的影響。掌握使用matlab編程的基本方法,學會利用fdatool 工具來快速設(shè)計滿足
7、需要的濾波器。掌握TMS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學習驅(qū)動TMS320F2812 DSP處理器程序編寫并能使其正常工作。實習驅(qū)動ADC模塊實現(xiàn)信號的實時采集與模數(shù)轉(zhuǎn)換。掌握使用TMS320F2812 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波形
8、;3、利用TMS320F2812的ADC片內(nèi)外設(shè)的外圍電路實時采集的混頻信號數(shù)據(jù),使用1個51階的FIR低通濾波器,在CCS中設(shè)計FIR濾波器程序?qū)崿F(xiàn)濾波,觀察相關(guān)波形及濾波效果,通過SCI接口將數(shù)據(jù)傳送到計算機上;4、(選做)利用TI公司的TLV320AIC23高性能立體聲音頻Codec芯片,通過MIC或音頻接口采樣音頻信號,對采樣的音頻信號做濾波運算,進行低音加重處理,再將運算過的音頻數(shù)據(jù)通過揚聲器播放出來??傮w設(shè)計 MATLAB是一套用于科學計算的可視化高性能語言與軟州環(huán)境。它集數(shù)值分析、矩陣運算、信號處理和圖形顯示于一體,構(gòu)成了一個界面友好的用戶壞境。它的信號處理具箱包含了各種經(jīng)典的和
9、現(xiàn)代的數(shù)字信號處理技術(shù),是個非常優(yōu)秀的算法研究與輔助設(shè)備的工具。在設(shè)計數(shù)字濾波器時,通常采用MATLAB未進行輔助設(shè)計和仿真。 利用MATLAB信號處理工具箱進行數(shù)字濾波器設(shè)計總的來說有三種方法:程序設(shè)計法、FDATool設(shè)計法和SPTool設(shè)計法。程序設(shè)計法是由設(shè)計者通過編寫程序,利用MATLAB信號處理工具箱提供的各種窗函數(shù)、濾波器設(shè)計函數(shù)和濾波器實現(xiàn)函數(shù)來完成濾波器的設(shè)計,要求設(shè)計者熟悉工具箱的各種函數(shù),具有一定的編程能力,對于初學者有一點困難;而FDATool設(shè)計法和SPTool設(shè)計法相對比較簡單,F(xiàn)DATooI工具箱和SPTool工具箱具有交互式的友好設(shè)計界面,只要填入設(shè)計參數(shù)點擊按
10、鈕,相應(yīng)的濾波器就設(shè)計完成了,使用起來非常方便。下面將使用FDATool設(shè)計法的FIR濾波器設(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)。傳
11、統(tǒng)的濾波器分析與設(shè)計均使用繁瑣的公式計算,改變參數(shù)后需要重新運算,從而在分析與設(shè)計濾波器尤其是高階濾波器時工作量特別大。這里應(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濾波器使用 Matlab中的 FDAtool設(shè)計濾波器(本文以FIR低通濾波器為例)FDATool ( Filter Desig
12、n & Analysis Tool)是MATLAB信號處理工具箱里專用的濾波器設(shè)計分析工具,MATLAB 6.0以上的版本還專門增加了濾波器設(shè)計工具箱( FilterDesign Toolbox)。FDATool界面為濾波器設(shè)計提供了一個交互式的設(shè)計環(huán)境,用戶可以根據(jù)對幅值和零極點圖的設(shè)置,設(shè)計幾乎所有的基本的常規(guī)濾波器,包括FIR和IIR的各種設(shè)計方法,它們都具有標準的頻率帶寬結(jié)構(gòu)。采用FDATool設(shè)計法時其界面的上半部分為特性區(qū),用來顯示濾波器的各種特性;下半部分為參數(shù)設(shè)定區(qū),用來設(shè)定濾波器的各種參數(shù)。(1)首先在命令窗口鍵入FDAtool命令,啟動濾波器設(shè)計分析器,調(diào)出FDAtool界
13、面,如圖1所示。 圖1FDATool界面(2)在Filter Type選項中選Lowpass,在Design Method中 選擇FIR濾波器,接著在FIR中選擇Window (窗函數(shù)) 法。(3)然后在Filter Order 中選擇Specify Order (為指定階數(shù)),輸入數(shù)值為“24”;在Opitions框中選中“Scale Passband”;在窗類型(Window:)下拉框選擇“Blackman”。(4)在Frenquency Specification選項中,將fs(為采樣頻率)、fc (為通帶截止頻率)中分別鍵入30000 Hz和9600 Hz。(5)點擊“Design F
14、ilter”按鈕,完成濾波器的設(shè)計。具體參數(shù)及設(shè)計成功后的結(jié)果如圖2所示。圖2FIR低通濾波器設(shè)計設(shè)計完成后,可以通過菜單選項Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性。點擊Analysis 中的Magnitude Response和Phase Response 對幅頻和相頻響應(yīng)進行分析(如下圖)。 幅頻響應(yīng) 相頻響應(yīng) (7)在FDATool 中,選擇Targets - Generate C Header.,如圖3所示。圖3 導出濾波器系數(shù)(8)點擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計出的 FIR濾波器的系數(shù)表。(默認的系數(shù)表文件為fdacoefs.h)(9)在Mat
15、lab中打開得到的fdacoefs.h的文件,如圖4、圖5所示。圖4 查看fdacoefs.h文件圖5 fdacoefs.h文件中的系數(shù)表 4.1.3提取濾波器參數(shù)取系數(shù)表中的數(shù)據(jù)小數(shù)點后3位有效值,得到如下內(nèi)容:constfloatB25= 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,-0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,-0.11,-0.02,0.049,-0.018,-0.009,0.01,-0.002,-0.002,0.001,0.0,0.0 ;4.2 CCS環(huán)境下FIR濾波器的設(shè)計及軟件仿真4.2.1 程序
16、流程圖 初始化 輸入低通濾波器各頻率參數(shù) 構(gòu)建濾波器頻域特性波形參數(shù) 使用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源程序文件夾下的工程全部復制到D:FIR,在CCS中打開D:FIRfirfir.pjt工程,就會得到如圖6所示的工程界面。圖6FIR工程示例()編譯生成fir.out文件,通過File-Load Program裝載該文件。4.2.3觀察濾波前
17、后的信號的時域波形及FFT Magnitude波形 (4)設(shè)置時域觀察窗口選擇菜單ViewGraphTime/Frequency,進行如圖7所示設(shè)置。圖7輸入數(shù)據(jù)時域波形和濾波后輸出波形觀察()設(shè)置頻域觀察窗口,選擇菜ViewGraphTime/Frequency ,進行如圖8所示設(shè)置。 圖8 輸入數(shù)據(jù)FFT分析圖形和濾波后輸出數(shù)據(jù)的FFT圖形觀察()設(shè)置斷點。在程序fir.c中,有注釋斷點的語句上設(shè)置軟件斷點。()運行并觀察結(jié)果。 選擇Debug菜單的Run項,或按F5鍵運行程序。觀察到的圖形如圖11所示。圖11濾波前后的數(shù)據(jù)波形及FFT分析的對比圖4.2.4 程序清單 fir.c 程序/#
18、include DSP281x_Device.h / DSP281x Headerfile Include File/#include DSP281x_Examples.h / DSP281x Examples Include File/#include f2812a.h#includemath.h#define FIRNUMBER 25/#define SIGNAL1F 1000/#define SIGNAL2F 4500/#define SAMPLEF 10000#define PI 3.1415926float InputWave();float FIR();float fHnFIRNU
19、MBER= 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,-0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,-0.11,-0.02,0.049,-0.018,-0.009,0.01,-0.002,-0.002,0.001,0.0,0.0 ;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn256,fOut256;int nIn,
20、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;/* 請在此句上設(shè)置軟件斷點 */ float InputWave()for ( i=FIRNUMBER-1;i0;i- )fXni=fXn
21、i-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;iFIRNUMBER;i+ )fSum+=(fXni*fHni);return(fSum);4.3 對實時采樣信號進行濾波的FIR濾波器的實現(xiàn)4.3.1 程序清單#include
22、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 functions found within this errupt void adc_isr(void);/ G
23、lobal 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,fstop,r,rm; int i,j,p,k;/ PLL, WatchDog, enable Peripheral Cloc
24、ks/ 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 = 0 x3; / HSPCLK = SYSCLKOUT/6 EDIS; / Disable CPU interrupts DINT;/ Initialize the PIE control registers t
25、o their default state. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags: IER = 0 x0000; IFR = 0 x0000;/ 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 t
26、o/ 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, init the ADC/ Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6
27、 = 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 = 0 x0000; / Setup 2 convs on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CO
28、NV00 = 0 x4; / 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 in InitSysCtrl(); EvaRegs.T1CMPR = 0 x0380; / Setup T1 com
29、pare value EvaRegs.T1PR = 0 x07FF; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0 x1042; / 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
30、(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.AD
31、CST.bit.INT_SEQ1_CLR = 1; / ClearINT SEQ1 bit PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; / Acknowledge interrupt to PIE return;4.3.2 測試效果如上圖所示,可以發(fā)現(xiàn)使用DSP芯片實現(xiàn)的的FIR濾波器已經(jīng)成功的將設(shè)定的混合頻率信號中的高頻部分濾除。4.3.3 SCI串行數(shù)據(jù)傳輸對實時采樣信號進行濾波并通過SCI串口數(shù)據(jù)傳輸?shù)接嬎銠C的程序如下: #include DSP281x_Device.h / DSP281x Headerfile Include File#includ
32、e 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;long int delays; / Prototype statements for functions found within this errupt void adc_isr(void);void scia_init(void);void scia_xmit(char a)
33、;/ 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,fstop,r,rm; int i,j,p,k;/ PLL, WatchDog, enable Peripheral
34、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 = 0 x3; / HSPCLK = SYSCLKOUT/6 EDIS; / Disable CPU interrupts DINT;/ Initialize the PIE control registe
35、rs to their default state. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags: IER = 0 x0000; IFR = 0 x0000;/ Initialize the PIE vector table with pointers to the shell Interrupt / Service Routines (ISR). InitPieVectTable();/ Interrupts that are used in this example are re-mapp
36、ed 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 registers InitAdc(); / For this example, init the ADC scia_init(); EALLOW; GpioMuxRegs.GPFMUX.all =
37、0 x0030; /配置IO口為專用引腳 EDIS;/ 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.
38、ADCMAXCONV.all = 0 x0000; / Setup 2 convs on SEQ1 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0 x4; / 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
39、is already enabled in InitSysCtrl(); EvaRegs.T1CMPR = 0 x0380; / Setup T1 compare value EvaRegs.T1PR = 0 x07FF; / Setup period register EvaRegs.GPTCONA.bit.T1TOADC = 1; / Enable EVASOC in EVA EvaRegs.T1CON.all = 0 x1042; / Enable timer 1 compare (upcount mode)/ Wait for ADC interrupt k=0; fs = 25000
40、0; fstop = 20000; npass = fstop/fs; for (i=0; i=m; i+) xmidi=0; for(;) SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55; SciaRegs.SCITXBUF=0 x55;/幀首分隔符 firdes(m, npass);for (i
41、=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; j=m; j+) r = xmidj * hj;rm = rm + r; y = rm; ym = (int)(1023.0 * y); pyi = ym; for(i=0;i256;i+) SciaRegs.SCITXBUF=pyi; for(delays=0;delays4; if(ConversionCount = 256) ConversionCount =
42、0; else ConversionCount+; / Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; / Reset SEQ1 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; / Clear INT SEQ1 bit PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; / Acknowledge interrupt to PIE return;void scia_init() SciaRegs.SCIFFTX.all=0 xE040; SciaRegs
43、.SCIFFRX.all=0 x2021; /2041 204f SciaRegs.SCIFFCT.all=0 x0000; SciaRegs.SCICCR.all = 0 x07; /8位數(shù)據(jù)位,空閑線模式,禁止會送測試模式,無奇偶校驗,1位結(jié)束位 SciaRegs.SCICTL1.all = 0 x03; /SCIA發(fā)送器和接收器使能 SciaRegs.SCIHBAUD = 0 x01; SciaRegs.SCILBAUD = 0 xE7; /波特率為9600 SciaRegs.SCICTL1.all = 0 x23; /重啟SCI 最終調(diào)用串口調(diào)試程序出現(xiàn)的結(jié)果如下圖所示總結(jié)數(shù)字濾波與模
44、擬濾波相比有很多優(yōu)點,它除了可避免模擬濾波器固有的電壓漂移、溫度漂移和噪聲等問題外,還能滿足濾波器對幅度和相位的嚴格要求;只要適當改變數(shù)字濾波程序有關(guān)參數(shù),就能方便的改變?yōu)V波特性,因此數(shù)字濾波使用時方便靈活。有限沖激響應(yīng)濾波器(FIR濾波器)有其獨特的優(yōu)點,因為FIR系統(tǒng)只有零點,因此,系統(tǒng)總是穩(wěn)定的,而且容易實現(xiàn)線性相位和允許實現(xiàn)多通道濾波器。DSP技術(shù)一般指將DSP 處理器用于完成數(shù)字信號處理的方法與技術(shù)。目前的DSP芯片以其強大的數(shù)據(jù)處理功能在通信和其他信號處理領(lǐng)域得到廣泛注意并已成為開發(fā)應(yīng)用的熱點技術(shù)。許多領(lǐng)域?qū)τ跀?shù)字信號處理器的應(yīng)用都是圍繞美國TI公司所開發(fā)的DSP處理器進行的。DS
45、P芯片是一種特別適合于進行數(shù)字信號處理運算的微處理器。主要應(yīng)用是實時快速的實現(xiàn)各種數(shù)字信號處理算法,如卷積及各種變換等。這次我們所做的利用DSP芯片來實現(xiàn)數(shù)字濾波器就是一項很重要的應(yīng)用,這一次的課程設(shè)計主要討論基于TI公司TMS320F2812 DSP芯片的濾波器系統(tǒng)軟件實現(xiàn)方法,用Blackman窗函數(shù)設(shè)計實現(xiàn)FIR濾波器,利用MATLAB中的FDAtool濾波器設(shè)計分析器設(shè)計符合要求的FIR濾波器并生成fdacoefs.h文件提取相關(guān)參數(shù)。并在以TI TMS320F2812為微處理器的EXPIV型實驗箱上實現(xiàn),實驗仿真結(jié)果、實時數(shù)據(jù)采集及ADC轉(zhuǎn)換濾波濾波均表明濾波后能夠得到比較光滑時域/
46、頻域波形,濾波結(jié)果效果良好達到了預(yù)期的性能指標要求。六、參考文獻 1. DSP原理及應(yīng)用技術(shù)-基于TMS320 F2812的仿真與實例設(shè)計 趙成 編著 國防工業(yè)出版社2. 數(shù)字信號處理教程 程佩清 編著 清華大學出版社3. 基于DSP的FIR濾波器的設(shè)計與實現(xiàn) 長沙理工大學4. Matlab/Simulink通信系統(tǒng)建模與仿真實例分析 清華大學出版社附錄資料:不需要的可以自行刪除各類濾波器的MATLAB程序理想低通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);Hd=ones(size(IA);r=sqrt(f1.2+f2.2
47、);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 二、理想高通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);Hd=ones(size(IA
48、);r=sqrt(f1.2+f2.2);Hd(r0.2)=0;Y=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); Butterworth低通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size
49、(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolo
50、r,none,Facelighting,phong); Butterworth高通濾波器IA=imread(lena.bmp);f1,f2=freqspace(size(IA),meshgrid);D=0.3;r=f1.2+f2.2;n=4;for i=1:size(IA,1) for j=1:size(IA,2) t=(D*D)/r(i,j); Hd(i,j)=1/(tn+1); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imsh
51、ow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯低通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);D=100/size(IA,1);r=f1.2+f2.2;Hd=ones(size(IA);for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(
52、i,j)=exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 高斯高通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(s
53、ize(IA),meshgrid);%D=100/size(IA,1);D=0.3;r=f1.2+f2.2;for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1-exp(-t); endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecol
54、or,interp,Edgecolor,none,Facelighting,phong); 梯形低通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(IA,1);D0=0.1;D1=0.4;r=sqrt(f1.2+f2.2);Hd=zeros(size(IA);Hd(r=D0 & r(i,j)=D1 Hd(i,j)=(D1-r(i,j)/(D1-D0); end endendY=fft2(double(IA);Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);Ia=real(ifft2(Ya);figuresubplot(2,2,1),imshow(uint8(IA);subplot(2,2,2),imshow(uint8(Ia);figuresurf(Hd,Facecolor,interp,Edgecolor,none,Facelighting,phong); 梯形高通濾波器IA=imread(lena.bmp);IB=imread(babarra.bmp);f1,f2=freqspace(size(IA),meshgrid);%D=100/size(
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機合成原料在綠色建筑材料的創(chuàng)新開發(fā)趨勢預(yù)測分析預(yù)測考核試卷
- 冷凍飲品企業(yè)的品牌維權(quán)與法律事務(wù)考核試卷
- 木質(zhì)素在土壤改良劑中的作用考核試卷
- 外貿(mào)生鮮類合同范本
- 梁板安裝合同范本
- 檔案提成合同范本
- 外墻水性氟碳漆合同范本
- 金融門面轉(zhuǎn)讓合同范本
- 水管改造施工合同
- 公司與供應(yīng)商合作協(xié)議
- 國有土地上房屋征收與補償條例 課件
- 安全文明施工管理(EHS)方案(24頁)
- 水廠項目基于BIM技術(shù)全生命周期解決方案-城市智慧水務(wù)講座課件
- 幼兒園繪本:《閃閃的紅星》 紅色故事
- 三年級學而思奧數(shù)講義.doc
- 投標人基本情況一覽表格
- 鐵路建設(shè)項目施工企業(yè)信用評價辦法(鐵總建設(shè)〔2018〕124號)
- 叉形件加工設(shè)計與分析論文
- 高強螺栓質(zhì)保書
- 市政工程施工進度網(wǎng)絡(luò)圖
- 鄒縣1000MW#7機組最大出力試驗報告
評論
0/150
提交評論