版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
DSPf2812實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目AD采樣及其頻譜分析學(xué)生姓名周群創(chuàng)指導(dǎo)教師陳寧專業(yè)班級電子信息1101目錄AD采樣及基2FFT頻譜分析 3一、實(shí)驗(yàn)要求: 3二、實(shí)驗(yàn)設(shè)備及環(huán)境 3三、實(shí)驗(yàn)原理及其步驟 3四、實(shí)驗(yàn)結(jié)果及其分析 10AD采樣及基2FFT頻譜分析一、實(shí)驗(yàn)要求:編寫基2-FFT變換的程序,要求對從2812的A/D口實(shí)時(shí)輸入的正弦信號進(jìn)行頻譜分析,并驗(yàn)證采樣定理。二、實(shí)驗(yàn)設(shè)備及環(huán)境安裝ccs3.3的操作系統(tǒng),dsp系統(tǒng)實(shí)驗(yàn)箱三、實(shí)驗(yàn)原理及其步驟學(xué)會(huì)使用f2812對外部信號進(jìn)行采樣然后進(jìn)基2-FFT變換,求出信號的頻譜快速傅里葉變換(FFT)算法離散傅里葉變換作為信號處理中最基本和最常用的運(yùn)算,在信號處理領(lǐng)域占有基礎(chǔ)性的地位,離散傅里葉變換定義為:k=0,1,…,N1,如果直接按照公式進(jìn)行計(jì)算,求出N點(diǎn)X(k)需要N2次復(fù)數(shù)乘法,N(N1)次復(fù)數(shù)加法,如此推算,進(jìn)行1024點(diǎn)傅里葉變換共需要4194304次實(shí)數(shù)乘法,這對于實(shí)時(shí)處理是無法接受的。而傅里葉快速(FFT)算法的提出使傅里葉變換成為一種真正實(shí)用的算法。第一步輸入數(shù)據(jù)的組合和位倒序把輸入序列作位倒序是為了在整個(gè)運(yùn)算最后的輸出中得到的序列是自然順序。首先,把原始輸入的2N=1024個(gè)點(diǎn)的實(shí)數(shù)序列a(n)當(dāng)成N=512點(diǎn)的復(fù)數(shù)序列d(n)。偶數(shù)地址是d(n)的實(shí)部,奇數(shù)地址是d(n)的虛部。然后,復(fù)數(shù)序列經(jīng)過位倒序,存儲(chǔ)在DATA數(shù)據(jù)處理緩沖器中。在用VC55X進(jìn)行位倒序組合時(shí),使用位倒序?qū)ぶ贩绞?,AR0存放的整數(shù)N是FFT點(diǎn)數(shù)的一半,一個(gè)輔助寄存器指向一個(gè)數(shù)據(jù)存放的單元。當(dāng)使用位倒序?qū)ぶ钒袮R0加到輔助寄存器時(shí),地址以位倒序的方式產(chǎn)生,進(jìn)位是從左到右。第二步N點(diǎn)復(fù)數(shù)FFT在DATA數(shù)據(jù)處理緩沖器里進(jìn)行N點(diǎn)復(fù)數(shù)FFT運(yùn)算。用Q15格式把正弦和余弦表存儲(chǔ)在兩個(gè)分離的表中,每個(gè)表有512個(gè)數(shù)據(jù),對應(yīng)從0到180度。512點(diǎn)的復(fù)數(shù)FFT分為九級,最后結(jié)果D[K]=F{d(n)}=R[K]+JI[k]R[K],I[k]分別是D[k]的實(shí)部和虛部,D[K]存儲(chǔ)到DATA數(shù)據(jù)處理緩沖器。第三步分離復(fù)數(shù)FFT的輸出為奇、偶部分利用DFT變換的共軛對稱性,分離FFT輸出為偶實(shí)數(shù)RP[k]、奇實(shí)數(shù)RM[k]、偶虛數(shù)IP[k]和奇虛數(shù)IM[k]:RP[k]=RP[N-k]=0.5*(R[k]+R[N-k])RM[k]=-RM[N-k]=0.5*(R[k]-R[N-k])IP[k]=IP[N-k]=0.5*(I[k]+I[N-k])IM[k]=-IM[N-k]=0.5*(I[k]-I[N-k])RP[0]=R[0]IP[0]=I[0]RM[0]=IM[0]=RM[N/2]=IM[N/2]=0RP[N/2]=R[N/2]IP[N/2]=I[N/2]RP[k]和IP[k](偶數(shù)部分)存儲(chǔ)在上半部分,RM[k]和IM[k]存儲(chǔ)在下半部分。第四步產(chǎn)生2N點(diǎn)的復(fù)數(shù)FFT輸出序列a(n)的FFT:A[k]=A[2N-k]=AR[k]+jAI[k]實(shí)數(shù)FFT輸出按照實(shí)數(shù)/虛數(shù)的自然順序填滿整個(gè)4N個(gè)字節(jié)的數(shù)據(jù)處理緩沖器。由于最后所得的FFT數(shù)據(jù)是一個(gè)復(fù)數(shù),為了能方便觀察該信號的頻譜特征,對所得結(jié)果進(jìn)行處理,取實(shí)部和虛部的平方和。即求該信號的功率DIT―FFT運(yùn)算和程序框圖倒序程序框圖F2812fft程序#include"DSP281x_Device.h"http://DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"http://DSP281xExamplesIncludeFile#include"f2812a.h"#include"math.h"#definePI3.1415926#defineSAMPLENUMBER128voidInitForFFT();voidMakeWave();//voidFFT(floatdataR[SAMPLENUMBER],floatdataI[SAMPLENUMBER]);intINPUT[SAMPLENUMBER],DATA[SAMPLENUMBER];floatfWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER];floatsin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER];voidFFT(floatdataR[SAMPLENUMBER],floatdataI[SAMPLENUMBER]){ intx0,x1,x2,x3,x4,x5,x6,xx; inti,j,k,b,p,L; floatTR,TI,temp; /**********followingcodeinvertsequence************/ for(i=0;i<SAMPLENUMBER;i++) { x0=x1=x2=x3=x4=x5=x6=0; x0=i&0x01;x1=(i/2)&0x01;x2=(i/4)&0x01;x3=(i/8)&0x01;x4=(i/16)&0x01;x5=(i/32)&0x01;x6=(i/64)&0x01; xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6; dataI[xx]=dataR[i]; } for(i=0;i<SAMPLENUMBER;i++) { dataR[i]=dataI[i];dataI[i]=0; } /**************followingcodeFFT*******************/ for(L=1;L<=7;L++) {/*for(1)*/ b=1;i=L-1; while(i>0) { b=b*2;i--; }/*b=2^(L-1)*/ for(j=0;j<=b-1;j++)/*for(2)*/ { p=1;i=7-L; while(i>0)/*p=pow(2,7-L)*j;*/ { p=p*2;i--; } p=p*j; for(k=j;k<128;k=k+2*b)/*for(3)*/ { TR=dataR[k];TI=dataI[k];temp=dataR[k+b]; dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p]; dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p]; dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p]; dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p]; }/*ENDfor(3)*/ }/*ENDfor(2)*/ }/*ENDfor(1)*/ for(i=0;i<SAMPLENUMBER/2;i++) { w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); }}/*ENDFFT*/main(){ inti; InitForFFT(); MakeWave(); for(i=0;i<SAMPLENUMBER;i++) { fWaveR[i]=INPUT[i]; fWaveI[i]=0.0f; w[i]=0.0f; } FFT(fWaveR,fWaveI); for(i=0;i<SAMPLENUMBER;i++) { DATA[i]=w[i]; } while(1); //breakpoint}voidInitForFFT(){ inti; for(i=0;i<SAMPLENUMBER;i++) { sin_tab[i]=sin(PI*2*i/SAMPLENUMBER); cos_tab[i]=cos(PI*2*i/SAMPLENUMBER); }}voidMakeWave(){ inti; for(i=0;i<SAMPLENUMBER;i++) { INPUT[i]=sin(PI*2*i/SAMPLENUMBER*3)*1024; }}F2812AD采樣程序#include"DSP281x_Device.h"http://DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"http://DSP281xExamplesIncludeFile//Prototypestatementsforfunctionsfoundwithinthiserruptvoidadc_isr(void);//Globalvariablesusedinthisexample:Uint16LoopCount;Uint16ConversionCount;Uint16Voltage1[1024];Uint16Voltage2[1024];Uint16Voltage3[1024];main(){InitSysCtrl();//初始化cpuDINT;//關(guān)中斷InitPieCtrl();//初始化pie寄存器IER=0x0000;//禁止所有的中斷IFR=0x0000;InitPieVectTable();//初始化pie中斷向量表//Interruptsthatareusedinthisexamplearere-mappedto//ISRfunctionsfoundwithinthisfile.EALLOW;//ThisisneededtowritetoEALLOWprotectedregisterPieVectTable.ADCINT=&adc_isr;EDIS;//ThisisneededtodisablewritetoEALLOWprotectedregistersAdcRegs.ADCTRL1.bit.RESET=1; //ResettheADCmodule asm("RPT#10||NOP"); //Mustwait12-cycles(worst-case)forADCresettotakeeffectAdcRegs.ADCTRL3.all=0x00C8; //firstpower-uprefandbandgapcircuitsAdcRegs.ADCTRL3.bit.ADCBGRFDN=0x3; //Powerupbandgap/referencecircuitryAdcRegs.ADCTRL3.bit.ADCPWDN=1; //PoweruprestofADC//EnableADCINTinPIEPieCtrlRegs.PIEIER1.bit.INTx6=1;IER|=M_INT1;//EnableCPUInterrupt1EINT;//EnableGlobalinterruptINTMERTM;//EnableGlobalrealtimeinterruptDBGMLoopCount=0;ConversionCount=0;//ConfigureADC=0x0001;//Setup2conv'sonSEQ1AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;//SetupADCINA3as1stSEQ1conv.AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x1;//SetupADCINA2as2ndSEQ1conv.AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;//EnableEVASOCtostartSEQ1AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//EnableSEQ1interrupt(everyEOS)//ConfigureEVA//AssumesEVAClockisalreadyenabledinInitSysCtrl();EvaRegs.T1CMPR=0x0080;//SetupT1comparevalueEvaRegs.T1PR=0x10;//SetupperiodregisterEvaRegs.GPTCONA.bit.T1TOADC=1;//EnableEVASOCinEVAEvaRegs.T1CON.all=0x1042;//Enabletimer1compare(upcountmode)//WaitforADCinterruptwhile(1){LoopCount++;}}interruptvoidadc_isr(void){Voltage1[ConversionCount]=AdcRegs.ADCRESULT0>>4;Voltage2[ConversionCount]=AdcRegs.ADCRESULT1>>4;Voltage3[ConversionCount]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)與數(shù)據(jù)挖掘-深度研究
- 2025年廊坊衛(wèi)生職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年廣州城建職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年廣東酒店管理職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年山東文化產(chǎn)業(yè)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 基于PSPL的傳統(tǒng)村落公共空間活力評價(jià)研究
- 2025年安徽職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年安徽商貿(mào)職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年寧夏葡萄酒與防沙治沙職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯(cuò)誤評估報(bào)告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2024光伏發(fā)電工程交流匯流箱技術(shù)規(guī)范
- 旅游活動(dòng)碳排放管理評價(jià)指標(biāo)體系構(gòu)建及實(shí)證研究
- 2022年全國職業(yè)院校技能大賽-電氣安裝與維修賽項(xiàng)規(guī)程
- 2024年黑龍江省政工師理論知識(shí)考試參考題庫(含答案)
評論
0/150
提交評論