📄 f16.c
字号:
/* 16点付氏变换的系数 */
#define ks1 382
#define ks2 707
#define ks3 923
#define PI 3.1416
#define DU PI/180
int vsin,vcos; /* 虚部和实部 */
int kkff; /* 模(实部和虚部的平方和的开方) */
/* 16点付氏算法:ptr:指向一个周波的起始点,后三个指针为指向存储结果的单元的指针,asin:虚部,acos:实部,kf:模的平方 */
void f24(int *ptr,int *asin,int *acos,int *kf)
{
long ar,ai;
long pf;
ai=(ptr[1]+ptr[7]-ptr[9]-ptr[15])*ks1;
ai+=(ptr[2]+ptr[6]-ptr[10]-ptr[14])*ks2;
ai+=(ptr[3]+ptr[5]-ptr[11]-ptr[13])*ks3;
ai+=(ptr[4]-ptr[12])*1000;
ai=*asin=ai/1000;
ar=(ptr[1]-ptr[7]-ptr[9]+ptr[15])*ks3;
ar+=(ptr[2]-ptr[6]-ptr[10]+ptr[14])*ks2;
ar+=(ptr[3]-ptr[5]-ptr[11]+ptr[13])*ks1;
ar+=(ptr[0]-ptr[8])*1000;
ar=*acos=ar/1000;
*kf=(ar*ar+ai*ai)/64;/* 模的平方 */
}
main()
{
int i;
int x[16]={0,783,1448,1892,2047,1892,1448,783,0,-783,-1448,-1892,-2048,-1892,-1448,-783};
f24(x,&vsin,&vcos,&kkff);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -