版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DSPf2812实验报告实验项目AD采样及其频谱分析学生姓名周群创指导教师陈宁专业班级电子信息1101目录AD采样及基2FFT频谱分析 3一、实验要求: 3二、实验设备及环境 3三、实验原理及其步骤 3四、实验结果及其分析 10AD采样及基2FFT频谱分析一、实验要求:编写基2-FFT变换的程序,要求对从2812的A/D口实时输入的正弦信号进行频谱分析,并验证采样定理。二、实验设备及环境安装ccs3.3的操作系统,dsp系统实验箱三、实验原理及其步骤学会使用f2812对外部信号进行采样然后进基2-FFT变换,求出信号的频谱快速傅里叶变换(FFT)算法离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,离散傅里叶变换定义为:k=0,1,…,N1,如果直接按照公式进行计算,求出N点X(k)需要N2次复数乘法,N(N1)次复数加法,如此推算,进行1024点傅里叶变换共需要4194304次实数乘法,这对于实时处理是无法接受的。而傅里叶快速(FFT)算法的提出使傅里叶变换成为一种真正实用的算法。第一步输入数据的组合和位倒序把输入序列作位倒序是为了在整个运算最后的输出中得到的序列是自然顺序。首先,把原始输入的2N=1024个点的实数序列a(n)当成N=512点的复数序列d(n)。偶数地址是d(n)的实部,奇数地址是d(n)的虚部。然后,复数序列经过位倒序,存储在DATA数据处理缓冲器中。在用VC55X进行位倒序组合时,使用位倒序寻址方式,AR0存放的整数N是FFT点数的一半,一个辅助寄存器指向一个数据存放的单元。当使用位倒序寻址把AR0加到辅助寄存器时,地址以位倒序的方式产生,进位是从左到右。第二步N点复数FFT在DATA数据处理缓冲器里进行N点复数FFT运算。用Q15格式把正弦和余弦表存储在两个分离的表中,每个表有512个数据,对应从0到180度。512点的复数FFT分为九级,最后结果D[K]=F{d(n)}=R[K]+JI[k]R[K],I[k]分别是D[k]的实部和虚部,D[K]存储到DATA数据处理缓冲器。第三步分离复数FFT的输出为奇、偶部分利用DFT变换的共轭对称性,分离FFT输出为偶实数RP[k]、奇实数RM[k]、偶虚数IP[k]和奇虚数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](偶数部分)存储在上半部分,RM[k]和IM[k]存储在下半部分。第四步产生2N点的复数FFT输出序列a(n)的FFT:A[k]=A[2N-k]=AR[k]+jAI[k]实数FFT输出按照实数/虚数的自然顺序填满整个4N个字节的数据处理缓冲器。由于最后所得的FFT数据是一个复数,为了能方便观察该信号的频谱特征,对所得结果进行处理,取实部和虚部的平方和。即求该信号的功率DIT―FFT运算和程序框图倒序程序框图F2812fft程序#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"//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"//DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile//Prototypestatementsforfunctionsfoundwithinthiserruptvoidadc_isr(void);//Globalvariablesusedinthisexample:Uint16LoopCount;Uint16ConversionCount;Uint16Voltage1[1024];Uint16Voltage2[1024];Uint16Voltage3[1024];main(){InitSysCtrl();//初始化cpuDINT;//关中断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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 改装产品营销方案模板(3篇)
- 无缝拼接屏施工方案(3篇)
- 村居秧歌活动方案策划(3篇)
- 榴莲新店活动策划方案(3篇)
- 汽车租赁淡季营销方案(3篇)
- 海南艺术活动策划方案(3篇)
- 灯箱广告安装施工方案(3篇)
- 球形网架梁施工方案(3篇)
- 盾构注浆堵漏施工方案(3篇)
- 穿墙螺杆封堵施工方案(3篇)
- 重庆育才中学2026届高三适应性训练(二)生物+答案
- 2026年租赁烘干塔合同(1篇)
- 神经重症目标温度管理共识
- 2026年高校学报编辑部期刊出版岗应聘笔试指南及规范
- 2026年林业局森林资源管理岗面试题
- 2026年小升初数学考试知识点总结
- 肝素类药物临床监测专家共识解读2026
- 2025年湖北省工程专业中级职务水平能力测试(林业)综合试题及答案
- 东莞广告行业分析报告
- 2025年卫生经济研究报告
- 《烧伤外科诊疗指南及操作规范(2025版)》
评论
0/150
提交评论