中南大學(xué)dsp2812實驗報告_第1頁
中南大學(xué)dsp2812實驗報告_第2頁
中南大學(xué)dsp2812實驗報告_第3頁
中南大學(xué)dsp2812實驗報告_第4頁
中南大學(xué)dsp2812實驗報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

DSPf2812實驗報告實驗項目AD采樣及其頻譜分析學(xué)生姓名周群創(chuàng)指導(dǎo)教師陳寧專業(yè)班級電子信息1101目錄AD采樣及基2FFT頻譜分析 3一、實驗要求: 3二、實驗設(shè)備及環(huán)境 3三、實驗原理及其步驟 3四、實驗結(jié)果及其分析 10AD采樣及基2FFT頻譜分析一、實驗要求:編寫基2-FFT變換的程序,要求對從2812的A/D口實時輸入的正弦信號進行頻譜分析,并驗證采樣定理。二、實驗設(shè)備及環(huán)境安裝ccs3.3的操作系統(tǒng),dsp系統(tǒng)實驗箱三、實驗原理及其步驟學(xué)會使用f2812對外部信號進行采樣然后進基2-FFT變換,求出信號的頻譜快速傅里葉變換(FFT)算法離散傅里葉變換作為信號處理中最基本和最常用的運算,在信號處理領(lǐng)域占有基礎(chǔ)性的地位,離散傅里葉變換定義為:k=0,1,…,N1,如果直接按照公式進行計算,求出N點X(k)需要N2次復(fù)數(shù)乘法,N(N1)次復(fù)數(shù)加法,如此推算,進行1024點傅里葉變換共需要4194304次實數(shù)乘法,這對于實時處理是無法接受的。而傅里葉快速(FFT)算法的提出使傅里葉變換成為一種真正實用的算法。第一步輸入數(shù)據(jù)的組合和位倒序把輸入序列作位倒序是為了在整個運算最后的輸出中得到的序列是自然順序。首先,把原始輸入的2N=1024個點的實數(shù)序列a(n)當(dāng)成N=512點的復(fù)數(shù)序列d(n)。偶數(shù)地址是d(n)的實部,奇數(shù)地址是d(n)的虛部。然后,復(fù)數(shù)序列經(jīng)過位倒序,存儲在DATA數(shù)據(jù)處理緩沖器中。在用VC55X進行位倒序組合時,使用位倒序?qū)ぶ贩绞?,AR0存放的整數(shù)N是FFT點數(shù)的一半,一個輔助寄存器指向一個數(shù)據(jù)存放的單元。當(dāng)使用位倒序?qū)ぶ钒袮R0加到輔助寄存器時,地址以位倒序的方式產(chǎn)生,進位是從左到右。第二步N點復(fù)數(shù)FFT在DATA數(shù)據(jù)處理緩沖器里進行N點復(fù)數(shù)FFT運算。用Q15格式把正弦和余弦表存儲在兩個分離的表中,每個表有512個數(shù)據(jù),對應(yīng)從0到180度。512點的復(fù)數(shù)FFT分為九級,最后結(jié)果D[K]=F{d(n)}=R[K]+JI[k]R[K],I[k]分別是D[k]的實部和虛部,D[K]存儲到DATA數(shù)據(jù)處理緩沖器。第三步分離復(fù)數(shù)FFT的輸出為奇、偶部分利用DFT變換的共軛對稱性,分離FFT輸出為偶實數(shù)RP[k]、奇實數(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ù)部分)存儲在上半部分,RM[k]和IM[k]存儲在下半部分。第四步產(chǎn)生2N點的復(fù)數(shù)FFT輸出序列a(n)的FFT:A[k]=A[2N-k]=AR[k]+jAI[k]實數(shù)FFT輸出按照實數(shù)/虛數(shù)的自然順序填滿整個4N個字節(jié)的數(shù)據(jù)處理緩沖器。由于最后所得的FFT數(shù)據(jù)是一個復(fù)數(shù),為了能方便觀察該信號的頻譜特征,對所得結(jié)果進行處理,取實部和虛部的平方和。即求該信號的功率DIT―FFT運算和程序框圖倒序程序框圖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)容里面會有圖紙預(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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論