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

📄 split2.c

📁 ICETEK-C6711-A开发板所的模块fft程序
💻 C
字号:
/******************************************************************************
 FILE
 	split2.c - This is the C source code for the implmentation of the 
 	split routine which is the additinal computations in computing the
	DFT of two N-point real-valued sequences using one N-point complex DFT.
 ******************************************************************************
 
 DESCRIPTION
	Computation of the DFT of two N-point real-valued sequences can be
	effiecently computed using one N-point complex DFT and some additional
	computations.  This function implements these additional computations
	which are shown belw.
	
          	X1r[0] = Xr[0]
		X1i[0] = 0

		X2r[0] = Xi[0]
		X2i[0] = 0

		X1r[N/2] = Xr[N/2]
		X1i[N/2] = 0
		  
		X2r[N/2] = Xi[N/2]
		X2i[N/2] = 0
		  
		for k = 1,2,3, ...., N/2-1
		       	X1r[k] = (Xr[k] + Xr[N-k])/2        
		       	X1i[k] = (Xi[k] - Xi[N-k])/2
			X1r[N-k] = X1r[k]
			X1i[N-k] = X1i[k]

			X2r[k] = (Xi[k] + Xi[N-k])/2 
			X2i[k] = (Xr[N-k] - Xr[k])/2
			X2r[N-k] = X2r[k]
			X2i[N-k] = X2i[k]
 
 *****************************************************************************/
 


#include "params.h"

void split2(int N, COMPLEX *X, COMPLEX *X1, COMPLEX *X2)
{
														  
	int k;

	X1[0].real = X[0].real;
	X1[0].imag = 0;

	X2[0].real = X[0].imag;
	X2[0].imag = 0;

	X1[N/2].real = X[N/2].real;
	X1[N/2].imag = 0;

	X2[N/2].real = X[N/2].imag;
	X2[N/2].imag = 0;


	for (k=1; k<N/2; k++)
	{
		X1[k].real = (X[k].real + X[N-k].real)/2;
		X1[k].imag = (X[k].imag - X[N-k].imag)/2;

		X2[k].real = (X[k].imag + X[N-k].imag)/2;
		X2[k].imag = (X[N-k].real - X[k].real)/2;
	
		X1[N-k].real = X1[k].real;
		X1[N-k].imag = -X1[k].imag;

		X2[N-k].real = X2[k].real;
		X2[N-k].imag = -X2[k].imag;
	}

}

⌨️ 快捷键说明

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