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

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

?? fftsg.c

?? 幾個FFT算法
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*Fast Fourier/Cosine/Sine Transform    dimension   :one    data length :power of 2    decimation  :frequency    radix       :split-radix    data        :inplace    table       :usefunctions    cdft: Complex Discrete Fourier Transform    rdft: Real Discrete Fourier Transform    ddct: Discrete Cosine Transform    ddst: Discrete Sine Transform    dfct: Cosine Transform of RDFT (Real Symmetric DFT)    dfst: Sine Transform of RDFT (Real Anti-symmetric DFT)function prototypes    void cdft(int, int, double *, int *, double *);    void rdft(int, int, double *, int *, double *);    void ddct(int, int, double *, int *, double *);    void ddst(int, int, double *, int *, double *);    void dfct(int, double *, double *, int *, double *);    void dfst(int, double *, double *, int *, double *);macro definitions    USE_CDFT_PTHREADS : default=not defined        CDFT_THREADS_BEGIN_N  : must be >= 512, default=8192        CDFT_4THREADS_BEGIN_N : must be >= 512, default=65536    USE_CDFT_WINTHREADS : default=not defined        CDFT_THREADS_BEGIN_N  : must be >= 512, default=32768        CDFT_4THREADS_BEGIN_N : must be >= 512, default=524288-------- Complex DFT (Discrete Fourier Transform) --------    [definition]        <case1>            X[k] = sum_j=0^n-1 x[j]*exp(2*pi*i*j*k/n), 0<=k<n        <case2>            X[k] = sum_j=0^n-1 x[j]*exp(-2*pi*i*j*k/n), 0<=k<n        (notes: sum_j=0^n-1 is a summation from j=0 to n-1)    [usage]        <case1>            ip[0] = 0; // first time only            cdft(2*n, 1, a, ip, w);        <case2>            ip[0] = 0; // first time only            cdft(2*n, -1, a, ip, w);    [parameters]        2*n            :data length (int)                        n >= 1, n = power of 2        a[0...2*n-1]   :input/output data (double *)                        input data                            a[2*j] = Re(x[j]),                             a[2*j+1] = Im(x[j]), 0<=j<n                        output data                            a[2*k] = Re(X[k]),                             a[2*k+1] = Im(X[k]), 0<=k<n        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n/2-1]   :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             cdft(2*n, -1, a, ip, w);        is             cdft(2*n, 1, a, ip, w);            for (j = 0; j <= 2 * n - 1; j++) {                a[j] *= 1.0 / n;            }        .-------- Real DFT / Inverse of Real DFT --------    [definition]        <case1> RDFT            R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2            I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0<k<n/2        <case2> IRDFT (excluding scale)            a[k] = (R[0] + R[n/2]*cos(pi*k))/2 +                    sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) +                    sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k<n    [usage]        <case1>            ip[0] = 0; // first time only            rdft(n, 1, a, ip, w);        <case2>            ip[0] = 0; // first time only            rdft(n, -1, a, ip, w);    [parameters]        n              :data length (int)                        n >= 2, n = power of 2        a[0...n-1]     :input/output data (double *)                        <case1>                            output data                                a[2*k] = R[k], 0<=k<n/2                                a[2*k+1] = I[k], 0<k<n/2                                a[1] = R[n/2]                        <case2>                            input data                                a[2*j] = R[j], 0<=j<n/2                                a[2*j+1] = I[j], 0<j<n/2                                a[1] = R[n/2]        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n/2)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n/2+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n/2-1]   :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             rdft(n, 1, a, ip, w);        is             rdft(n, -1, a, ip, w);            for (j = 0; j <= n - 1; j++) {                a[j] *= 2.0 / n;            }        .-------- DCT (Discrete Cosine Transform) / Inverse of DCT --------    [definition]        <case1> IDCT (excluding scale)            C[k] = sum_j=0^n-1 a[j]*cos(pi*j*(k+1/2)/n), 0<=k<n        <case2> DCT            C[k] = sum_j=0^n-1 a[j]*cos(pi*(j+1/2)*k/n), 0<=k<n    [usage]        <case1>            ip[0] = 0; // first time only            ddct(n, 1, a, ip, w);        <case2>            ip[0] = 0; // first time only            ddct(n, -1, a, ip, w);    [parameters]        n              :data length (int)                        n >= 2, n = power of 2        a[0...n-1]     :input/output data (double *)                        output data                            a[k] = C[k], 0<=k<n        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n/2)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n/2+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n*5/4-1] :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             ddct(n, -1, a, ip, w);        is             a[0] *= 0.5;            ddct(n, 1, a, ip, w);            for (j = 0; j <= n - 1; j++) {                a[j] *= 2.0 / n;            }        .-------- DST (Discrete Sine Transform) / Inverse of DST --------    [definition]        <case1> IDST (excluding scale)            S[k] = sum_j=1^n A[j]*sin(pi*j*(k+1/2)/n), 0<=k<n        <case2> DST            S[k] = sum_j=0^n-1 a[j]*sin(pi*(j+1/2)*k/n), 0<k<=n    [usage]        <case1>            ip[0] = 0; // first time only            ddst(n, 1, a, ip, w);        <case2>            ip[0] = 0; // first time only            ddst(n, -1, a, ip, w);    [parameters]        n              :data length (int)                        n >= 2, n = power of 2        a[0...n-1]     :input/output data (double *)                        <case1>                            input data                                a[j] = A[j], 0<j<n                                a[0] = A[n]                            output data                                a[k] = S[k], 0<=k<n                        <case2>                            output data                                a[k] = S[k], 0<k<n                                a[0] = S[n]        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n/2)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n/2+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n*5/4-1] :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             ddst(n, -1, a, ip, w);        is             a[0] *= 0.5;            ddst(n, 1, a, ip, w);            for (j = 0; j <= n - 1; j++) {                a[j] *= 2.0 / n;            }        .-------- Cosine Transform of RDFT (Real Symmetric DFT) --------    [definition]        C[k] = sum_j=0^n a[j]*cos(pi*j*k/n), 0<=k<=n    [usage]        ip[0] = 0; // first time only        dfct(n, a, t, ip, w);    [parameters]        n              :data length - 1 (int)                        n >= 2, n = power of 2        a[0...n]       :input/output data (double *)                        output data                            a[k] = C[k], 0<=k<=n        t[0...n/2]     :work area (double *)        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n/4)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n/4+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n*5/8-1] :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             a[0] *= 0.5;            a[n] *= 0.5;            dfct(n, a, t, ip, w);        is             a[0] *= 0.5;            a[n] *= 0.5;            dfct(n, a, t, ip, w);            for (j = 0; j <= n; j++) {                a[j] *= 2.0 / n;            }        .-------- Sine Transform of RDFT (Real Anti-symmetric DFT) --------    [definition]        S[k] = sum_j=1^n-1 a[j]*sin(pi*j*k/n), 0<k<n    [usage]        ip[0] = 0; // first time only        dfst(n, a, t, ip, w);    [parameters]        n              :data length + 1 (int)                        n >= 2, n = power of 2        a[0...n-1]     :input/output data (double *)                        output data                            a[k] = S[k], 0<k<n                        (a[0] is used for work area)        t[0...n/2-1]   :work area (double *)        ip[0...*]      :work area for bit reversal (int *)                        length of ip >= 2+sqrt(n/4)                        strictly,                         length of ip >=                             2+(1<<(int)(log(n/4+0.5)/log(2))/2).                        ip[0],ip[1] are pointers of the cos/sin table.        w[0...n*5/8-1] :cos/sin table (double *)                        w[],ip[] are initialized if ip[0] == 0.    [remark]        Inverse of             dfst(n, a, t, ip, w);        is             dfst(n, a, t, ip, w);            for (j = 1; j <= n - 1; j++) {                a[j] *= 2.0 / n;            }        .Appendix :    The cos/sin table is recalculated when the larger table required.    w[] and ip[] are compatible with all routines.*/void cdft(int n, int isgn, double *a, int *ip, double *w){    void makewt(int nw, int *ip, double *w);    void cftfsub(int n, double *a, int *ip, int nw, double *w);    void cftbsub(int n, double *a, int *ip, int nw, double *w);    int nw;        nw = ip[0];    if (n > (nw << 2)) {        nw = n >> 2;        makewt(nw, ip, w);    }    if (isgn >= 0) {        cftfsub(n, a, ip, nw, w);    } else {        cftbsub(n, a, ip, nw, w);    }}void rdft(int n, int isgn, double *a, int *ip, double *w){    void makewt(int nw, int *ip, double *w);    void makect(int nc, int *ip, double *c);    void cftfsub(int n, double *a, int *ip, int nw, double *w);    void cftbsub(int n, double *a, int *ip, int nw, double *w);    void rftfsub(int n, double *a, int nc, double *c);    void rftbsub(int n, double *a, int nc, double *c);    int nw, nc;    double xi;        nw = ip[0];    if (n > (nw << 2)) {        nw = n >> 2;        makewt(nw, ip, w);    }    nc = ip[1];    if (n > (nc << 2)) {        nc = n >> 2;        makect(nc, ip, w + nw);    }    if (isgn >= 0) {        if (n > 4) {            cftfsub(n, a, ip, nw, w);            rftfsub(n, a, nc, w + nw);        } else if (n == 4) {            cftfsub(n, a, ip, nw, w);        }        xi = a[0] - a[1];        a[0] += a[1];        a[1] = xi;    } else {        a[1] = 0.5 * (a[0] - a[1]);        a[0] -= a[1];        if (n > 4) {            rftbsub(n, a, nc, w + nw);            cftbsub(n, a, ip, nw, w);        } else if (n == 4) {            cftbsub(n, a, ip, nw, w);        }    }}void ddct(int n, int isgn, double *a, int *ip, double *w){    void makewt(int nw, int *ip, double *w);    void makect(int nc, int *ip, double *c);    void cftfsub(int n, double *a, int *ip, int nw, double *w);    void cftbsub(int n, double *a, int *ip, int nw, double *w);    void rftfsub(int n, double *a, int nc, double *c);    void rftbsub(int n, double *a, int nc, double *c);    void dctsub(int n, double *a, int nc, double *c);    int j, nw, nc;    double xr;        nw = ip[0];    if (n > (nw << 2)) {        nw = n >> 2;        makewt(nw, ip, w);    }    nc = ip[1];    if (n > nc) {        nc = n;        makect(nc, ip, w + nw);    }    if (isgn < 0) {        xr = a[n - 1];        for (j = n - 2; j >= 2; j -= 2) {            a[j + 1] = a[j] - a[j - 1];            a[j] += a[j - 1];        }        a[1] = a[0] - xr;        a[0] += xr;        if (n > 4) {            rftbsub(n, a, nc, w + nw);            cftbsub(n, a, ip, nw, w);        } else if (n == 4) {            cftbsub(n, a, ip, nw, w);        }    }    dctsub(n, a, nc, w + nw);    if (isgn >= 0) {        if (n > 4) {            cftfsub(n, a, ip, nw, w);            rftfsub(n, a, nc, w + nw);        } else if (n == 4) {            cftfsub(n, a, ip, nw, w);        }        xr = a[0] - a[1];        a[0] += a[1];        for (j = 2; j < n; j += 2) {            a[j - 1] = a[j] - a[j + 1];            a[j] += a[j + 1];        }        a[n - 1] = xr;    }}void ddst(int n, int isgn, double *a, int *ip, double *w){    void makewt(int nw, int *ip, double *w);    void makect(int nc, int *ip, double *c);    void cftfsub(int n, double *a, int *ip, int nw, double *w);    void cftbsub(int n, double *a, int *ip, int nw, double *w);    void rftfsub(int n, double *a, int nc, double *c);    void rftbsub(int n, double *a, int nc, double *c);    void dstsub(int n, double *a, int nc, double *c);    int j, nw, nc;    double xr;        nw = ip[0];    if (n > (nw << 2)) {        nw = n >> 2;        makewt(nw, ip, w);    }    nc = ip[1];    if (n > nc) {        nc = n;        makect(nc, ip, w + nw);    }    if (isgn < 0) {        xr = a[n - 1];        for (j = n - 2; j >= 2; j -= 2) {            a[j + 1] = -a[j] - a[j - 1];            a[j] -= a[j - 1];        }        a[1] = a[0] + xr;        a[0] -= xr;        if (n > 4) {            rftbsub(n, a, nc, w + nw);            cftbsub(n, a, ip, nw, w);        } else if (n == 4) {            cftbsub(n, a, ip, nw, w);        }    }    dstsub(n, a, nc, w + nw);    if (isgn >= 0) {        if (n > 4) {            cftfsub(n, a, ip, nw, w);            rftfsub(n, a, nc, w + nw);        } else if (n == 4) {            cftfsub(n, a, ip, nw, w);        }        xr = a[0] - a[1];        a[0] += a[1];        for (j = 2; j < n; j += 2) {            a[j - 1] = -a[j] - a[j + 1];            a[j] -= a[j + 1];        }        a[n - 1] = -xr;    }}void dfct(int n, double *a, double *t, int *ip, double *w){    void makewt(int nw, int *ip, double *w);    void makect(int nc, int *ip, double *c);    void cftfsub(int n, double *a, int *ip, int nw, double *w);    void rftfsub(int n, double *a, int nc, double *c);    void dctsub(int n, double *a, int nc, double *c);    int j, k, l, m, mh, nw, nc;    double xr, xi, yr, yi;        nw = ip[0];    if (n > (nw << 3)) {        nw = n >> 3;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人av影院| 国产凹凸在线观看一区二区| 99亚偷拍自图区亚洲| 国产精品久久久久毛片软件| eeuss鲁片一区二区三区| 亚洲色图制服丝袜| 欧美日韩国产天堂| 美女视频一区二区三区| 久久免费午夜影院| av在线播放成人| 亚洲综合免费观看高清完整版在线 | 国产成人免费xxxxxxxx| 国产精品免费aⅴ片在线观看| 99热这里都是精品| 首页国产欧美久久| 久久综合狠狠综合久久激情| av色综合久久天堂av综合| 一区二区三区久久久| 日韩三级精品电影久久久| 国产高清视频一区| 一区二区三区四区在线免费观看| 在线播放国产精品二区一二区四区| 蜜桃视频一区二区三区| 国产欧美视频一区二区| 欧日韩精品视频| 国内精品视频666| 亚洲一区二区五区| 久久久美女艺术照精彩视频福利播放| 91首页免费视频| 免费高清视频精品| 最新欧美精品一区二区三区| 91精品国产入口在线| av在线免费不卡| 日本色综合中文字幕| 中文字幕永久在线不卡| 日韩美女天天操| 色94色欧美sute亚洲线路二| 国产在线国偷精品免费看| 亚洲自拍都市欧美小说| 国产三级精品在线| 欧美精品日韩精品| 99国产欧美久久久精品| 九一九一国产精品| 亚洲一区二三区| 国产欧美精品一区aⅴ影院| 欧美日本在线播放| 色综合视频一区二区三区高清| 精品一区二区日韩| 天天综合色天天综合色h| 亚洲欧洲精品一区二区精品久久久| 日韩一级大片在线| 欧美日韩国产一区| 在线视频综合导航| 波多野结衣的一区二区三区| 精品一区二区在线观看| 日日噜噜夜夜狠狠视频欧美人 | 亚洲天堂免费看| 久久久久久久综合色一本| 在线不卡欧美精品一区二区三区| 色综合咪咪久久| 成人激情动漫在线观看| 国产精品乡下勾搭老头1| 日韩精品一二三四| 亚洲成av人片在www色猫咪| 18欧美亚洲精品| 亚洲国产精品传媒在线观看| 久久亚洲一级片| 亚洲精品在线电影| 欧美白人最猛性xxxxx69交| 欧美一级免费观看| 欧美老肥妇做.爰bbww| 欧美日韩中文字幕一区| 色狠狠桃花综合| 欧洲亚洲国产日韩| 欧美日韩性生活| 欧美日韩一区中文字幕| 欧美日韩一区在线观看| 欧美丝袜自拍制服另类| 色噜噜偷拍精品综合在线| 色综合久久88色综合天天 | 欧美日韩美女一区二区| 欧美日韩在线免费视频| 欧美日韩不卡一区| 欧美一区二区三区四区视频| 欧美一区午夜视频在线观看| 日韩欧美资源站| 精品毛片乱码1区2区3区 | 欧美精品久久99| 日韩一区二区三区视频在线观看| 91麻豆精品国产自产在线| 欧美精品日韩一本| 精品国产一区二区精华| xnxx国产精品| 国产精品色在线观看| 国产原创一区二区| 国产剧情一区二区三区| 不卡的电影网站| 精品视频一区二区三区免费| 日韩一区二区精品在线观看| 久久久激情视频| 亚洲免费av观看| 日韩黄色在线观看| 国产宾馆实践打屁股91| 欧美图区在线视频| 精品国产免费久久| 亚洲丝袜自拍清纯另类| 午夜成人在线视频| 国产精品亚洲第一| 欧美亚洲日本国产| wwwwxxxxx欧美| 亚洲综合色网站| 国模一区二区三区白浆| 91欧美激情一区二区三区成人| 在线播放91灌醉迷j高跟美女| 国产日韩欧美不卡在线| 亚洲成人一区在线| 国产高清无密码一区二区三区| 91麻豆.com| 精品处破学生在线二十三| 亚洲精品视频免费观看| 麻豆免费精品视频| 欧洲亚洲国产日韩| 久久久久久久久久看片| 亚洲香肠在线观看| 国产suv一区二区三区88区| 欧美日韩国产首页在线观看| 国产精品萝li| 日本aⅴ免费视频一区二区三区| 不卡视频免费播放| 精品sm捆绑视频| 三级欧美韩日大片在线看| 99久久综合国产精品| xvideos.蜜桃一区二区| 日韩影院精彩在线| 色av一区二区| 国产精品免费久久| 久久精品久久综合| 欧美日韩精品高清| 日韩理论电影院| 国产不卡在线一区| 日韩欧美国产一区在线观看| 一区二区三区国产| 成人精品亚洲人成在线| 精品对白一区国产伦| 三级影片在线观看欧美日韩一区二区| 91婷婷韩国欧美一区二区| 久久久精品影视| 国产综合久久久久久鬼色| 欧美老肥妇做.爰bbww视频| 夜夜嗨av一区二区三区网页 | 一本大道av一区二区在线播放| 欧美精品一区二区三| 性感美女极品91精品| 色香色香欲天天天影视综合网| 国产精品美女久久久久aⅴ | 91美女片黄在线观看| 国产精品毛片a∨一区二区三区| 久久99久久99| 精品国一区二区三区| 日本成人在线网站| 欧美男男青年gay1069videost| 亚洲国产中文字幕| 欧美日韩国产系列| 午夜精彩视频在线观看不卡| 欧美性感一区二区三区| 一区二区三区四区在线播放| 日本乱人伦aⅴ精品| 一区二区三区免费| 欧美在线免费观看视频| 午夜精品一区二区三区三上悠亚| 日本高清不卡视频| 亚洲第一福利一区| 6080国产精品一区二区| 日韩国产在线一| 日韩一级片在线观看| 韩国v欧美v日本v亚洲v| 国产日韩欧美电影| 91天堂素人约啪| 亚洲国产精品一区二区久久恐怖片 | 欧美日韩精品专区| 天天综合色天天综合色h| 欧美电影一区二区| 精品影视av免费| 国产精品美女久久久久久久久| 99国产精品久久久久久久久久 | 青青草国产精品97视觉盛宴| 91精品久久久久久久91蜜桃| 久久91精品久久久久久秒播| 国产午夜精品在线观看| 成人一区二区三区中文字幕| 亚洲精品视频在线| 日韩午夜在线观看视频| 国产成人亚洲综合a∨婷婷图片| 亚洲日本va在线观看| 欧美日韩精品二区第二页| 蜜臀精品久久久久久蜜臀| 欧美激情一区二区三区全黄| 91亚洲精品乱码久久久久久蜜桃| 亚洲综合激情另类小说区| 欧美va在线播放|