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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fft.c

?? 基2FFT
?? C
字號(hào):
#include <stdlib.h>
#include <math.h>

#include <assert.h>

#include "fft.h"

/**
 *  Decimation-in-Time Complex FFT Algorithm with Radix-2.
 *  Note:
 *    L   : exponent value of 2, N = 2^L.
 *    cin : input complex array.
 *    cout: output complex array.
 */
void cfftr2(const int L, 
            const Complex cin[], Complex cout[])
{
    assert(cin);
    assert(cout);
    assert(L>0);
    const int N = 1<<L;
       
    /* Bit reverse sort, use reverse addition.
     */
    revsort(N, cin, cout);

    /* Butterfly calculate start.
     */
    int sep = 1;       /* seprate of butterfly, sep*2 every stage. */
    int len_sd = N/2;  /* number of sub-DFT, len_sd/2 every stage. */
    int len_cl = 1;    /* number of butterfly calculation in a sub-DFT.
                          len_cl*2 every stage. */
    const float WN = (2*PI/N);  /* %omiga, exponent value of Wn.  */

    /* Loop for each stage */
    int st;
    for (st=0; st<L; st++)
    {
        /* start position */
        int pos = 0;

        /* Loop for each sub-DFT */
        int sd;
        for (sd=0; sd<len_sd; sd++)
        {
            int k = 0;  /* {W_N}^k */
            
            /* Loop for each butterfly calculation */
            int cl;
            for (cl=0; cl<len_cl; cl++)
            {
                float w = WN * k;
                float cosx = cos(w);
                float sinx = sin(w);
                
                /* butterfly calculation.
                 */
                int nxt = pos+sep;  /* next point */

                float tr = cout[nxt].rex*cosx + cout[nxt].imx*sinx;
                float ti = cout[nxt].imx*cosx - cout[nxt].rex*sinx;
                cout[nxt].rex = cout[pos].rex - tr;
                cout[nxt].imx = cout[pos].imx - ti;
                cout[pos].rex = cout[pos].rex + tr;
                cout[pos].imx = cout[pos].imx + ti;
                
                k += (1<<(L-st-1));
                pos++;
            }
            
            /* position delta */
            pos += (1<<st);
        }

        sep <<= 1;     /* sep *= 2    */
        len_sd >>= 1;  /* len_sd /= 2 */
        len_cl <<= 1;  /* len_cl *= 2 */
    }
}

/**
 *  in reverse FFT. see cfftr2();
 */
void cifftr2(const int L,
             const Complex *cin, Complex *cout)
{
    assert(cin);
    assert(cout);
    assert(L>0);
    
    const int N = 1<<L;
    int i;
    float tmp1, tmp2;
    for (i=0; i<N; i++)
    {
        tmp1 = cin[i].rex;
        tmp2 = cin[i].imx;
        cout[i].rex = tmp2;
        cout[i].imx = tmp1;
    }
    cfftr2(L, cout, cout);
    for (i=0; i<N; i++)
    {
        tmp1 = cout[i].rex;
        cout[i].rex = cout[i].imx;
        cout[i].imx = tmp1;
        cout[i].rex /= N;
        cout[i].imx /= N;
    }
}


/**
 *  DFT Algorithm, with arbitrary N point.
 *  Note: slow but sample, useful in verify other FFT algorithm.
 */
void dft(const int N, 
         const Complex cin[], Complex cout[])
{
    assert(cin);
    assert(cout);
    assert(N>0);
    
    /* Loop for each X(k).
     */
    int k;
    for (k=0; k<N; k++)
    {
        float tr=0, ti=0;
        float wn = 2*PI/N*k;
        int n;
        /* sum x(n) */
        for (n=0; n<N; n++)
        {
            float w = wn*n;
            tr += ( cin[n].rex*cos(w) + cin[n].imx*sin(w) );
            ti += ( cin[n].imx*cos(w) - cin[n].rex*sin(w) );
        }
        cout[k].rex = tr;
        cout[k].imx = ti;
    }    
}

/**
 *  Calculate the module and Normalize by LEVER.
 */
void module(const Complex cin[], 
            float pout[], const int N, const int LEVER)
{
    assert(cin);
    assert(pout);
    assert(N>0);

    /* Reconstruct data for output.
     */
    float gmax = 1;
    int i;
    for (i=0; i<N; i++) 
    {
        pout[i] = sqrt( cin[i].rex*cin[i].rex + cin[i].imx*cin[i].imx );
        if (pout[i] > gmax) 
        {
            gmax = pout[i];
        }
    }
    /* Normalize data.
     */
    for (i=0; i<N; i++)
    {
        pout[i] = (int)(LEVER * pout[i]/gmax);
    }
}

/**
 *  Bit reverse sort, use reverse addition.
 */
void revsort(const int N, 
             const Complex cin[], Complex cout[])
{
    assert(cin);
    assert(cout);
    assert(N>0);
    
    int ri = 0, i;
    const int N2 = N/2, N1=N-1;
    /* copy data to cout */
    for (i=0; i<N; i++)
    {
        cout[i].rex = cin[i].rex;
        cout[i].imx = cin[i].imx;
    }
    
    /* bit reverse addition */
    for (i=0; i<N1; i++)
    {
        /* change i to revers i ( ri ). */
        if (i<ri)
        {
            /* switch data */
            float tmp;
            tmp = cout[ri].rex;
            cout[ri].rex = cout[i].rex;
            cout[i].rex  = tmp;
            tmp = cout[ri].imx;
            cout[ri].imx = cout[i].imx;
            cout[i].imx  = tmp;
        }
        /* calc ri here */
        int k = N2;
        while ( (k-ri) < 1 )
        {
            ri = ri - k;
            k /= 2;
        }
        ri += k;
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本成人超碰在线观看| 樱花草国产18久久久久| 激情五月婷婷综合网| 精品免费99久久| 国产精品 日产精品 欧美精品| www国产精品av| 高清日韩电视剧大全免费| 日韩一区在线播放| 欧美午夜电影在线播放| 免费看日韩精品| 欧美国产一区在线| 色av一区二区| 欧美aⅴ一区二区三区视频| 国产亚洲自拍一区| 91久久一区二区| 午夜伊人狠狠久久| 欧美肥大bbwbbw高潮| 亚洲第一激情av| 7777精品伊人久久久大香线蕉的| 七七婷婷婷婷精品国产| 日韩欧美成人一区| 色综合天天综合| 蜜臀久久99精品久久久久久9 | 亚洲国产欧美另类丝袜| 911国产精品| 成人app下载| 青青草97国产精品免费观看| 欧美国产一区二区| 欧美精品第1页| 成人avav在线| 美女精品自拍一二三四| 成人免费在线视频观看| 日韩久久久精品| 在线亚洲一区观看| 国产精品影视天天线| 日韩主播视频在线| 国产精品国产精品国产专区不片| 欧美一区二区成人6969| 一本色道**综合亚洲精品蜜桃冫| 激情综合色综合久久综合| 亚洲免费资源在线播放| 久久久久青草大香线综合精品| 欧美在线观看视频一区二区 | 91猫先生在线| 国产一区二区三区在线观看精品| 夜色激情一区二区| 中文字幕欧美日韩一区| 日韩女优制服丝袜电影| 色久综合一二码| av电影在线观看一区| 伦理电影国产精品| 亚洲国产成人porn| 亚洲在线免费播放| 亚洲图片你懂的| 国产精品你懂的在线欣赏| 精品国产电影一区二区| 在线观看91av| 欧美日韩精品综合在线| 欧美自拍偷拍一区| 日本道在线观看一区二区| 成人手机在线视频| 国产精品一卡二卡| 国产麻豆成人精品| 国产精品538一区二区在线| 加勒比av一区二区| 久久国产精品色| 国产真实乱子伦精品视频| 久久精品国产一区二区三| 日本欧美加勒比视频| 天堂av在线一区| 午夜久久电影网| 日韩电影一区二区三区四区| 亚洲国产精品久久不卡毛片| 亚洲欧美国产三级| 亚洲激情自拍视频| 亚洲成人黄色影院| 日日夜夜精品视频天天综合网| 午夜不卡在线视频| 久久精品国产第一区二区三区| 久久99国产精品久久99果冻传媒| 免费观看日韩电影| 国产一区免费电影| 成人动漫中文字幕| 色香蕉久久蜜桃| 欧美日韩中文字幕一区二区| 欧美电影在哪看比较好| 日韩视频在线一区二区| 久久精品亚洲麻豆av一区二区| 亚洲国产精品成人综合色在线婷婷| 中文字幕视频一区| 亚洲一区二区精品久久av| 日韩成人精品在线观看| 国产一区二区福利| 99久久精品情趣| 7777精品久久久大香线蕉| 精品美女一区二区三区| 国产精品久久一级| 亚洲18女电影在线观看| 久久成人免费日本黄色| 成人午夜电影久久影院| 欧美视频一区在线观看| 日韩免费电影一区| 国产精品黄色在线观看| 午夜精品影院在线观看| 国产成人亚洲精品青草天美| 一本大道久久精品懂色aⅴ| 欧美日本在线看| 亚洲国产精品精华液2区45| 亚洲国产视频a| 国产福利一区二区| 欧美亚洲国产bt| 国产婷婷精品av在线| 亚洲国产精品久久不卡毛片| 国产一区福利在线| 欧美三级在线播放| 国产精品私人影院| 日韩黄色免费网站| 91天堂素人约啪| 亚洲精品在线三区| 亚洲综合无码一区二区| 国产盗摄一区二区三区| 欧美日韩夫妻久久| 成人免费视频在线观看| 美国三级日本三级久久99| 91丨porny丨国产| 精品国产99国产精品| 亚洲午夜电影在线| 成人一二三区视频| 日韩视频免费观看高清完整版 | 欧美激情一区二区三区不卡 | 中文字幕一区在线| 国产一区二区久久| 在线播放中文字幕一区| 亚洲另类春色校园小说| 国产乱子伦视频一区二区三区| 欧美精品123区| 亚洲女子a中天字幕| 国产乱子伦一区二区三区国色天香| 欧美吞精做爰啪啪高潮| 亚洲私人黄色宅男| 成人综合婷婷国产精品久久| 精品剧情在线观看| 奇米亚洲午夜久久精品| 欧美曰成人黄网| 专区另类欧美日韩| 成人激情黄色小说| 久久精品一区二区| 国产精品资源网| 久久久www成人免费毛片麻豆| 美女网站在线免费欧美精品| 欧美日韩一区精品| 亚洲午夜精品久久久久久久久| 99久久免费国产| 综合电影一区二区三区 | 欧美电影免费观看高清完整版在线| 亚洲福利电影网| 欧美日韩在线一区二区| 亚洲成人免费影院| 欧美婷婷六月丁香综合色| 亚洲一区二区三区美女| 欧美色中文字幕| 亚洲成人av一区| 在线观看免费成人| 亚洲aⅴ怡春院| 91精品国产综合久久久蜜臀粉嫩| 天涯成人国产亚洲精品一区av| 欧美亚洲综合色| 亚洲国产成人av好男人在线观看| 欧美自拍偷拍一区| 香港成人在线视频| 日韩三级电影网址| 激情综合色丁香一区二区| 久久久久久久久久久99999| 国产很黄免费观看久久| 国产精品国产三级国产aⅴ入口| 不卡的电影网站| 亚洲午夜免费视频| 91精品福利在线一区二区三区 | 日韩电影免费在线| 日韩一区二区三| 国产成人精品网址| 一区二区在线观看视频| 欧美精品在线视频| 久久精品国产77777蜜臀| 久久精品日产第一区二区三区高清版| 国产精品自产自拍| 综合久久久久久| 欧美日韩另类国产亚洲欧美一级| 麻豆精品在线观看| 国产精品精品国产色婷婷| 在线观看91精品国产入口| 日本成人在线视频网站| 欧美激情在线免费观看| 91黄视频在线| 国产一区二区中文字幕| 日韩久久一区二区| 日韩限制级电影在线观看| 成人动漫一区二区三区| 亚洲成人黄色影院| 国产日韩成人精品|