新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → 同学编的C#的FFT函数拿出来共享 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4496 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 同学编的C#的FFT函数拿出来共享 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 同学编的C#的FFT函数拿出来共享


    发信人: jinnxjtu (Jinn), 信区: DotNET
    标  题: 同学编的C#的FFT函数拿出来共享
    发信站: BBS 水木清华站 (Mon Jun 16 23:41:25 2003), 转信

    struct complex//定义复数
    {
             
            //复数a+bi中
            //a为实部,b为虚部
            public  double a;
            public  double b;
            public static complex commul(double x,complex y)
            {
                    complex c = new complex();
                    c.a = x*y.a;
                    c.b = x*y.b;
                     
                    return c;
            }
            public static complex commulcc(complex x,complex y)
            {
                    complex c = new complex();
                    c.a = x.a*y.a - x.b*y.b;
                    c.b = x.a*y.b + x.b*y.a;
                     
                    return c;
            }
            public static complex comsum(complex x,complex y)
            {
                    complex c = new complex();
                    c.a = x.a + y.a;
                    c.b = x.b + y.b;
                     
                    return c;
            }
            public static complex comsum1(double x,complex y)
            {
                    complex c = new complex();
                    c.a = x + y.a;
                    c.b = y.b;
                     
                    return c;
            }
            public static complex decrease(complex x,complex y)
            {
                    complex c = new complex();
                    c.a = x.a*y.a - x.b*y.b;
                    c.b = x.a*y.b + x.b*y.a;
                     
                    return c;
            }
            public static complex powcc(complex x,double n)
            {
                    int k;
                    complex xout;
                    xout.a = 1;
                    xout.b = 0;
                    for(k=1; k<=n; k++)
                    {
                            xout = complex.commulcc(xout,x);
                    }
                    return xout;
            }
            public void show()
            {
                    Console.Write(a+" + "+b+"i      ");
            }
    }
    class airthm
    {
    //计算ω=exp(j*2*pi/n)
            public static complex omega( int n)
            {
                    complex x;
                    x.a = Math.Cos(0 - 2*Math.PI/n);
                    x.b = Math.Sin(0 - 2*Math.PI/n);
                    return x;
            }
            public static complex[] dft(double[] signal, int n)  //(信号,信号长度)
            {
                    int i,j;
                    complex w1;
                    w1 = omega(n);
                    complex[] w = new complex[n];
                    for(i=0; i<n; i++)
                    {
                            w[i] = complex.powcc(w1,i);
                    }
                    complex[] f = new complex[n];
                    complex temp;  //w[i]的次方
                    complex temp1; //f中单项的值
                    for (i=0; i<n; i++)
                    {
                            f[i].a = 0;
                            f[i].b = 0;
                            for (j=0; j<n; j++)
                            {
                                    temp = complex.powcc(w[i],j);                            
                                    temp1 = complex.commul(signal[j],temp);
                                    f[i] = complex.comsum(f[i],temp1) ;
                            }
                    }
                    return f;
            }
    //求幅值  x  信号  n  信号长度  返回 幅值数组
            public static double[] amplitude (complex[] x,int n)
            {
                    int i;
                    double temp ;
                    double[] amp = new double[n];
                    for (i=0; i<n; i++)
                    {
                            temp = x[i].a*x[i].a + x[i].b*x[i].b;
                            amp[i] = Math.Sqrt(temp);
                    }
                    return amp;
            }
    }
    /////////////////////////////////////////////////////////////////////
    //调用
                    int n=6;
                    double[] x = new double[]{1,2,3,4,5,6};//被计算的数组
                    complex[] y = new complex[n];//接收复数结果的数组
                    double[] z = new Double[n];//接收幅值结果的数组
                    y = airthm.dft(x,n);
                    z = airthm.amplitude(y,n);





    --

    ※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.200.226.213]
    上一篇
    返回上一页
    回到目录
    回到页首
    下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:25:00
     
     xmzhy 帅哥哟,离线,有人找我吗?狮子座1978-8-18
      
      
      威望:5
      等级:计算机学士学位
      文章:385
      积分:2003
      门派:XML.ORG.CN
      注册:2003/10/22

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xmzhy发送一个短消息 把xmzhy加入好友 查看xmzhy的个人资料 搜索xmzhy在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xmzhy的博客2
    发贴心情 
    ding
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/27 17:18:00
     
     anchen0617 帅哥哟,离线,有人找我吗?双子座1983-6-17
      
      
      威望:5
      等级:大二(研究C++)
      文章:281
      积分:3413
      门派:XML.ORG.CN
      注册:2004/10/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给anchen0617发送一个短消息 把anchen0617加入好友 查看anchen0617的个人资料 搜索anchen0617在『 Dot NET,C#,ASP,VB 』的所有贴子 访问anchen0617的主页 引用回复这个贴子 回复这个贴子 查看anchen0617的博客3
    发贴心情 
    o yie ding le

    ----------------------------------------------
    xml这门语言太好了,我们共同努力吧!!!!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/28 12:54:00
     
     GoogleAdSense双子座1983-6-17
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 11:13:33

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms