cosft1.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 37 行

C
37
字号
#include <math.h>#define PI 3.141592653589793void cosft1(float y[], int n){	void realft(float data[], unsigned long n, int isign);	int j,n2;	float sum,y1,y2;	double theta,wi=0.0,wpi,wpr,wr=1.0,wtemp;	theta=PI/n;	wtemp=sin(0.5*theta);	wpr = -2.0*wtemp*wtemp;	wpi=sin(theta);	sum=0.5*(y[1]-y[n+1]);	y[1]=0.5*(y[1]+y[n+1]);	n2=n+2;	for (j=2;j<=(n>>1);j++) {		wr=(wtemp=wr)*wpr-wi*wpi+wr;		wi=wi*wpr+wtemp*wpi+wi;		y1=0.5*(y[j]+y[n2-j]);		y2=(y[j]-y[n2-j]);		y[j]=y1-wi*y2;		y[n2-j]=y1+wi*y2;		sum += wr*y2;	}	realft(y,n,1);	y[n+1]=y[2];	y[2]=sum;	for (j=4;j<=n;j+=2) {		sum += y[j];		y[j]=sum;	}}#undef PI

⌨️ 快捷键说明

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