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

📄 dft.c

📁 自己编的数值计算方法的c语言实现源程序。
💻 C
字号:
#include"math.h"

void dft(x,y,a,b,n,sign) 
/* x,y,a,b为双精度实型一维数组,x 数据实部,y 数据虚部,a 变换结果实部,b变换结果虚部,
n 数据长度, sign =1时dft()为DFT,sign=-1时dft()为IDFT*/
int n,sign;
double x[],y[],a[],b[];
{	int i,k;
	double c,d,q,w,s;
	q=6.28318530718/n;
	for(k=0;k<n;k++)  /* 求a[k].b[k] k=0...n-1;*/
	{	w=k*q;
		a[k]=b[k]=0.0;  /*a[k].b[k]初始化 */
		for(i=0;i<n;i++)
		{	d=i*w;
			c=cos(d);  /* c=cos(2*pi*k*i/n)*/
			s=sin(d)*sign;  /* c=sin(2*pi*k*i/n)*sign*/
			a[k]+=c*x[i]+s*y[i];  
			b[k]+=c*y[i]-s*x[i];
		}
	}
	
/*若为IDFT,则每个数据都除以n*/
	if(sign==-1)  
	{	c=1.0/n;
		for (k=0;k<n;k++)
		{	a[k]=c*a[k];
			b[k]=c*b[k];
		}
	}
}

⌨️ 快捷键说明

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