?? kaiser窗.cpp
字號:
#include <math.h>
#include <stdio.h>
// 第一類零階修正貝塞爾函數(shù)
// 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);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -