⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft.txt

📁 具有在keil c上运的强大功能.在数字示波器的制作中可以用到次程序,此外其他一些c工具也可以使用
💻 TXT
字号:
void FFT(struct complex *s)
{
    unsigned char idata nv2,nm1,k,level,i,j=0;
    unsigned char  idata ip,le,lei;
    struct complex idata v,w,t;
    float max;  
    nv2=64>>1;
    nm1=64;
    for(i=0;i<nm1;i++)  
    {
        if(i<j)
        {
            t=s[j];
            
            s[i]=t;
        }
        k=nv2;
        while(k<=j)
        {
            j-=k;
            k=k>>1;
        }
        j+=k;
    }

    le=1;     
    for(level=1;level<=6;level++)
    {   
        lei=le;
        le<<=1;
        v.real=1.0;
        v.image=0.0;       
        w.real=cos(pi/lei);
        w.image=-sin(pi/lei);
        for(j=0;j<lei;j++)
        {
            for(i=j;i<64;i+=le)
            {
                  
                   t=mul(s[ip],v);
                   s[ip].real=s[i].real-t.real;
                   s[ip].image=s[i].image-t.image;
                   s[i].real+=t.real;
                   s[i].image+=t.image;
           }
           v=mul(v,w);
       }
    }

    for(i=0;i<32;i++)
    s[i].real=sqrt(s[i].real*s[i].real+s[i].image*s[i].image);  //幅值
    max=s[0].real;
    for(i=1;i<32;i++)if(max<s[i].real)max=s[i].real;
    for(i=0;i<32;i++)s[i].real=s[i].real*50/max;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -