<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FFT算法在單片機(jī)中的使用&&LCD12864驅(qū)動(dòng)

          FFT算法在單片機(jī)中的使用&&LCD12864驅(qū)動(dòng)

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏

          void clear(uchar dat) //清屏函數(shù)

          {

          uchar i,j,k;

          uchar addr=0x80;

          for(i=0;i<2;i++)

          {

          for(j=0;j<32;j++)

          {

          for(k=0;k<8;k++)

          {

          WriteCommandLCM(0x36);

          WriteCommandLCM(0x80+j);

          WriteCommandLCM(addr+k);

          WriteDataLCM(dat);

          WriteDataLCM(dat);

          }

          }

          addr=0x88;

          }

          WriteCommandLCM(0x36);

          WriteCommandLCM(0x30);

          }

          void heng(uchar a)

          {

          uchar i;

          for(i=0;i<127;i++)

          point(i,a);

          }

          void su(uchar a)

          {

          uchar i;

          for(i=0;i<63;i++)

          point(a,i);

          }

          void FFT()

          {

          int i,j,k,t,P,B,m;

          complex up,down,product;

          for (i=0;i<7;i++)

          {

          B=1<for (j=0;j{

          t=1<<(6-i);

          P=t*j;

          for (k=j;k{

          complex product;

          product.real=x[k+B].real*cos(2*PI*P/N)+x[k+B].img*sin(2*PI*P/N);

          product.img=x[k+B].real*(-1)* sin(2*PI*P/N)+x[k+B].img*cos(2*PI*P/N);

          x[k+B].real=x[k].real-product.real;

          x[k+B].img=x[k].img-product.img;

          x[k].real=x[k].real+product.real;

          x[k].img=x[k].img+product.img;

          }

          }

          }

          }

          void initw() //初始化旋轉(zhuǎn)因子

          {

          int i;

          for (i=0;ivis[i]=0;

          }

          void bitReverse() //比特反轉(zhuǎn)

          {

          int i,j=0;

          int k=0;

          int q=0;

          complex tmp3;

          for (i=0;i{

          int tmp=i,tmp2=0,j;

          for(j=0;j<7;j++)

          tmp2+=((tmp>>j)&1)*(1<<(6-j));

          if(vis[i]==0)

          {

          tmp3=x[i];

          x[i]=x[tmp2];

          x[tmp2]=tmp3;

          vis[i]=1;

          vis[tmp2]=1;

          }

          }

          }

          void xian(uchar x,uchar y)

          {

          uchar i;

          for(i=63;i>=y;i--)

          point(x,i);

          }

          //主函數(shù)

          void main(void)

          {

          uchar ii,y;

          float tmp;

          //端口初始化

          DDRA=0xff;

          PORTA=0xff;

          DDRB=0xff;

          PORTB=0xff;

          DDRD=0xff;

          PORTD=0x00;

          delayms(20);

          delayms(20);

          LCMInit(); //LCM初始化 //液晶初始化

          delayms(100);

          clear(0x00);

          heng(0);

          heng(63);

          su(0);

          su(127);

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

          {

          x[ii].real=3;

          x[ii].img=0;

          }

          for (ii=20;ii<128;ii++)

          {

          x[ii].real=0;

          x[ii].img=0;

          }

          initw();

          bitReverse();

          FFT();

          for(ii=64;ii<128;ii++)

          {

          tmp=sqrt((x[ii].real*x[ii].real)+(x[ii].img*x[ii].img));

          y= 63-(int)tmp;

          point(ii-64,y);

          xian(ii-64,y);

          }

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

          {

          tmp=sqrt((x[ii].real*x[ii].real)+(x[ii].img*x[ii].img));

          y= 63-(int)tmp;

          point(ii+64,y);

          xian(ii+64,y);

          }

          while(1);

          }


          上一頁 1 2 3 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();