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

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

?? fft_c.h

?? ofdm的完整系統模型,包含信道參數,多徑模型,doppler頻移等都可以自由修改!是您做仿真的有力幫助.c語言運行速度快!
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef	_FFT_C_H
#define _FFT_C_H


/*fft subfunction*/
void factorize(int n, int *nFact, int fact[])
{
    int i,j,k;
    int nRadix;
    int radices[7];
    int factors[maxFactorCount];

    nRadix    =  6;  
    radices[1]=  2;
    radices[2]=  3;
    radices[3]=  4;
    radices[4]=  5;
    radices[5]=  8;
    radices[6]= 10;

    if (n==1)
    {
        j=1;
        factors[1]=1;
    }
    else j=0;
    i=nRadix;
    while ((n>1) && (i>0))
    {
      if ((n % radices[i]) == 0)
      {
        n=n / radices[i];
        j=j+1;
        factors[j]=radices[i];
      }
      else  i=i-1;
    }
    if (factors[j] == 2)   /*substitute factors 2*8 with 4*4 */
    {   
      i = j-1;
      while ((i>0) && (factors[i] != 8)) i--;
      if (i>0)
      {
        factors[j] = 4;
        factors[i] = 4;
      }
    }
    if (n>1)
    {
        for (k=2; k<sqrt(n)+1; k++)
            while ((n % k) == 0)
            {
                n=n / k;
                j=j+1;
                factors[j]=k;
            }
        if (n>1)
        {
            j=j+1;
            factors[j]=n;
        }
    }               
    for (i=1; i<=j; i++)         
    {
      fact[i] = factors[j-i+1];
    }
    *nFact=j;
}   /* factorize */

/****************************************************************************
  After N is factored the parameters that control the stages are generated.
  For each stage we have:
    sofar   : the product of the radices so far.
    actual  : the radix handled in this stage.
    remain  : the product of the remaining radices.
 ****************************************************************************/

int transTableSetup(int sofar[], int actual[], int remain[],
                     int *nFact,
                     int *nPoints)
{
    int i;

    factorize(*nPoints, nFact, actual);
    if (actual[1] > maxPrimeFactor)
    {
		logopen();
		fprintf(fp_error,"\nPrime factor of FFT length too large : %6d",actual[1]);
        fprintf(fp_error,"\nPlease modify the value of maxPrimeFactor in mixfft.c");
 		logclose();
        return(ERROR);
    }
    remain[0]=*nPoints;
    sofar[1]=1;
    remain[1]=*nPoints / actual[1];
    for (i=2; i<=*nFact; i++)
    {
        sofar[i]=sofar[i-1]*actual[i-1];
        remain[i]=remain[i-1] / actual[i];
    }

	return(OK);
}   /* transTableSetup */

/****************************************************************************
  The sequence y is the permuted input sequence x so that the following
  transformations can be performed in-place, and the final result is the
  normal order.
 ****************************************************************************/

void permute(int nPoint, int nFact,
             int fact[], int remain[],
             double xRe[], double xIm[],
             double yRe[], double yIm[])

{
    int i,j,k;
    int count[maxFactorCount]; 

    for (i=1; i<=nFact; i++) count[i]=0;
    k=0;
    for (i=0; i<=nPoint-2; i++)
    {
        yRe[i] = xRe[k];
        yIm[i] = xIm[k];
        j=1;
        k=k+remain[j];
        count[1] = count[1]+1;
        while (count[j] >= fact[j])
        {
            count[j]=0;
            k=k-remain[j-1]+remain[j+1];
            j=j+1;
            count[j]=count[j]+1;
        }
    }
    yRe[nPoint-1]=xRe[nPoint-1];
    yIm[nPoint-1]=xIm[nPoint-1];
}   /* permute */


/****************************************************************************
  Twiddle factor multiplications and transformations are performed on a
  group of data. The number of multiplications with 1 are reduced by skipping
  the twiddle multiplication of the first stage and of the first group of the
  following stages.
 ***************************************************************************/

void initTrig(int radix)
{
    int i;
    double w,xre,xim;

    w=PI2/radix;
    trigRe[0]=1; trigIm[0]=0;
    xre=cos(w); 
    xim=-sin(w);
    trigRe[1]=xre; trigIm[1]=xim;
    for (i=2; i<radix; i++)
    {
        trigRe[i]=xre*trigRe[i-1] - xim*trigIm[i-1];
        trigIm[i]=xim*trigRe[i-1] + xre*trigIm[i-1];
    }
}   /* initTrig */

void fft_4(double aRe[], double aIm[])
{
    double  t1_re,t1_im, t2_re,t2_im;
    double  m2_re,m2_im, m3_re,m3_im;

    t1_re=aRe[0] + aRe[2]; t1_im=aIm[0] + aIm[2];
    t2_re=aRe[1] + aRe[3]; t2_im=aIm[1] + aIm[3];

    m2_re=aRe[0] - aRe[2]; m2_im=aIm[0] - aIm[2];
    m3_re=aIm[1] - aIm[3]; m3_im=aRe[3] - aRe[1];

    aRe[0]=t1_re + t2_re; aIm[0]=t1_im + t2_im;
    aRe[2]=t1_re - t2_re; aIm[2]=t1_im - t2_im;
    aRe[1]=m2_re + m3_re; aIm[1]=m2_im + m3_im;
    aRe[3]=m2_re - m3_re; aIm[3]=m2_im - m3_im;
}   /* fft_4 */


void fft_5(double aRe[], double aIm[])
{    
    double  t1_re,t1_im, t2_re,t2_im, t3_re,t3_im;
    double  t4_re,t4_im, t5_re,t5_im;
    double  m2_re,m2_im, m3_re,m3_im, m4_re,m4_im;
    double  m1_re,m1_im, m5_re,m5_im;
    double  s1_re,s1_im, s2_re,s2_im, s3_re,s3_im;
    double  s4_re,s4_im, s5_re,s5_im;

    t1_re=aRe[1] + aRe[4]; t1_im=aIm[1] + aIm[4];
    t2_re=aRe[2] + aRe[3]; t2_im=aIm[2] + aIm[3];
    t3_re=aRe[1] - aRe[4]; t3_im=aIm[1] - aIm[4];
    t4_re=aRe[3] - aRe[2]; t4_im=aIm[3] - aIm[2];
    t5_re=t1_re + t2_re; t5_im=t1_im + t2_im;
    aRe[0]=aRe[0] + t5_re; aIm[0]=aIm[0] + t5_im;
    m1_re=c5_1*t5_re; m1_im=c5_1*t5_im;
    m2_re=c5_2*(t1_re - t2_re); m2_im=c5_2*(t1_im - t2_im);

    m3_re=-c5_3*(t3_im + t4_im); m3_im=c5_3*(t3_re + t4_re);
    m4_re=-c5_4*t4_im; m4_im=c5_4*t4_re;
    m5_re=-c5_5*t3_im; m5_im=c5_5*t3_re;

    s3_re=m3_re - m4_re; s3_im=m3_im - m4_im;
    s5_re=m3_re + m5_re; s5_im=m3_im + m5_im;
    s1_re=aRe[0] + m1_re; s1_im=aIm[0] + m1_im;
    s2_re=s1_re + m2_re; s2_im=s1_im + m2_im;
    s4_re=s1_re - m2_re; s4_im=s1_im - m2_im;

    aRe[1]=s2_re + s3_re; aIm[1]=s2_im + s3_im;
    aRe[2]=s4_re + s5_re; aIm[2]=s4_im + s5_im;
    aRe[3]=s4_re - s5_re; aIm[3]=s4_im - s5_im;
    aRe[4]=s2_re - s3_re; aIm[4]=s2_im - s3_im;
}   /* fft_5 */

void fft_8()
{
    double  aRe[4], aIm[4], bRe[4], bIm[4], gem;

    aRe[0] = zRe[0];    bRe[0] = zRe[1];
    aRe[1] = zRe[2];    bRe[1] = zRe[3];
    aRe[2] = zRe[4];    bRe[2] = zRe[5];
    aRe[3] = zRe[6];    bRe[3] = zRe[7];

    aIm[0] = zIm[0];    bIm[0] = zIm[1];
    aIm[1] = zIm[2];    bIm[1] = zIm[3];
    aIm[2] = zIm[4];    bIm[2] = zIm[5];
    aIm[3] = zIm[6];    bIm[3] = zIm[7];

    fft_4(aRe, aIm); fft_4(bRe, bIm);

    gem    = c8*(bRe[1] + bIm[1]);
    bIm[1] = c8*(bIm[1] - bRe[1]);
    bRe[1] = gem;
    gem    = bIm[2];
    bIm[2] =-bRe[2];
    bRe[2] = gem;
    gem    = c8*(bIm[3] - bRe[3]);
    bIm[3] =-c8*(bRe[3] + bIm[3]);
    bRe[3] = gem;
    
    zRe[0] = aRe[0] + bRe[0]; zRe[4] = aRe[0] - bRe[0];
    zRe[1] = aRe[1] + bRe[1]; zRe[5] = aRe[1] - bRe[1];
    zRe[2] = aRe[2] + bRe[2]; zRe[6] = aRe[2] - bRe[2];
    zRe[3] = aRe[3] + bRe[3]; zRe[7] = aRe[3] - bRe[3];

    zIm[0] = aIm[0] + bIm[0]; zIm[4] = aIm[0] - bIm[0];
    zIm[1] = aIm[1] + bIm[1]; zIm[5] = aIm[1] - bIm[1];
    zIm[2] = aIm[2] + bIm[2]; zIm[6] = aIm[2] - bIm[2];
    zIm[3] = aIm[3] + bIm[3]; zIm[7] = aIm[3] - bIm[3];
}   /* fft_8 */

void fft_10()
{
    double  aRe[5], aIm[5], bRe[5], bIm[5];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新热久久免费视频| 午夜成人免费视频| 91精品国产麻豆国产自产在线 | 国产欧美日韩不卡免费| 色综合久久中文综合久久97| 理论电影国产精品| 亚洲一区二区综合| 国产精品乱码一区二三区小蝌蚪| 在线播放中文字幕一区| 色94色欧美sute亚洲线路二| 国产一区在线观看视频| 丝袜国产日韩另类美女| 亚洲美女电影在线| 国产精品乱人伦一区二区| 欧美成人官网二区| 欧美日本乱大交xxxxx| 91蜜桃在线观看| 国产不卡高清在线观看视频| 久久91精品久久久久久秒播| 香港成人在线视频| 亚洲国产欧美日韩另类综合| 中文字幕中文字幕在线一区 | 精品一区二区三区在线观看| 香蕉成人啪国产精品视频综合网| 亚洲精品国产无天堂网2021 | 欧美日本一道本| 日本高清免费不卡视频| av综合在线播放| 国产精品亚洲午夜一区二区三区 | 久久嫩草精品久久久久| 欧美大片在线观看一区二区| 91精品国产欧美一区二区 | 国产精品国产三级国产aⅴ入口 | 欧美精品久久99久久在免费线| 91国偷自产一区二区使用方法| 91色porny| 99视频精品全部免费在线| 成人一区二区三区| 成人黄色大片在线观看| 成人黄色片在线观看| 成人av资源在线| 91美女在线视频| 色综合久久66| 欧美亚洲综合色| 欧美另类一区二区三区| 91精品国产手机| 欧美草草影院在线视频| 久久久久国产成人精品亚洲午夜| 久久久久久久久久久99999| 国产亚洲精品精华液| 国产欧美日韩视频在线观看| 国产精品嫩草久久久久| 亚洲欧美一区二区视频| 亚洲综合免费观看高清在线观看| 亚洲国产另类精品专区| 日日骚欧美日韩| 国内一区二区在线| 成人激情校园春色| 欧美做爰猛烈大尺度电影无法无天| 在线精品亚洲一区二区不卡| 在线不卡一区二区| 久久久久亚洲综合| 亚洲欧洲美洲综合色网| 亚洲一级片在线观看| 蜜桃av噜噜一区| 成人免费视频一区二区| 日本精品一区二区三区高清| 91麻豆精品国产自产在线| 欧美白人最猛性xxxxx69交| 亚洲国产成人在线| 亚洲一区二区三区在线| 精品一区二区三区在线播放视频| 成人深夜福利app| 欧美日韩国产123区| 精品处破学生在线二十三| 亚洲少妇30p| 日韩av在线免费观看不卡| 懂色av一区二区三区蜜臀| 91久久久免费一区二区| 日韩女优电影在线观看| 国产精品成人一区二区艾草 | 不卡av免费在线观看| 欧美日本韩国一区二区三区视频 | 亚洲成人av在线电影| 国产一区久久久| 欧美专区日韩专区| 久久天天做天天爱综合色| 一区二区三区在线观看欧美| 精品在线播放午夜| 欧美视频一区二区| 国产精品网站在线| 免费日韩伦理电影| 在线区一区二视频| 久久久久久久av麻豆果冻| 午夜精品久久久久久久久久久| 成人免费毛片嘿嘿连载视频| 6080日韩午夜伦伦午夜伦| 中文字幕视频一区| 久久99九九99精品| 欧美男男青年gay1069videost | 美女视频网站黄色亚洲| 91国偷自产一区二区三区成为亚洲经典| 日韩精品一区二区三区swag| 亚洲精品乱码久久久久| 国产69精品久久99不卡| 日韩欧美综合一区| 一区二区三区四区高清精品免费观看| 国产大陆精品国产| 精品人在线二区三区| 亚洲va韩国va欧美va精品 | 7777精品伊人久久久大香线蕉超级流畅 | 久久精品欧美日韩| 欧美aaaaa成人免费观看视频| 色狠狠色噜噜噜综合网| 国产欧美一区二区在线| 国内精品久久久久影院色| 欧美精品成人一区二区三区四区| 日韩理论电影院| 国产老肥熟一区二区三区| 日韩限制级电影在线观看| 香蕉成人啪国产精品视频综合网| 91香蕉视频污| **性色生活片久久毛片| 大美女一区二区三区| 亚洲精品在线一区二区| 捆绑紧缚一区二区三区视频 | 亚洲欧美偷拍三级| 成人黄色av电影| 国产精品国产a级| 成人精品在线视频观看| 国产精品青草综合久久久久99| 国产麻豆一精品一av一免费 | 日本免费在线视频不卡一不卡二| 欧美精品一二三| 奇米一区二区三区av| 日韩视频免费观看高清完整版在线观看| 亚洲成av人在线观看| 欧美日韩一卡二卡三卡| 日韩综合小视频| 日韩午夜在线观看| 国产一区激情在线| 国产人成一区二区三区影院| 国产99精品视频| 中文字幕一区二区在线观看| 99久久精品国产导航| 亚洲精品国产无套在线观| 欧美日韩精品一区二区天天拍小说 | 欧美精品成人一区二区三区四区| 丝袜美腿成人在线| 精品福利视频一区二区三区| 国产成人在线视频网址| 国产精品青草久久| 91久久精品午夜一区二区| 午夜激情久久久| 精品国产自在久精品国产| 国产成人亚洲综合a∨猫咪| 亚洲欧美另类小说视频| 5月丁香婷婷综合| 国内精品国产成人国产三级粉色| 中文字幕精品一区二区精品绿巨人 | 欧美激情资源网| 在线视频国内自拍亚洲视频| 日本少妇一区二区| 久久久五月婷婷| 色菇凉天天综合网| 另类小说欧美激情| 国产精品欧美一区二区三区| 在线观看日韩高清av| 精品无码三级在线观看视频| 亚洲欧美在线aaa| 欧美一级欧美三级| 成人激情免费视频| 日本中文字幕一区| 日韩一区有码在线| 日韩一区二区三区观看| 成人不卡免费av| 日本在线播放一区二区三区| 国产欧美日韩一区二区三区在线观看| 欧美午夜电影一区| 国产成人在线免费观看| 亚洲第一av色| 中文无字幕一区二区三区| 欧美日韩国产成人在线免费| 国产成人精品一区二区三区网站观看| 亚洲午夜在线观看视频在线| 国产亚洲精品中文字幕| 欧美精品久久99| 91色婷婷久久久久合中文| 国产在线精品一区二区三区不卡| 亚洲一区二区三区国产| 国产日韩欧美电影| 欧美一区午夜精品| 在线观看视频91| 不卡影院免费观看| 激情久久五月天| 午夜日韩在线电影| 亚洲欧洲成人精品av97| 久久久五月婷婷| 日韩一区二区电影| 欧美视频一区二区三区在线观看 |