亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rawfft.c

?? fft和ifft的c程序代碼
?? C
字號:
#include <stdio.h> #include <math.h>   #include <assert.h> /************************************************************************************/void init_array(int n, double *A_re, double *A_im); void compute_W(int n, double *W_re, double *W_im); void output_array(int n, double *A_re, double *A_im, char *outfile); void permute_bitrev(int n, double *A_re, double *A_im); int  bitrev(int inp, int numbits); int  log_2(int n);  void fft(int n, double *A_re, double *A_im, double *W_re, double *W_im);/************************************************************************************//* gets no. of points from the user, initialize the points and roots of unity lookup table  * and lets fft go. finally bit-reverses the results and outputs them into a file.  * n should be a power of 2.  */ int main(int argc, char *argv[]){  int n;  int i;  double *A_re, *A_im, *W_re, *W_im;     n = 64;  A_re = (double*)malloc(sizeof(double)*n);   A_im = (double*)malloc(sizeof(double)*n);   W_re = (double*)malloc(sizeof(double)*n/2);   W_im = (double*)malloc(sizeof(double)*n/2);   assert(A_re != NULL && A_im != NULL && W_re != NULL && W_im != NULL);     for (i=0; i<3; i++) {    init_array(n, A_re, A_im);     compute_W(n, W_re, W_im);     fft(n, A_re, A_im, W_re, W_im);    permute_bitrev(n, A_re, A_im);            //output_array(n, A_re, A_im, argv[2]);          print_string("done");  }      free(A_re);   free(A_im);   free(W_re);   free(W_im);   exit(0);}/* initializes the array with some function of n */  void init_array(int n, double *A_re, double *A_im) {  int NumPoints, i;  NumPoints     = 0;  #ifdef COMMENT_ONLY   for(i=0; i < n*2 ; i+=2)  {    A_re[NumPoints] = (double)input_buf[i];      A_im[NumPoints] = (double)input_buf[i+1];      /* printf("%d,%d -> %g,%g\n", input_buf[i], input_buf[i+1], A_re[NumPoints], A_im[NumPoints]); */      /* printf("%g %g\n", A_re[NumPoints], A_im[NumPoints]);  */      NumPoints++;  }  #endif   for (i=0; i<n; i++)  {      if (i==1)       {        A_re[i]=1.0;         A_im[i]=0.0;       }        else      {        A_re[i]=0.0;         A_im[i]=0.0;       }       #ifdef COMMENT_ONLY       A_re[i] = sin_lookup[i];  /* sin((double)i*2*M_PI/(double)n); */        A_im[i] = sin_lookup[i];  /* sin((double)i*2*M_PI/(double)n); */        #endif   }   //A_re[255] = 1.0;     } /* W will contain roots of unity so that W[bitrev(i,log2n-1)] = e^(2*pi*i/n) * n should be a power of 2 * Note: W is bit-reversal permuted because fft(..) goes faster if this is done. *       see that function for more details on why we treat 'i' as a (log2n-1) bit number. */void compute_W(int n, double *W_re, double *W_im){  int i, br;  int log2n = log_2(n);  for (i=0; i<(n/2); i++)  {    br = bitrev(i,log2n-1);     W_re[br] = cos(((double)i*2.0*M_PI)/((double)n));      W_im[br] = sin(((double)i*2.0*M_PI)/((double)n));    }  #ifdef COMMENT_ONLY   for (i=0;i<(n/2);i++)  {     br = i; //bitrev(i,log2n-1);     printf("(%g\t%g)\n", W_re[br], W_im[br]);  }    #endif }/* permutes the array using a bit-reversal permutation */ void permute_bitrev(int n, double *A_re, double *A_im) {   int i, bri, log2n;  double t_re, t_im;  log2n = log_2(n);     for (i=0; i<n; i++)  {      bri = bitrev(i, log2n);      /* skip already swapped elements */      if (bri <= i) continue;      t_re = A_re[i];      t_im = A_im[i];      A_re[i]= A_re[bri];      A_im[i]= A_im[bri];      A_re[bri]= t_re;      A_im[bri]= t_im;  }  } /* treats inp as a numbits number and bitreverses it.  * inp < 2^(numbits) for meaningful bit-reversal */ int bitrev(int inp, int numbits){  int i, rev=0;  for (i=0; i < numbits; i++)  {    rev = (rev << 1) | (inp & 1);    inp >>= 1;  }  return rev;}/* returns log n (to the base 2), if n is positive and power of 2 */ int log_2(int n) {  int res;   for (res=0; n >= 2; res++)     n = n >> 1;   return res; } /* fft on a set of n points given by A_re and A_im. Bit-reversal permuted roots-of-unity lookup table * is given by W_re and W_im. More specifically,  W is the array of first n/2 nth roots of unity stored * in a permuted bitreversal order. * * FFT - Decimation In Time FFT with input array in correct order and output array in bit-reversed order. * * REQ: n should be a power of 2 to work.  * * Note: - See www.cs.berkeley.edu/~randit for her thesis on VIRAM FFTs and other details about VHALF section of the algo *         (thesis link - http://www.cs.berkeley.edu/~randit/papers/csd-00-1106.pdf) *       - See the foll. CS267 website for details of the Decimation In Time FFT implemented here. *         (www.cs.berkeley.edu/~demmel/cs267/lecture24/lecture24.html) *       - Also, look "Cormen Leicester Rivest [CLR] - Introduction to Algorithms" book for another variant of Iterative-FFT */void fft(int n, double *A_re, double *A_im, double *W_re, double *W_im) {  double w_re, w_im, u_re, u_im, t_re, t_im;  int m, g, b;  int i, mt, k;  /* for each stage */    for (m=n; m>=2; m=m>>1)   {    /* m = n/2^s; mt = m/2; */    mt = m >> 1;    /* for each group of butterfly */     for (g=0,k=0; g<n; g+=m,k++)     {      /* each butterfly group uses only one root of unity. actually, it is the bitrev of this group's number k.       * BUT 'bitrev' it as a log2n-1 bit number because we are using a lookup array of nth root of unity and       * using cancellation lemma to scale nth root to n/2, n/4,... th root.       *       * It turns out like the foll.       *   w.re = W[bitrev(k, log2n-1)].re;       *   w.im = W[bitrev(k, log2n-1)].im;       * Still, we just use k, because the lookup array itself is bit-reversal permuted.        */      w_re = W_re[k];      w_im = W_im[k];      /* for each butterfly */       for (b=g; b<(g+mt); b++)       {        /* printf("bf %d %d %d %f %f %f %f\n", m, g, b, A_re[b], A_im[b], A_re[b+mt], A_im[b+mt]);         */         //printf("bf %d %d %d (u,t) %g %g %g %g (w) %g %g\n", m, g, b, A_re[b], A_im[b], A_re[b+mt], A_im[b+mt], w_re, w_im);        /* t = w * A[b+mt] */        t_re = w_re * A_re[b+mt] - w_im * A_im[b+mt];        t_im = w_re * A_im[b+mt] + w_im * A_re[b+mt];        /* u = A[b]; in[b] = u + t; in[b+mt] = u - t; */        u_re = A_re[b];        u_im = A_im[b];        A_re[b] = u_re + t_re;        A_im[b] = u_im + t_im;        A_re[b+mt] = u_re - t_re;        A_im[b+mt] = u_im - t_im;        /*  printf("af %d %d %d %f %f %f %f\n", m, g, b, A_re[b], A_im[b], A_re[b+mt], A_im[b+mt]);         */                 //printf("af %d %d %d (u,t) %g %g %g %g (w) %g %g\n", m, g, b, A_re[b], A_im[b], A_re[b+mt], A_im[b+mt], w_re, w_im);      }    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看高清完整版在| 成人免费一区二区三区在线观看| 欧美大片在线观看一区二区| 国产精品久久福利| 五月天视频一区| 成人黄色片在线观看| 91精品国产综合久久久久久漫画 | 欧美色视频在线| 日韩精品中文字幕在线一区| 亚洲同性gay激情无套| 国内外成人在线| 欧美高清一级片在线| 国产精品国产成人国产三级| 麻豆免费精品视频| 欧美中文字幕一二三区视频| 欧美国产精品v| 日本在线不卡一区| 91九色最新地址| 国产欧美日韩久久| 精彩视频一区二区三区| 欧美性猛交xxxx黑人交| 国产精品久久久久久亚洲毛片 | 99久久综合色| 久久久久亚洲蜜桃| 免费亚洲电影在线| 欧美另类z0zxhd电影| 亚洲视频1区2区| 国产成+人+日韩+欧美+亚洲| 日韩一区二区三区高清免费看看| 亚洲一区二区三区免费视频| 一本大道综合伊人精品热热 | 91精品婷婷国产综合久久性色| 国产精品久久久久影视| 国产一区在线精品| 日韩一级二级三级精品视频| 天天综合色天天| 欧美色手机在线观看| 亚洲国产sm捆绑调教视频| 91麻豆成人久久精品二区三区| 中文字幕av一区二区三区| 国产九九视频一区二区三区| 久久久影视传媒| 国产一二精品视频| 欧美国产精品一区二区三区| 东方aⅴ免费观看久久av| 国产亚洲欧美一区在线观看| 国产一区二区三区免费看 | 欧美日韩精品一区二区三区四区 | 精品乱码亚洲一区二区不卡| 一区二区国产盗摄色噜噜| 色综合天天综合狠狠| 一区二区三区在线高清| 欧美色欧美亚洲另类二区| 亚洲成人1区2区| 欧美丰满少妇xxxxx高潮对白 | 91福利视频网站| 亚洲福利视频一区二区| 欧美精选一区二区| 久久激情综合网| 中文在线资源观看网站视频免费不卡 | 成人免费高清视频在线观看| 中文字幕中文在线不卡住| 色婷婷久久久久swag精品| 性做久久久久久| 精品粉嫩aⅴ一区二区三区四区| 激情综合五月天| 亚洲天堂福利av| 欧美亚洲国产一区二区三区 | 粉嫩13p一区二区三区| 亚洲乱码日产精品bd| 4438成人网| 福利一区二区在线观看| 亚洲一区二区在线免费观看视频| 一区二区三区中文字幕精品精品 | 国产欧美中文在线| 欧美中文字幕不卡| 精品亚洲成a人在线观看| 亚洲人成网站精品片在线观看| 欧美色综合天天久久综合精品| 美女视频第一区二区三区免费观看网站| 久久影院视频免费| 欧美视频在线观看一区二区| 久久成人免费网站| 亚洲美女偷拍久久| 欧美岛国在线观看| 欧美影院一区二区三区| 国产一区二区三区久久悠悠色av| 亚洲免费在线观看| 26uuuu精品一区二区| 欧美私人免费视频| 懂色av一区二区三区免费看| 日韩高清不卡在线| 亚洲欧美精品午睡沙发| 久久嫩草精品久久久精品一| 欧美日韩午夜影院| av在线不卡免费看| 国产精品一区二区免费不卡 | 国产91在线|亚洲| 日韩av中文字幕一区二区 | 亚洲午夜精品一区二区三区他趣| 久久品道一品道久久精品| 欧美日韩国产一级片| 色综合天天综合狠狠| 国产成人精品亚洲777人妖 | 精品不卡在线视频| 欧美军同video69gay| 在线视频国内自拍亚洲视频| 成人国产精品免费观看动漫| 精品一区二区在线看| 丝袜亚洲另类欧美| 亚洲香肠在线观看| 亚洲免费观看高清完整版在线| 国产精品美女久久久久久久久久久 | 在线视频亚洲一区| 99热精品一区二区| 99久久精品费精品国产一区二区| 国产麻豆视频一区二区| 国产综合色产在线精品| 久久成人羞羞网站| 精品午夜一区二区三区在线观看| 午夜精品爽啪视频| 亚洲成精国产精品女| 亚洲一线二线三线视频| 一区二区三区四区高清精品免费观看| 国产精品进线69影院| 国产精品三级av| 国产精品久久久久影院亚瑟| 国产精品人成在线观看免费| 欧美激情一区在线观看| 国产精品每日更新在线播放网址| 国产色爱av资源综合区| 精品久久久久一区| 久久品道一品道久久精品| 国产日韩欧美精品电影三级在线| 欧美精品一区二区三区蜜桃 | 偷拍与自拍一区| 日本va欧美va瓶| 91国产丝袜在线播放| 在线观看日韩国产| 欧美一区三区四区| 精品国产露脸精彩对白| 久久综合给合久久狠狠狠97色69| 久久蜜臀中文字幕| 国产精品久久久久久久久动漫| 亚洲人精品午夜| 午夜精品一区在线观看| 极品销魂美女一区二区三区| 成人在线综合网站| 欧美亚洲一区三区| 精品成人一区二区三区| 国产精品素人一区二区| 亚洲免费看黄网站| 免费的国产精品| 成人97人人超碰人人99| 欧美偷拍一区二区| 久久婷婷成人综合色| 亚洲精品成人悠悠色影视| 男女激情视频一区| 成人免费看视频| 欧美一区二区三区性视频| 久久久电影一区二区三区| 亚洲综合区在线| 国产99久久久国产精品潘金网站| 一本大道综合伊人精品热热 | 亚洲另类中文字| 久久电影网站中文字幕| 一本色道**综合亚洲精品蜜桃冫| 欧美一级黄色录像| 综合电影一区二区三区 | 日韩国产成人精品| 久久精品亚洲精品国产欧美| 亚洲精品成a人| 国产精品一区二区三区乱码| 欧美中文字幕一区二区三区亚洲| 久久亚洲一级片| 视频一区中文字幕| 99久久国产综合精品色伊| 欧美精品一区二区三区视频| 亚洲永久免费视频| 成人涩涩免费视频| 精品剧情v国产在线观看在线| 亚洲色图清纯唯美| 国产福利一区二区三区视频| 欧美一级日韩免费不卡| 亚洲老妇xxxxxx| 成人性生交大合| 欧美精品一区二区在线观看| 亚洲成人av在线电影| 一本久道中文字幕精品亚洲嫩| 久久久久久久综合狠狠综合| 亚洲成av人片一区二区梦乃 | 免费在线观看一区| 欧美人与禽zozo性伦| 亚洲综合色丁香婷婷六月图片| 成人av在线资源网| 欧美激情一区不卡| 国产精品77777| 久久久综合九色合综国产精品| 秋霞影院一区二区| 678五月天丁香亚洲综合网|