我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: [求助]这个程序有没有XD看懂啊(关于FFT) 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

詹姆斯



性别: 保密 状态: 该用户目前不在线
头衔: 再见5C5
等级: 鹤立鸡群
发贴: 1354
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-08-12
最后登陆: 2008-01-04

5come5帮你背单词 [ product /'prodəkt/ n. 产品,制品,结果,成果,乘积 ]


[求助]这个程序有没有XD看懂啊(关于FFT)

Copy code
This   computes   an   in-place   complex-to-complex   FFT  
  x   and   y   are   the   real   and   imaginary   arrays   of   2^m   points.  
  dir   =   1   gives   forward   transform  
  dir   =   -1   gives   reverse   transform  
  */  
short   FFT(short   int   dir,long   m,double   *x,double   *y)  
{  
    long   n,i,i1,j,k,i2,l,l1,l2;  
    double   c1,c2,tx,ty,t1,t2,u1,u2,z;  
 
    /*   Calculate   the   number   of   points   */  
    n   =   1;  
    for   (i=0;i<m;i++)  
        n   *=   2;  
 
    /*   Do   the   bit   reversal   */  
    i2   =   n   >>   1;  
    j   =   0;  
    for   (i=0;i<n-1;i++)
    {  
        if   (i   <   j)
          {  
            tx   =   x[i];  
            ty   =   y[i];  
            x[i]   =   x[j];  
            y[i]   =   y[j];  
            x[j]   =   tx;  
            y[j]   =   ty;  
        }  
        k   =   i2;  
        while   (k   <=   j)  
        {  
            j   -=   k;  
            k   >>=   1;  
        }  
        j   +=   k;  
    }  
 
    /*   Compute   the   FFT   */  
    c1   =   -1.0;  
    c2   =   0.0;  
    l2   =   1;  
    for   (l=0;l<m;l++)
      {  
        l1   =   l2;  
        l2   <<=   1;  
        u1   =   1.0;  
        u2   =   0.0;  
        for   (j=0;j<l1;j++)
          {  
            for   (i=j;i<n;i+=l2)
              {  
                i1   =   i   +   l1;  
                t1   =   u1   *   x[i1]   -   u2   *   y[i1];  
                t2   =   u1   *   y[i1]   +   u2   *   x[i1];  
                x[i1]   =   x[i]   -   t1;  
                y[i1]   =   y[i]   -   t2;  
                x[i]   +=   t1;  
                y[i]   +=   t2;  
            }  
            z   =   u1   *   c1   -   u2   *   c2;  
            u2   =   u1   *   c2   +   u2   *   c1;  
            u1   =   z;  
        }  
        c2   =   sqrt((1.0   -   c1)   /   2.0);  
        if   (dir   ==   1)  
            c2   =   -c2;  
        c1   =   sqrt((1.0   +   c1)   /   2.0);  
    }  
 
  /*   Scaling   for   forward   transform   */  
    if   (dir   ==   1)  
    {  
        for   (i=0;i<n;i++)
          {  
            x[i]   /=   n;  
            y[i]   /=   n;  
        }  
    }  
     
    return(TRUE);  
}
顶端 Posted: 2007-04-26 11:20 | [楼 主]
zc1984





性别: 帅哥 状态: 该用户目前不在线
头衔: 上帝模式
等级: 荣誉会员
家族: 战略研究所
发贴: 10096
威望: 5
浮云: 0
在线等级:
注册时间: 2004-08-24
最后登陆: 2017-06-08

5come5帮你背单词 [ organise // n. 组织,安排,筹办 ]


你哪个地方没看懂嘛?
顶端 Posted: 2007-04-26 11:43 | [1 楼]
百川





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 712
威望: 0
浮云: 1166
在线等级:
注册时间: 2005-03-29
最后登陆: 2011-04-14

5come5帮你背单词 [ tributary /'tribjutəri/ a. 附庸的,从属的,辅助的,支流的 ]


没看完,不过觉得这个程序并不难啊,就是他的语句表达方式有点bt,不过都能看懂....
顶端 Posted: 2007-04-26 11:45 | [2 楼]
詹姆斯



性别: 保密 状态: 该用户目前不在线
头衔: 再见5C5
等级: 鹤立鸡群
发贴: 1354
威望: 0
浮云: 1108
在线等级:
注册时间: 2006-08-12
最后登陆: 2008-01-04

5come5帮你背单词 [ plane /plein/ n. 飞机,水准,水平,平面 ]


/*   Do   the   bit   reversal   */
为什么要用这段程序啊?
顶端 Posted: 2007-04-26 11:48 | [3 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.010872(s) query 5, Time now is:11-27 11:07, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号