久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 傅立葉算法的C語言實現 [打印本頁]

作者: liuqq    時間: 2015-5-22 00:44
標題: 傅立葉算法的C語言實現
/***** 作者  _yuming           *************/

好犀利的傅里葉C算法。!膜拜

  1. #include "math.h"
  2.   void kfft(pr,pi,n,k,fr,fi,l,il)
  3.   int n,k,l,il;
  4.   double pr[],pi[],fr[],fi[];
  5.   { int it,m,is,i,j,nv,l0;
  6.     double p,q,s,vr,vi,poddr,poddi;
  7.     for (it=0; it<=n-1; it++)
  8.       { m=it; is=0;
  9.         for (i=0; i<=k-1; i++)
  10.           { j=m/2; is=2*is+(m-2*j); m=j;}
  11.         fr[it]=pr[is]; fi[it]=pi[is];
  12.       }
  13.     pr[0]=1.0; pi[0]=0.0;
  14.     p=6.283185306/(1.0*n);
  15.     pr[1]=cos(p); pi[1]=-sin(p);
  16.     if (l!=0) pi[1]=-pi[1];
  17.     for (i=2; i<=n-1; i++)
  18.       { p=pr[i-1]*pr[1]; q=pi[i-1]*pi[1];
  19.         s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);
  20.         pr[i]=p-q; pi[i]=s-p-q;
  21.       }
  22.     for (it=0; it<=n-2; it=it+2)
  23.       { vr=fr[it]; vi=fi[it];
  24.         fr[it]=vr+fr[it+1]; fi[it]=vi+fi[it+1];
  25.         fr[it+1]=vr-fr[it+1]; fi[it+1]=vi-fi[it+1];
  26.       }
  27.     m=n/2; nv=2;
  28.     for (l0=k-2; l0>=0; l0--)
  29.       { m=m/2; nv=2*nv;
  30.         for (it=0; it<=(m-1)*nv; it=it+nv)
  31.           for (j=0; j<=(nv/2)-1; j++)
  32.             { p=pr[m*j]*fr[it+j+nv/2];
  33.               q=pi[m*j]*fi[it+j+nv/2];
  34.               s=pr[m*j]+pi[m*j];
  35.               s=s*(fr[it+j+nv/2]+fi[it+j+nv/2]);
  36.               poddr=p-q; poddi=s-p-q;
  37.               fr[it+j+nv/2]=fr[it+j]-poddr;
  38.               fi[it+j+nv/2]=fi[it+j]-poddi;
  39.               fr[it+j]=fr[it+j]+poddr;
  40.               fi[it+j]=fi[it+j]+poddi;
  41.             }
  42.       }
  43.     if (l!=0)
  44.       for (i=0; i<=n-1; i++)
  45.         { fr[i]=fr[i]/(1.0*n);
  46.           fi[i]=fi[i]/(1.0*n);
  47.         }
  48.     if (il!=0)
  49.       for (i=0; i<=n-1; i++)
  50.         { pr[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i]);
  51.           if (fabs(fr[i])<0.000001*fabs(fi[i]))
  52.             { if ((fi[i]*fr[i])>0) pi[i]=90.0;
  53.               else pi[i]=-90.0;
  54.             }
  55.           else
  56.             pi[i]=atan(fi[i]/fr[i])*360.0/6.283185306;
  57.         }
  58.     return;
  59.   }
復制代碼







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www.欧美| 欧美mv日韩mv国产网站 | 亚洲欧美日韩在线 | 午夜免费观看视频 | 日韩精品视频在线免费观看 | 懂色av色吟av夜夜嗨 | 免费黄色小视频 | 精品视频在线播放 | 国v精品久久久网 | 欧美不卡在线 | 天天射天天舔 | 久久免费福利视频 | 色婷婷狠狠| 在线观看日韩精品 | 精品国产网站 | 日本特黄特色aaa大片免费 | 羞羞网站在线观看 | 亚洲女优在线 | www亚洲天堂| 精品一区二区三 | 日韩一区二区三区在线播放 | 国产高清视频在线观看 | 免费成人结看片 | 欧美视频亚洲视频 | 免费理论片| 毛茸茸性猛交xxxx | 国产在线一| 欧美成人精品激情在线观看 | 久久精品一区二区三区四区五区 | 亚洲天堂国产 | 日韩欧美国产精品 | 成人免费黄色片 | 又色又爽又黄18网站 | 波多野结衣之双调教hd | 久久久精品在线观看 | 992tv在线| 久久久久国产精品夜夜夜夜夜 | 毛片网站免费观看 | 国产成人一区二区 | 三级黄视频 | 人人草在线视频 |