好文档 - 专业文书写作范文服务资料分享网站

全国电子设计大赛一等奖论文 

天下 分享 时间: 加入收藏 我要投稿 点赞

附3:电路图图纸

电源系统

前级放大和AD转换

Atmega16控制板

附4:程序清单

/*///////////////////////////////////////////////////////////////////////////////////////////////// FFT转换函数,dataR:实部,datai:虚部,

////////////////////////////////////////////////////////////////////////////////////////////////*/ void FFT(float *dataR,float *dataI,int n) {

int i,L,j,k,b,p,xx,qq; int x[11]={0}; float TR,TI,temp; float QQ;

//////////////////////////////////位倒置//////////////////////////////////////////////////// for(i=0;i

for(j=0;j

for(j=0;j

{x[j]=(i/count[j])&0x01;}

for(j=0;j

{xx=xx+x[j]*count[n-j-1];} dataI[xx]=dataR[i]; }

for(i=0;i

}

////////////////////////////////////蝶形运算//////////////////////////////////////// for(L=1;L<=n;L++)

{ b=1; i=L-1; while(i>0) { b=b*2; i--;

} for(j=0;j<=b-1;j++) { p=1; i=n-L;

while(i>0) { p=p*2; i--;}

p=p*j;

for(k=j;k

TR=dataR[k]; TI=dataI[k];

temp=dataR[k+b];

QQ=2*pi*p/count[n]; qq=p*count[11-n];

dataR[k]=dataR[k]+dataR[k+b]*cos_tab[qq]+dataI[k+b]*sin_tab[qq];

dataI[k]=dataI[k]-dataR[k+b]*sin_tab[qq]+dataI[k+b]*cos_tab[qq];

dataR[k+b]=TR-dataR[k+b]*cos_tab[qq]-dataI[k+b]*sin_tab[qq]; //查表运算

dataI[k+b]=TI+temp*sin_tab[qq]-dataI[k+b]*cos_tab[qq];

} } }

for(i=0;i

{ w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); w[i]=w[i]/count[n-1]; }

w[0]=w[0]/2;

}

///////////////////////////回放数据///////////////////////// void viewdata(void) {

unsigned int key,page,i; page=0;

LCD_PenColor=0x1F; //红色 LCD_WriteChineseString(font5,2,40,0); LCD_PenColor=0xFC; //蓝色

while(1){ key=getkey(); if(key!=0xFF) {

if(key==4) {SystemState=fft_mode;return;} //返回 if(key==2) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0); i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25); p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35); p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50); if(page>0) page--; delay_nms(8000000);

} //上翻页 if(key==1) {

LCD_ClearScreen();

LCD_WriteChineseString(font3,2,10,0);LCD_WriteChineseString(font4,2,60,0); i=page*4+1;

p3510(Re[i],0,15); print3510(Im[i]*mode,50,15);

p3510(Re[i+1],0,26); print3510(Im[i+1]*mode,50,25); p3510(Re[i+2],0,38); print3510(Im[i+2]*mode,50,35); p3510(Re[i+3],0,50); print3510(Im[i+3]*mode,50,50); page++;if(page>=SampleNum/4) page=0; delay_nms(8000000);

} //下翻页

} } }

////////////////////////////失真度计算/////////////////////// void distortion(void) {

LCD_ClearScreen();

LCD_WriteChineseString(font6,3,10,20); unsigned int key; int fr;

while(1) {

////////////获取频率////////////////////

log_2_N=11;SampleNum=SampleTab[log_2_N]; reset_timer(0); init_timer0(40960); New_Flag=0;

enable_timer(0);

////////////////////等待采样完成/////////////////////////// while(!FFT_Flag);

disable_timer(0); //关定时器0

//////////////////////FFT运算///////////////////////////////// FFT(Re,Im,log_2_N);

////////////////频域功率////////////////////////////////////

for(i=1;i

for(i=1;i

sort(&Re[1],&Im[1],SampleNum/2-1);

fr=1000000/fre;

if(Tflag) {LCD_WriteChineseString(font7,1,50,20);LCD_WriteEnglishString(\ \else

{LCD_WriteEnglishString(\ \

////////////////////按键扫描///////////////////////////// key=getkey(); if(key!=0xFF) {

全国电子设计大赛一等奖论文 

附3:电路图图纸电源系统前级放大和AD转换Atmega16控制板附4:程序清单/*//////////////////////////////
推荐度:
点击下载文档文档为doc格式
4f1430tk5q4mg6283wcb
领取福利

微信扫码领取福利

微信扫码分享