chengrangzhuot376 2016-07-12 00:07 采纳率: 0%
浏览 1358

大神帮我看看这个FFT函数(java)的输入和输出都是什么

我对FFT只是了解概念,所以这个函数看不大懂,麻烦各位了。

static void fft(double x[],double y[],int n,int sign)
{
int i,j,k,l,m=0,n1,n2;
double c,c1,e,s,s1,t,tr,ti;
for(j=i=1;i<16;i++)
{
m=i;
j=2*j;
if(j==n)
{
break;
}
}

    for(n1=n-1,j=0,i=0;i<n1;i++)
    {
        if(i<j)
        {
            tr=x[j];
            ti=y[j];
            x[j]=x[i];
            y[j]=y[i];
            x[i]=tr;
            y[i]=ti;
        }
        k=n/2;
        while(k<(j+1))
        {
            j=j-k;
            k=k/2;
        }
        j=j+k;
    }

    for(n1=l=1;l<=m;l++)
    {
        n1=2*n1;
        n2=n1/2;
        e=3.14159265359/n2;
        c=1.0;
        s=0.0;
        c1=Math.cos(e);
        s1=-sign*Math.sin(e);
        for(j=0;j<n2;j++)
        {

            for(i=j;i<n;i+=n1)
            {
                k=i+n2;
                tr=c*x[k]-s*y[k];
                ti=c*y[k]+s*x[k];
                x[k]=x[i]-tr;
                y[k]=y[i]-ti;
                x[i]=x[i]+tr;
                y[i]=y[i]+ti;
            }
            t=c;
            c=c*c1-s*s1;
            s=t*s1+s*c1;
        }
    }
    if(sign==-1)
    {
        for(i=0;i<n;i++)
        {
            x[i]/=n;
            y[i]/=n;
        }
    }
}
  • 写回答

1条回答 默认 最新

  • csxiaoz 2016-07-12 05:14
    关注

    这种输出是什么的问题,为什么不自己运行一下呢

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办