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

📄 convlv.c

📁 适合大型数值计算代码 现在网络上已经找不到了 购买需要20$
💻 C
字号:
#define NRANSI#include "nrutil.h"void convlv(float data[], unsigned long n, float respns[], unsigned long m,	int isign, float ans[]){	void realft(float data[], unsigned long n, int isign);	void twofft(float data1[], float data2[], float fft1[], float fft2[],		unsigned long n);	unsigned long i,no2;	float dum,mag2,*fft;	fft=vector(1,n<<1);	for (i=1;i<=(m-1)/2;i++)		respns[n+1-i]=respns[m+1-i];	for (i=(m+3)/2;i<=n-(m-1)/2;i++)		respns[i]=0.0;	twofft(data,respns,fft,ans,n);	no2=n>>1;	for (i=2;i<=n+2;i+=2) {		if (isign == 1) {			ans[i-1]=(fft[i-1]*(dum=ans[i-1])-fft[i]*ans[i])/no2;			ans[i]=(fft[i]*dum+fft[i-1]*ans[i])/no2;		} else if (isign == -1) {			if ((mag2=SQR(ans[i-1])+SQR(ans[i])) == 0.0)				nrerror("Deconvolving at response zero in convlv");			ans[i-1]=(fft[i-1]*(dum=ans[i-1])+fft[i]*ans[i])/mag2/no2;			ans[i]=(fft[i]*dum-fft[i-1]*ans[i])/mag2/no2;		} else nrerror("No meaning for isign in convlv");	}	ans[2]=ans[n+1];	realft(ans,n,-1);	free_vector(fft,1,n<<1);}#undef NRANSI

⌨️ 快捷键说明

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