FFTÔÚµ¥Æ¬»úÉϵÄʵÏÖ

ºÓÄϿƼ¼´óѧ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

data2[p].re=data1[i];

data2[p].im=0;} for(mm=0;mm<5;mm++) { Nz=pow(2,mm+1); u.re=1;u.im=0;

WN.re=cos(-2*3.1416/Nz); WN.im=sin(-2*3.1416/Nz); for(j=0;j

{ for(k=j;k<32;k=k+Nz) { kp=k+Nz/2;

t=productComplex(data2[kp],u); data2[kp].re=data2[k].re-t.re; data2[kp].im=data2[k].im-t.im; data2[k].re=data2[k].re+t.re; data2[k].im=data2[k].im+t.im; }

u=productComplex(u,WN); }

}

for(ii=0;ii<16;ii++)

frq1[ii]=sqrt(data2[ii+1].re*data2[ii+1].re+data2[ii+1].im*data2[ii+1].im)/4; }

/************º¯Êý¹¦ÄÜ£ºAD²ÉÑù32¸öµã£¬·ÅÈëdata1ÖÐ***************/ void AD_res(void) interrupt 5 {

if(!(point%2)) temp=ADC_RES; else }

data1[point/2]=(ADC_RES+temp)/2; point++;

if(point==64) {point=0; AD_flag=1; }

33

ºÓÄϿƼ¼´óѧ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

/**************************Ö÷º¯Êý**************************/ void main(void) {

LcdInt(); delay(10); CgInt(); delay(10);

P1ASF = 0x0x06; AUXR1&= 0xfb; EADC=1;

PADC=1;

ADC_CONTR=0x8a; NOP5;

AUXR = 0x80; TMOD = 0x01; TL0 = T1MS; TH0 = T1MS>>8; TR0 = 1;ET0 = 1;

EA = 1; while(1) {

if(AD_flag) {fftgo(); AD_flag=0; } } }

//µ÷ÓÃLCD³õʼ»¯º¯Êý

//P1.1 P1.2¿Ú×÷ΪADÊäÈë

//11111011 ADRJ=0,¸ß°Ëλ·ÅÔÚADC_RESÖÐ

//AD¡¢¶¨Ê±Æ÷³õʼ»¯ //¿ª×ÜÖÐ¶Ï 34

ºÓÄϿƼ¼´óѧ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

¶þ¡¢Ô­Àíͼ

ͼ ¸½-1 ϵͳԭÀí×Üͼ

35

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)