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

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

?? fft4g.c

?? 幾個FFT算法
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*Fast Fourier/Cosine/Sine Transform    dimension   :one    data length :power of 2    decimation  :frequency    radix       :4, 2    data        :inplace    table       :usefunctions    cdft: Complex Discrete Fourier Transform    rdft: Real Discrete Fourier Transform    function prototypes    void cdft(int, int, double *, int *, double *);    void rdft(int, int, double *, int *, double *);    -------- 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;            }        .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 bitrv2(int n, int *ip, double *a);    void bitrv2conj(int n, int *ip, double *a);    void cftfsub(int n, double *a, double *w);    void cftbsub(int n, double *a, double *w);        if (n > (ip[0] << 2))
	{        makewt(n >> 2, ip, w);    }    if (n > 4) 
	{        if (isgn >= 0) 
		{            bitrv2(n, ip + 2, a);            cftfsub(n, a, w);        } 
		else 
		{            bitrv2conj(n, ip + 2, a);            cftbsub(n, a, w);        }    } 
	else if (n == 4)
	{        cftfsub(n, a, 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 bitrv2(int n, int *ip, double *a);    void cftfsub(int n, double *a, double *w);    void cftbsub(int n, double *a, 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) 
		{            bitrv2(n, ip + 2, a);            cftfsub(n, a, w);            rftfsub(n, a, nc, w + nw);        } 
		else if (n == 4) 
		{            cftfsub(n, a, 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);            bitrv2(n, ip + 2, a);            cftbsub(n, a, w);        } 
		else if (n == 4) 
		{            cftfsub(n, a, w);        }    }}
/* -------- initializing routines -------- */#include <math.h>void makewt(int nw, int *ip, double *w){    void bitrv2(int n, int *ip, double *a);    int j, nwh;    double delta, x, y;        ip[0] = nw;    ip[1] = 1;    if (nw > 2) 
	{        nwh = nw >> 1;        delta = atan(1.0) / nwh;        w[0] = 1;        w[1] = 0;        w[nwh] = cos(delta * nwh);        w[nwh + 1] = w[nwh];        if (nwh > 2) 
		{            for (j = 2; j < nwh; j += 2) 
			{                x = cos(delta * j);                y = sin(delta * j);                w[j] = x;                w[j + 1] = y;                w[nw - j] = y;                w[nw - j + 1] = x;            }            bitrv2(nw, ip + 2, w);        }    }}void makect(int nc, int *ip, double *c){    int j, nch;    double delta;        ip[1] = nc;    if (nc > 1) 
	{        nch = nc >> 1;        delta = atan(1.0) / nch;        c[0] = cos(delta * nch);        c[nch] = 0.5 * c[0];        for (j = 1; j < nch; j++) 
		{            c[j] = 0.5 * cos(delta * j);            c[nc - j] = 0.5 * sin(delta * j);        }    }}/* -------- child routines -------- */void bitrv2(int n, int *ip, double *a){    int j, j1, k, k1, l, m, m2;    double xr, xi, yr, yi;        ip[0] = 0;    l = n;    m = 1;    while ((m << 3) < l) 
	{        l >>= 1;        for (j = 0; j < m; j++) 
		{            ip[m + j] = ip[j] + l;        }        m <<= 1;    }    m2 = 2 * m;    if ((m << 3) == l) 
	{        for (k = 0; k < m; k++) 
		{            for (j = 0; j < k; j++) 
			{                j1 = 2 * j + ip[k];                k1 = 2 * k + ip[j];                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 += 2 * m2;                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 -= m2;                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 += 2 * m2;                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;            }            j1 = 2 * k + m2 + ip[k];            k1 = j1 + m2;            xr = a[j1];            xi = a[j1 + 1];            yr = a[k1];            yi = a[k1 + 1];            a[j1] = yr;            a[j1 + 1] = yi;            a[k1] = xr;            a[k1 + 1] = xi;        }    } 
	else 
	{        for (k = 1; k < m; k++) 
		{            for (j = 0; j < k; j++) 
			{                j1 = 2 * j + ip[k];                k1 = 2 * k + ip[j];                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 += m2;                xr = a[j1];                xi = a[j1 + 1];                yr = a[k1];                yi = a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;            }        }    }}void bitrv2conj(int n, int *ip, double *a){    int j, j1, k, k1, l, m, m2;    double xr, xi, yr, yi;        ip[0] = 0;    l = n;    m = 1;    while ((m << 3) < l) 
	{        l >>= 1;        for (j = 0; j < m; j++) 
		{            ip[m + j] = ip[j] + l;        }        m <<= 1;    }    m2 = 2 * m;    if ((m << 3) == l) 
	{        for (k = 0; k < m; k++) 
		{            for (j = 0; j < k; j++) 
			{                j1 = 2 * j + ip[k];                k1 = 2 * k + ip[j];                xr = a[j1];                xi = -a[j1 + 1];                yr = a[k1];                yi = -a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 += 2 * m2;                xr = a[j1];                xi = -a[j1 + 1];                yr = a[k1];                yi = -a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 -= m2;                xr = a[j1];                xi = -a[j1 + 1];                yr = a[k1];                yi = -a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;                j1 += m2;                k1 += 2 * m2;                xr = a[j1];                xi = -a[j1 + 1];                yr = a[k1];                yi = -a[k1 + 1];                a[j1] = yr;                a[j1 + 1] = yi;                a[k1] = xr;                a[k1 + 1] = xi;            }            k1 = 2 * k + ip[k];            a[k1 + 1] = -a[k1 + 1];            j1 = k1 + m2;            k1 = j1 + m2;            xr = a[j1];            xi = -a[j1 + 1];            yr = a[k1];            yi = -a[k1 + 1];            a[j1] = yr;            a[j1 + 1] = yi;            a[k1] = xr;            a[k1 + 1] = xi;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜小视频| 欧美二区乱c少妇| 日韩av成人高清| 欧美韩国日本不卡| 91精品国产91久久久久久一区二区| 国产高清久久久| 美女被吸乳得到大胸91| 亚洲欧洲在线观看av| 日韩免费视频线观看| 色就色 综合激情| 大胆亚洲人体视频| 国产在线视频一区二区| 日韩和欧美一区二区三区| 亚洲丝袜制服诱惑| 国产婷婷色一区二区三区四区| 欧美老年两性高潮| 在线观看91视频| 97久久精品人人爽人人爽蜜臀| 国产在线视频一区二区三区| 日韩av电影免费观看高清完整版在线观看| 亚洲精品一二三| 国产精品国产自产拍高清av| 国产亚洲一区二区三区四区 | 欧美成人精品福利| 91成人在线精品| 91丝袜美女网| caoporen国产精品视频| 成人精品gif动图一区| 国内精品免费**视频| 精品在线一区二区三区| 婷婷六月综合网| 视频一区中文字幕| 天堂成人免费av电影一区| 亚洲一二三专区| 亚洲国产精品人人做人人爽| 亚洲午夜免费电影| 亚洲图片欧美综合| 亚洲在线视频网站| 午夜精品久久久久久| 亚洲一区二区三区美女| 亚洲成人av电影| 日一区二区三区| 日本色综合中文字幕| 日本不卡的三区四区五区| 青青草成人在线观看| 青青草国产精品亚洲专区无| 久久疯狂做爰流白浆xx| 韩国女主播一区二区三区| 国产一区 二区 三区一级| 国产麻豆成人传媒免费观看| 成人污污视频在线观看| av一二三不卡影片| 日本丰满少妇一区二区三区| 欧美午夜精品一区| 91精品国产91热久久久做人人| 欧美草草影院在线视频| 国产午夜精品久久久久久免费视| 国产精品丝袜久久久久久app| 成人欧美一区二区三区白人| 亚洲在线免费播放| 裸体健美xxxx欧美裸体表演| 国产精品1区2区| 99国产精品一区| 91精品国产综合久久久久| 精品国产亚洲在线| 国产精品第五页| 亚洲成人777| 国产不卡高清在线观看视频| 一本大道综合伊人精品热热| 欧美一区二区观看视频| 国产视频一区二区在线观看| 亚洲蜜桃精久久久久久久| 日韩av一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 99久久综合狠狠综合久久| 欧美熟乱第一页| 久久奇米777| 亚洲福利视频导航| 国产成人精品亚洲777人妖| 91黄色免费版| 久久久久久免费毛片精品| 一区二区三区在线免费视频| 人人狠狠综合久久亚洲| 成人午夜精品一区二区三区| 欧美蜜桃一区二区三区| 欧美高清在线一区| 日韩av网站在线观看| av网站免费线看精品| 日韩一区二区免费电影| 亚洲男人天堂一区| 国产乱码精品一区二区三区忘忧草 | 亚洲综合成人在线| 国产精品99久| 日韩亚洲欧美成人一区| 亚洲女厕所小便bbb| 国产高清无密码一区二区三区| 欧美色综合天天久久综合精品| 久久亚区不卡日本| 日本不卡一二三| 91久久奴性调教| 欧美激情一区二区三区蜜桃视频| 日韩经典中文字幕一区| 欧美综合一区二区| 国产精品伦理一区二区| 精品一二三四区| 欧美日韩高清在线播放| 亚洲日本在线a| 丁香激情综合五月| 精品国产1区二区| 日本美女视频一区二区| 欧美亚洲一区二区在线| 中文字幕在线不卡一区二区三区| 国产麻豆91精品| 精品国产欧美一区二区| 日韩精品成人一区二区三区| 欧美日韩精品系列| 一区二区三区不卡在线观看 | 欧美午夜精品一区二区三区| 亚洲丝袜美腿综合| 成人黄色大片在线观看| 久久久久9999亚洲精品| 久久精品国产免费看久久精品| 欧美中文字幕亚洲一区二区va在线| 国产精品嫩草99a| 成人精品鲁一区一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 国产酒店精品激情| 欧美精品一区男女天堂| 激情五月婷婷综合网| 日韩欧美国产成人一区二区| 麻豆精品一区二区三区| 日韩免费观看2025年上映的电影| 日本不卡视频在线观看| 日韩美女主播在线视频一区二区三区| 午夜久久久影院| 91精品国产91久久综合桃花| 日本成人在线电影网| 欧美一级片在线观看| 日韩精品福利网| 欧美男男青年gay1069videost| 午夜伊人狠狠久久| 欧美一级在线视频| 国产麻豆日韩欧美久久| 中文字幕不卡在线播放| 91在线观看成人| 亚洲一二三四在线| 欧美一区二区在线不卡| 国产乱对白刺激视频不卡| 亚洲国产精品精华液2区45| av中文一区二区三区| 亚洲在线免费播放| 3d动漫精品啪啪| 久久电影网站中文字幕| 日本一区二区三区电影| 91丝袜国产在线播放| 香蕉久久一区二区不卡无毒影院| 欧美一区二区三区不卡| 国产一区二区主播在线| 国产精品黄色在线观看| 91在线视频播放| 偷拍亚洲欧洲综合| 久久亚洲精华国产精华液| 99精品视频中文字幕| 亚洲妇女屁股眼交7| 精品入口麻豆88视频| 成人福利在线看| 亚洲国产视频在线| 2019国产精品| 色一情一乱一乱一91av| 日本视频免费一区| 国产精品二三区| 91麻豆精品国产自产在线| 国产一区二区三区| 亚洲在线成人精品| 久久精品视频免费| 色香蕉久久蜜桃| 国产揄拍国内精品对白| 亚洲人成精品久久久久久| 欧美一区日本一区韩国一区| 成人高清视频在线观看| 日韩精品电影一区亚洲| 中文字幕制服丝袜一区二区三区| 欧美性猛交xxxx乱大交退制版| 精品在线亚洲视频| 夜色激情一区二区| 国产丝袜在线精品| 在线播放91灌醉迷j高跟美女| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产福利一区二区| 午夜一区二区三区视频| 国产精品色在线| 日韩欧美二区三区| 91福利视频久久久久| 国产jizzjizz一区二区| 日日夜夜精品视频天天综合网| 国产精品久久精品日日| 精品国产sm最大网站免费看| 欧美三级三级三级爽爽爽| 成人免费视频一区| 久88久久88久久久|