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

📄 kaiser窗.cpp

📁 数个关于滤波器的产生的C程序
💻 CPP
字号:


   #include <math.h>
   #include <stdio.h>
   // 第一类零阶修正贝塞尔函数
   // x为自变量;eps控制精度
   float bessel(float x,float eps)
   { int n;
     float f,fac,fx;

     f=1.0;  n=1; fac=1.0;
     fx=x/2/fac;
     fx=fx*fx;
     while(fx>=eps)
       { f=f+fx;
         n=n+1;
         fac*=n;
         fx=pow(x/2,n)/fac;
         fx=fx*fx;
         }
     return f;
     }

   void kaiser(int n,float beta,float ka[])
   { int i;
     float kas,x;

     kas=bessel(beta,1e-20);
     for(i=0; i<n/2; i++)
      { x=1-2*i/(n-1.0);
        x=sqrt(1-x*x);
        x*=beta;
        ka[i]=bessel(x,1e-20)/kas;
        ka[n-1-i]=ka[i];
        }
     if(n%2!=0)
        ka[n/2]=1.0;
     return;
     }

   const int N=40;
   void main( )
   { float x,ka[N];
     int i;

     x=4;
     kaiser(N,x,ka);
     for(i=0; i<N; i++)
      { printf(" %.4f",ka[i]);
        if((i+1)%4==0)
          printf("\n");
          }
     scanf("%f",&x);
     }


⌨️ 快捷键说明

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