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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4054|回復: 0
打印 上一主題 下一主題
收起左側

傅立葉算法的C語言實現

[復制鏈接]
跳轉到指定樓層
樓主
ID:80436 發表于 2015-5-22 00:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/***** 作者  _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.   }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 罗宾被扒开腿做同人网站 | 成年男女免费视频网站 | 免费中文字幕 | 欧美一级片在线观看 | 日韩欧美一区二区三区在线播放 | 国产香蕉视频在线播放 | 国产传媒| 一区二区精品在线 | 午夜三区 | 日韩精品视频中文字幕 | 羞羞网站在线观看 | 欧美日韩精品久久久免费观看 | 成人免费视频网站 | 国产高清视频在线 | 一区二区在线视频 | 亚洲国产一区二区三区四区 | 国产精品国产成人国产三级 | 一区二区国产精品 | 欧美成人精品二区三区99精品 | 一级高清视频 | 国产亚洲精品一区二区三区 | 中文字幕av亚洲精品一部二部 | 一区二区日韩 | 亚洲欧美在线视频 | 日日淫| 日韩 国产 在线 | 成人美女免费网站视频 | 亚洲精品乱码久久久久久按摩观 | 国产高清视频一区 | 久久久国产精品视频 | 亚洲精品电影在线观看 | 国产一区三区视频 | 亚洲一区二区三区在线 | 久久精品一区 | 久久国产精品久久久久久 | 特级丰满少妇一级aaaa爱毛片 | 国产精品久久国产精品 | 亚洲国产精品久久久久久 | 亚洲一级黄色 | 精品久久99| 一区二区在线免费观看 |