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

📄 fft_2r.h

📁 这一个适用于一次求两个实序列的FFT的头文件
💻 H
字号:
//这一个适用于一次求两个实序列的FFT的头文件

#include <stdio.h>
#include <math.h>
#include "FFT_INT.h"


//x1--双精度实型一维数组 长度n
//开始时存放第一个序列,最后存放变换结果的前n/2+1个值,存储顺序为[Re(0),Re(1)...Re(n/2),Im(n/2-1),...Im(1)]
//其中Re(0)=X1(0),Re(n/2)=X1(n/2)
//x2--双精度实型一维数组 长度n
//开始时存放第二个序列,最后存放变换结果的前n/2+1个值,存储顺序为[Re(0),Re(1)...Re(n/2),Im(n/2-1),...Im(1)]
//其中Re(0)=X2(0),Re(n/2)=X2(n/2)
//最后根据X1(k)和X2(k)共轭对称和容易给出它们的后半部分的值
//n--整型变量 数据长度必须是2的整数次幂 即n=2^M

//请在主函数中给出定义或FFT_N的值
//double x[FFT_N],y[FFT_N];

void R2_FFT(double *x,double *y,unsigned int N,unsigned int M)
{
	int N1,i;
	double tr,ti;

	N1=N/2; //利用实序列的特点只计算前半部分

	FFT_INT(x,y,N,M);

	for(i=1;i<N1;i++)
	{
		tr=(x[i]+x[N1-i])/2;
		ti=(y[i]-y[N1-i])/2;
		y[i]=(y[N1-i]+y[i])/2;
		y[N1-i]=(x[N1-i]-x[i])/2;
		x[i]=tr;
		x[N1-i]=ti;
	}
}
	

⌨️ 快捷键说明

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