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

📄 rlfft.cpp

📁 信号处理的几种算法
💻 CPP
字号:
#include <stdlib.h>
#include <math.h>

 void fft(double x[32],double y[32],int n,int sign);
 void rlfft(double x[64],int n)
 {
	 int i,n1;
	 double a,c,e,s,fr,fi,gr,gi,*f,*g;
	 f=(double *)malloc(n/2*sizeof(double));
	 g=(double *)malloc(n/2*sizeof(double));
	 n1=n/2;
	 e=3.141592653589793/n1;
	 for(i=0;i<n1;i++)
	 {
		 f[i]=x[2*i];
		 g[i]=x[2*i+1];
	 }
	 fft(f,g,n1,1);
	 x[0]=f[0]+g[0];
	 x[n1]=f[0]-g[0];
	 for(i=1;i<n1;i++)
	 {
		 fr=(f[i]+f[n1-i])/2;
		 fi=(g[i]-g[n1-i])/2;
		 gr=(g[n1-i]+g[i])/2;
		 gi=(f[n1-i]-f[i])/2;
		 a=i*e;
		 c=cos(a);
		 s=sin(a);
		 x[i]=fr+c*gr+s*gi;
		 x[n-i]=fi+c*gi-s*gr;
	 }
	 free(f);
	 free(g);
 }

⌨️ 快捷键说明

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