版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《現(xiàn)代信號(hào)處理課程設(shè)計(jì)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)題目 DFT的快速算法分析及FFT的DSP實(shí)現(xiàn)</p><p><b> 目 錄</b></p><p> 第1章 引言........................
2、......................2</p><p> 第2章 FFT算法簡(jiǎn)介.......................................2</p><p> 2.1 離散傅里葉變換DFT...................................2</p><p> 2.2 快速傅里葉變換FFT.............
3、......................2</p><p> 第3章FFT算法的DSP實(shí)現(xiàn)...................................5</p><p> 3.1 實(shí)現(xiàn)數(shù)據(jù)的比特反轉(zhuǎn)...................................5</p><p> 3.2 實(shí)現(xiàn)N點(diǎn)復(fù)數(shù)FFT…...............
4、.....................5</p><p> 3.3 輸出FFT結(jié)果........................................6</p><p> 第4章 系統(tǒng)開(kāi)發(fā)平臺(tái)與環(huán)境.................................6</p><p> 4.1 CCS開(kāi)發(fā)環(huán)境.............
5、.............................6</p><p> 4.2SEED-DEC2812開(kāi)發(fā)試驗(yàn)箱..................6</p><p> 第5章 軟件設(shè)計(jì)...........................................7</p><p> 5.1流程圖.......................
6、........................7</p><p> 5.2 源程序..............................................8 </p><p> 第6章 系統(tǒng)仿真..........................................14 </p><p> 第七章 總結(jié)…………………..……
7、………………………...………..19</p><p> 參考文獻(xiàn).................................................19</p><p><b> 1.引言</b></p><p> 傅里葉變換是將信號(hào)從時(shí)域變換到頻域的一種變換形式,是信號(hào)處理領(lǐng)域中一種重要的分析工具。離散傅里葉變換(DFT
8、)是連續(xù)傅里葉變換在離散系統(tǒng)中的表現(xiàn)形式。由于DFT的計(jì)算量很大,因此在很長(zhǎng)一段時(shí)間內(nèi)使其應(yīng)用受到很大的限制。</p><p> 20世紀(jì)60年代由Cooley和Tukey提出了快速傅里葉變換(FFT)算法,它是快速計(jì)算DFT的一種高效方法,可以明顯地降低運(yùn)算量,大大地提高DFT的運(yùn)算速度,從而使DFT在實(shí)際中得到了廣泛的應(yīng)用,已成為數(shù)字信號(hào)處理最為重要的工具之一。</p><p>
9、DSP芯片的出現(xiàn)使FFT的實(shí)現(xiàn)變得更加方便。由于多數(shù)的DSP芯片都能在單指令周期內(nèi)完成乘法—累加運(yùn)算,而且還提供了專(zhuān)門(mén)的FFT指令(如實(shí)現(xiàn)FFT算法所必需的比特反轉(zhuǎn)等),使得FFT算法在DSP芯片上實(shí)現(xiàn)的速度更快。本節(jié)首先簡(jiǎn)要介紹FFT算法的基本原理,然后介紹FFT算法的DSP實(shí)現(xiàn)。</p><p> 2.FFT算法的簡(jiǎn)介</p><p> 快速傅里葉變換(FFT)是一種高效實(shí)現(xiàn)離散傅
10、里葉變換(DFT)的快速算法,是數(shù)字信號(hào)處理中最為重要的工具之一,它在聲學(xué),語(yǔ)音,電信和信號(hào)處理等領(lǐng)域有著廣泛的應(yīng)用。</p><p> 2.1離散傅里葉變換DFT</p><p> 對(duì)于長(zhǎng)度為N的有限長(zhǎng)序列x(n),它的離散傅里葉變換(DFT)為</p><p><b> ?。?)</b></p><p> 式中
11、, ,稱為旋轉(zhuǎn)因子或蝶形因子。</p><p> 從DFT的定義可以看出,在x(n)為復(fù)數(shù)序列的情況下,對(duì)某個(gè)k值,直接按(1)式計(jì)算X(k) 只需要N次復(fù)數(shù)乘法和(N-1)次復(fù)數(shù)加法。因此,對(duì)所有N個(gè)k值,共需要N2次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法。對(duì)于一些相當(dāng)大有N值(如1024點(diǎn))來(lái)說(shuō),直接計(jì)算它的DFT所需要的計(jì)算量是很大的,因此DFT運(yùn)算的應(yīng)用受到了很大的限制。</p><
12、;p> 2.2快速傅里葉變換FFT</p><p> 旋轉(zhuǎn)因子WN 有如下的特性。</p><p><b> 對(duì)稱性: </b></p><p><b> 周期性:</b></p><p> 利用這些特性,既可以使DFT中有些項(xiàng)合并,減少了乘法積項(xiàng),又可以將長(zhǎng)序列的DFT分解成
13、幾個(gè)短序列的DFT。FFT就是利用了旋轉(zhuǎn)因子的對(duì)稱性和周期性來(lái)減少運(yùn)算量的。</p><p> FFT的算法是將長(zhǎng)序列的DFT分解成短序列的DFT。例如:N為偶數(shù)時(shí),先將N點(diǎn)的DFT分解為兩個(gè)N/2點(diǎn)的DFT,使復(fù)數(shù)乘法減少一半:再將每個(gè)N/2點(diǎn)的DFT分解成N/4點(diǎn)的DFT,使復(fù)數(shù)乘又減少一半,繼續(xù)進(jìn)行分解可以大大減少計(jì)算量。最小變換的點(diǎn)數(shù)稱為基數(shù),對(duì)于基數(shù)為2的FFT算法,它的最小變換是2點(diǎn)DFT。<
14、/p><p> 一般而言,F(xiàn)FT算法分為按時(shí)間抽取的FFT(DIT FFT)和按頻率抽取的FFT(DIF FFT)兩大類(lèi)。DIF FFT算法是在時(shí)域內(nèi)將每一級(jí)輸入序列依次按奇/偶分成2個(gè)短序列進(jìn)行計(jì)算。而DIF FFT算法是在頻域內(nèi)將每一級(jí)輸入序列依次奇/偶分成2個(gè)短序列進(jìn)行計(jì)算。兩者的區(qū)別是旋轉(zhuǎn)因子出現(xiàn)的位置不同,得算法是一樣的。在DIF FFT算法中,旋轉(zhuǎn)因子 出現(xiàn)在輸入端,而在DIF FFT算法中它出現(xiàn)在輸入
15、端。</p><p> 假定序列x(n)的點(diǎn)數(shù)N是2的冪,按照DIF FFT算法可將其分為偶序列和奇序列。</p><p><b> 偶序列:</b></p><p><b> 奇序列:</b></p><p> 則x(n)的DFT表示為</p><p> 由于 ,
16、則(3)式可表示為</p><p> 式中, 和分別為和的N/2的DFT。</p><p><b> 由于對(duì)稱性,</b></p><p> 則。因此,N點(diǎn)可分為兩部分:</p><p> 前半部分: (4)</p><p> 后半部分: (5)</
17、p><p> 從式(4)和式(5)可以看出,只要求出0~N/2-1區(qū)間和的值,就可求出0~N-1區(qū)間的N點(diǎn)值。</p><p> 以同樣的方式進(jìn)行抽取,可以求得N/4點(diǎn)的DFT,重復(fù)抽取過(guò)程,就可以使N點(diǎn)的DFT用上組2點(diǎn)的 DFT來(lái)計(jì)算,這樣就可以大減少運(yùn)算量。</p><p> 基2 DIF FFT的蝶形運(yùn)算如圖(a)所示。設(shè)蝶形輸入為和,輸出為和,則有<
18、;/p><p><b> ?。?)</b></p><p><b> ?。?)</b></p><p> 在基數(shù)為2的FFT中,設(shè)N=2M,共有M級(jí)運(yùn)算,每級(jí)有N/2個(gè)2點(diǎn)FFT蝶形運(yùn)算,因此,N點(diǎn)FFT總共有個(gè)蝶形運(yùn)算。</p><p><b> -1</b></p&g
19、t;<p> 圖(a) 基2 DIF FFT的蝶形運(yùn)算</p><p> 例如:基數(shù)為2的FFT,當(dāng)N=8時(shí),共需要3級(jí),12個(gè)基2 DIT FFT的蝶形運(yùn)算。其信號(hào)流程如圖(b)所示。</p><p> x(0) x(0)</p>
20、;<p><b> WN0</b></p><p> x(4) x(1)</p><p> -1 </p><p><b> WN0</b></p>
21、;<p> x(2) x(2)</p><p><b> -1</b></p><p> WN0 WN2</p><p> x(6)
22、 x(3)</p><p> -1 -1</p><p><b> WN0</b></p><p> x(1)
23、 x(4)</p><p><b> -1</b></p><p> WN0 WN1</p><p> x(5)
24、 x(5)</p><p> -1 -1</p><p> WN0 WN2</p><p> x(3)
25、 x(6)</p><p> -1 -1</p><p> WN0 WN2 WN3</p><p> x(7)
26、 x(7)</p><p> -1 -1 -1</p><p> 圖(b) 8點(diǎn)基2 DIF FFT蝶形運(yùn)算</p><p> 從圖(b)可以看出,輸入是經(jīng)過(guò)比特反轉(zhuǎn)的倒位序列,稱為位碼倒置,其排列順序?yàn)?。輸出是按自然順序排列,其順?/p>
27、為。</p><p> 3.FFT算法的DSP實(shí)現(xiàn)</p><p> DSP芯片的出現(xiàn)使FFT的實(shí)現(xiàn)方法變得更為方便。由于大多數(shù)DSP芯片都具有在單指令周期內(nèi)完成乘法—累加操作,并且提供了專(zhuān)門(mén)的FFT指令,使得FFT算法在DSP芯片實(shí)現(xiàn)的速度更快。</p><p> FFT算法可以分為按時(shí)間抽取FFT (DIF FFT)和按頻率抽取FFT (DIF FFT)兩
28、大類(lèi),輸入也有實(shí)數(shù)和復(fù)數(shù)之分,一般情況下,都假定輸入序列為復(fù)數(shù)。下面以N復(fù)數(shù)點(diǎn)FFT算法為例,介紹用DSP芯片實(shí)現(xiàn)的方法。</p><p> 實(shí)現(xiàn)FFT算法主要分為三步:</p><p> 3.1實(shí)現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn)</p><p> 輸入數(shù)據(jù)的比特反轉(zhuǎn)實(shí)際上就是將輸入數(shù)據(jù)進(jìn)行位碼倒置,以便在整個(gè)運(yùn)算后的輸出序列是一個(gè)自然序列。在用匯編指令進(jìn)行位碼倒置是,使
29、用位碼倒置尋址可以大大擔(dān)高程序執(zhí)行速度和使用存儲(chǔ)器的效率。在這種尋址方式下,AR0存放的整數(shù)N是FFT點(diǎn)的一半,一個(gè)輔助寄存器指向一個(gè)數(shù)據(jù)存放的章元。當(dāng)使用位碼倒置尋址將AR0加到輔助寄存器時(shí),地址將以位碼倒置的方式產(chǎn)生。</p><p> 3.2實(shí)現(xiàn)N點(diǎn)復(fù)數(shù)FFT</p><p> N點(diǎn)復(fù)數(shù)FFT算法的實(shí)現(xiàn)可分為三個(gè)功能塊,即第一級(jí)蝶形運(yùn)算,第二蝶形運(yùn)算,第三級(jí)至級(jí)蝶形運(yùn)算。<
30、/p><p> 對(duì)于任何一個(gè)2的整數(shù)冪N=2M,,總可以通過(guò)M次分解最后成為2點(diǎn)的DFT計(jì)算。通過(guò)這樣的M次分解,可構(gòu)成M(即)級(jí)迭代運(yùn)算完成。</p><p> 3.3輸出FFT結(jié)果</p><p> 四.系統(tǒng)開(kāi)發(fā)平臺(tái)與環(huán)境</p><p> 4.1 CCS開(kāi)發(fā)環(huán)境</p><p> CCS提供了配置、建立、調(diào)
31、試、跟蹤和分析程序的工具,它便于實(shí)時(shí)、嵌入式信號(hào)處理程序的編制和測(cè)試,它能夠加速開(kāi)發(fā)進(jìn)程,提高工作效率。</p><p> CCS提供了基本的代碼生成工具,它們具有一系列的調(diào)試、分析能力。CCS支持如下圖1.1所示的開(kāi)發(fā)周期的所有階段。</p><p><b> 圖 1.1</b></p><p> 4.2 SEED-DEC2812開(kāi)發(fā)實(shí)
32、驗(yàn)箱</p><p> SEED-DECxxxx系列嵌入式DSP開(kāi)發(fā)板本著模塊化、總線型、開(kāi)放式、系列化的設(shè)計(jì)思想,采用統(tǒng)一的系統(tǒng)結(jié)構(gòu)、模塊結(jié)構(gòu)和機(jī)械結(jié)構(gòu),以多種典型DSP處理器構(gòu)成具有標(biāo)準(zhǔn)總線和相同物理尺寸的高性能嵌入式DSP開(kāi)發(fā)板。</p><p> SEED-DEC2812 嵌入式DSP開(kāi)發(fā)板原理框圖如圖1.2所示:</p><p><b>
33、圖 1.2</b></p><p><b> 五.軟件設(shè)計(jì)</b></p><p><b> 5.1程序流程圖</b></p><p><b> 5.2源程序</b></p><p> #include "DSP281x_Device.h"
34、; // DSP281x Headerfile Include File</p><p> #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p> #include "f2812a.h"</p><p> #include
35、"math.h"</p><p> #define PI 3.1415926</p><p> #define SAMPLENUMBER 128</p><p> #include "DSP281x_Device.h" // DSP281x Headerfile Include File</p>&
36、lt;p> #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p> // Prototype statements for functions found within this file.</p><p> interrupt void adc_isr(void);
37、</p><p> // Global variables used in this example:</p><p> void admain();</p><p> void InitForFFT();</p><p> void MakeWave();</p><p> //void FFT(float
38、 dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]);</p><p> Uint16 LoopCount;</p><p> Uint16 ConversionCount;</p><p> Uint16 Voltage1[1024];</p><p> Uint16 Voltage2[10
39、24];</p><p> Uint16 nMixing[1024];</p><p> int INPUT[SAMPLENUMBER],DATA[SAMPLENUMBER];</p><p> float fWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER];</p><p&g
40、t; float sin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER];</p><p> admain(void) </p><p><b> {</b></p><p> InitSysCtrl();//初始化cpu</p><p> DINT;//關(guān)中斷</p>
41、;<p> InitPieCtrl();//初始化pie寄存器</p><p> IER = 0x0000;//禁止所有的中斷</p><p> IFR = 0x0000;</p><p> InitPieVectTable();//初始化pie中斷向量表</p><p> // Interrupts that are
42、 used in this example are re-mapped to</p><p> // ISR functions found within this file. </p><p> EALLOW; // This is needed to write to EALLOW protected register</p><p> Pi
43、eVectTable.ADCINT = &adc_isr;</p><p> EDIS; // This is needed to disable write to EALLOW protected registers</p><p> AdcRegs.ADCTRL1.bit.RESET = 1;// Reset the ADC module</p>&
44、lt;p> asm(" RPT #10 || NOP");// Must wait 12-cycles (worst-case) </p><p> AdcRegs.ADCTRL3.all = 0x00C8;// first power-up ref and bandgap circuits</p><p> AdcRegs.ADCTRL3.b
45、it.ADCBGRFDN = 0x3;// Power up bandgap/reference circuitry</p><p> AdcRegs.ADCTRL3.bit.ADCPWDN = 1;// Power up rest of ADC</p><p> // Enable ADCINT in PIE</p><p> PieCtrlRegs.
46、PIEIER1.bit.INTx6 = 1;</p><p> IER |= M_INT1; // Enable CPU Interrupt 1</p><p> EINT; // Enable Global interrupt INTM</p><p> ERTM; // Enable Global realtime in
47、terrupt DBGM</p><p> LoopCount = 0;</p><p> ConversionCount = 0;</p><p> // Configure ADC</p><p> AdcRegs.ADCMAXCONV.all = 0x0001; // Setup 2 conv's on SE
48、Q1</p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA3 as 1st SEQ1 conv.</p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // Setup ADCINA2 as 2nd SEQ1 conv.</p><p> Adc
49、Regs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; // Enable EVASOC to start SEQ1</p><p> AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable SEQ1 interrupt (every EOS)</p><p> // Configure EVA</p><p
50、> // Assumes EVA Clock is already enabled in InitSysCtrl();</p><p> EvaRegs.T1CMPR = 0x0080; // Setup T1 compare value</p><p> EvaRegs.T1PR = 0x10; // Setup p
51、eriod register</p><p> EvaRegs.GPTCONA.bit.T1TOADC = 1; // Enable EVASOC in EVA</p><p> EvaRegs.T1CON.all = 0x1042; // Enable timer 1 compare (upcount mode)</p><p&g
52、t; // Wait for ADC interrupt</p><p><b> while(1)</b></p><p><b> {</b></p><p> LoopCount++;</p><p><b> }</b></p><p>
53、;<b> }</b></p><p> interrupt void adc_isr(void)</p><p><b> {</b></p><p> Voltage1[ConversionCount] = AdcRegs.ADCRESULT0 >>4;</p><p>
54、 Voltage2[ConversionCount] = AdcRegs.ADCRESULT1 >>4;</p><p> nMixing[ConversionCount]=Voltage1[ConversionCount]+Voltage2[ConversionCount];</p><p> // If 40 conversions have been logged,
55、start over</p><p> if(ConversionCount == 1023) </p><p><b> {</b></p><p> ConversionCount = 0;</p><p><b> }</b></p><p> else Co
56、nversionCount++;</p><p> // Reinitialize for next ADC sequence</p><p> AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1</p><p> AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; /
57、/ Clear INT SEQ1 bit</p><p> PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE</p><p><b> return;</b></p><p><b> }</b></p>
58、<p> void FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER])</p><p><b> {</b></p><p> int x0,x1,x2,x3,x4,x5,x6,xx;</p><p> int i,j,k,b,p,L;</p><
59、;p> float TR,TI,temp;</p><p> /********** following code invert sequence ************/</p><p> for ( i=0;i<SAMPLENUMBER;i++ )</p><p><b> {</b></p><p
60、> x0=x1=x2=x3=x4=x5=x6=0;</p><p> x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; </p><p> x5=(i/32)&0x01; x6=(i/64)&0x01;</p>&l
61、t;p> xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;</p><p> dataI[xx]=dataR[i];</p><p><b> }</b></p><p> for ( i=0;i<SAMPLENUMBER;i++ )</p><p><b>
62、 {</b></p><p> dataR[i]=dataI[i]; dataI[i]=0; </p><p><b> }</b></p><p> /************** following code FFT *******************/</p><p> for ( L=1;
63、L<=7;L++ )</p><p> { /* for(1) */</p><p> b=1; i=L-1;</p><p> while ( i>0 ) </p><p><b> {</b></p><p> b=b*2; i--;</p><p&g
64、t; } /* b= 2^(L-1) */</p><p> for ( j=0;j<=b-1;j++ ) /* for (2) */</p><p><b> {</b></p><p> p=1; i=7-L;</p><p> while ( i>0 ) /* p=pow(2,7-L)*j;
65、*/</p><p><b> {</b></p><p> p=p*2; i--;</p><p><b> }</b></p><p><b> p=p*j;</b></p><p> for ( k=j;k<128;k=k+2*b
66、) /* for (3) */</p><p><b> {</b></p><p> TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b];</p><p> dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];</p>
67、<p> dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];</p><p> dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];</p><p> dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*co
68、s_tab[p];</p><p> } /* END for (3) */</p><p> } /* END for (2) */</p><p> } /* END for (1) */</p><p> for ( i=0;i<SAMPLENUMBER/2;i++ )</p><p><b&
69、gt; { </b></p><p> w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);</p><p><b> }</b></p><p> } /* END FFT */</p><p><b> main()</b><
70、/p><p><b> {</b></p><p><b> int i;</b></p><p> InitForFFT();</p><p> MakeWave();</p><p> for ( i=0;i<SAMPLENUMBER;i++ )</p&
71、gt;<p><b> {</b></p><p> fWaveR[i]=INPUT[i];</p><p> fWaveI[i]=0.0f;</p><p> w[i]=0.0f;</p><p><b> }</b></p><p> FFT(f
72、WaveR,fWaveI);</p><p> for ( i=0;i<SAMPLENUMBER;i++ )</p><p><b> {</b></p><p> DATA[i]=w[i];</p><p><b> }</b></p><p> while
73、 ( 1 );// break point</p><p><b> }</b></p><p> void InitForFFT()</p><p><b> {</b></p><p><b> int i;</b></p><p> f
74、or ( i=0;i<SAMPLENUMBER;i++ )</p><p><b> {</b></p><p> sin_tab[i]=sin(PI*2*i/SAMPLENUMBER);</p><p> cos_tab[i]=cos(PI*2*i/SAMPLENUMBER);</p><p><b&
75、gt; }</b></p><p><b> }</b></p><p> void MakeWave()</p><p><b> {</b></p><p><b> int i;</b></p><p> for ( i=0
76、;i<SAMPLENUMBER;i++ )</p><p> {admain();</p><p> INPUT[i]=Voltage1[ConversionCount]+Voltage2[ConversionCount]*3;</p><p><b> }</b></p><p><b> }&
77、lt;/b></p><p><b> 六.系統(tǒng)仿真</b></p><p> ?。?)啟動(dòng)CCS,在CCS中建立一個(gè)C源文件和一個(gè)命令文件,并將這兩個(gè)文件添加到工程,再編譯并裝載程序:</p><p> 閱讀Dsp原理及應(yīng)用中fft 用dsp實(shí)現(xiàn)的有關(guān)程序。</p><p> 雙擊,啟動(dòng)CCS的仿真平臺(tái)的配
78、著選項(xiàng)。</p><p> ?。?)啟動(dòng)ccs2后建立工程文件FFT.pjt</p><p> ?。?)建立源文件FFT.c與鏈接文件FFT.cmd</p><p> ?。?)將這兩個(gè)文件加到FFT.pjt這個(gè)工程中。</p><p> ?。?)創(chuàng)建out文件</p><p> (7)加載out文件</p>
79、;<p><b> (8)加載數(shù)據(jù)</b></p><p> ?。?)觀察輸入輸出波形</p><p><b> 七. 總結(jié)</b></p><p> 本實(shí)驗(yàn)通過(guò)學(xué)習(xí)快速傅里葉變換(FFT)的原理,然后在CCS平臺(tái)下編程對(duì)其進(jìn)行模擬仿真,對(duì)快速傅里葉變換(FFT)有個(gè)一個(gè)較深刻的理解。并且熟悉了DSP,
80、CCS平臺(tái),達(dá)到了課程教學(xué)的目的。但由于初學(xué)DSP,許多東西不明白,以后還需對(duì)DSP努力學(xué)習(xí)研究。</p><p> 通過(guò)這次DSP課程設(shè)計(jì),加深對(duì)DFT算法原理和基本性質(zhì)的理解,熟悉了FFT的算法原理和FFT子程序的算法流程和應(yīng)用,掌握了DSP中FFT的設(shè)計(jì)和編程思想,以及用FFT對(duì)連續(xù)信號(hào)和時(shí)域信號(hào)進(jìn)行頻譜分析的方法,和使用CCS的波形觀察器觀察波形和頻譜情況。</p><p>
81、這次課程設(shè)計(jì),使我增長(zhǎng)了知識(shí),同時(shí)也增強(qiáng)了我動(dòng)手解決問(wèn)題的能力,鍛煉我做事細(xì)心、用心、耐心的能力。同時(shí)也讓我意識(shí)到平時(shí)的課程文化的學(xué)習(xí)固然非常重要,但是在與實(shí)際相聯(lián)系的過(guò)程中還是有許多問(wèn)題的,所以在以后的學(xué)習(xí)生活中,我要努力學(xué)習(xí),培養(yǎng)自己獨(dú)立思考的能力,要加強(qiáng)理論文化與實(shí)際操作的聯(lián)系。</p><p><b> 參考文獻(xiàn):</b></p><p> 1.DSP原理
82、及應(yīng)用其 鄒彥,唐冬,寧志剛,王毓銀 電子工業(yè)出版社</p><p> 2.TMS320C5000系列DSP系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例 汪春梅,孫洪波,任治剛 電子工業(yè)出版社</p><p> 3.DSP芯片的原理與開(kāi)發(fā)應(yīng)用(第三版) 張雄偉,陳亮,徐光輝 電子工業(yè)出版社</p><p> 4.實(shí)時(shí)數(shù)字信號(hào)處理 SEN M.KU
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 離散傅里葉變換dft及其快速算法fft
- dsp課程設(shè)計(jì)fft的dsp實(shí)現(xiàn)
- dsp課程設(shè)計(jì)報(bào)告--fft的dsp實(shí)現(xiàn)
- 數(shù)字信號(hào)課程設(shè)計(jì)報(bào)告-用fft實(shí)現(xiàn)快速卷積
- 基于dsp實(shí)現(xiàn)的rsa快速算法的研究
- 基于DSP實(shí)現(xiàn)的RSA快速算法的研究.pdf
- FFT算法的優(yōu)化及DSP的實(shí)現(xiàn).pdf
- fft快速卷積課程設(shè)計(jì)報(bào)告
- 基于dsp的快速傅里葉fft算法
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--fft實(shí)現(xiàn)信號(hào)的頻分復(fù)用
- 課程設(shè)計(jì)(論文)-基于matlab的fft算法設(shè)計(jì)
- 快速傅里葉變換(fft)的計(jì)算機(jī)實(shí)現(xiàn)信號(hào)與系統(tǒng)課程設(shè)計(jì)論文1x
- dsp課程設(shè)計(jì)---dtmf信號(hào)的產(chǎn)生及檢測(cè)
- 《dsp》課程設(shè)計(jì)-iir算法的軟硬件實(shí)現(xiàn)
- 改進(jìn)的DFT頻率估計(jì)算法及DSP實(shí)現(xiàn).pdf
- fft的dsp實(shí)現(xiàn)
- 現(xiàn)代通信電路課程設(shè)計(jì)--模擬通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 移動(dòng)通信中快速算法的研究.pdf
- 衛(wèi)星導(dǎo)航系統(tǒng)基于FFT的擴(kuò)頻碼快速捕獲算法研究及DSP實(shí)現(xiàn).pdf
- 基于dsp的fft實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論