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

📄 fft.txt

📁 fft程序
💻 TXT
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "dsplib.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------
//计算FFT 函数:
//输入:
//    x:输入数据
//    n:FFT点数
//    isign:标志,1:IFFT,-1:FFT
//输出:x
void SPfft(complex *x,int n,int isign)
{
 /* Local variables */
    int i, l, m, mr,tmp_int;
    complex t, tmp_complex, tmp;
    float pisign;
    double expx;

    pisign = isign * PI;
    mr = 0;
    for (m = 1 ; m < n ; ++m)  {
	l = n;
	l /= 2;
	while (mr + l >= n){
	    l /= 2;
	}
	mr = mr % l + l;
	if (mr > m)
	{
	    t.r = x[m].r;
	    t.i = x[m].i;
	    x[m].r = x[mr].r;
	    x[m].i = x[mr].i;
	    x[mr].r = t.r;
	    x[mr].i = t.i;
	}   \
    }
    l = 1;
    while (l < n)
    {
	for (m = 0 ; m < l ; ++m)
	{
	    tmp_int = l * 2;
	    for (i = m ; tmp_int < 0 ? i >= (n - 1) : i < n ; i += tmp_int)
	    {
		tmp.r = 0.0;
		tmp.i = m * pisign / l;

                expx = exp((double) tmp.r);
                tmp_complex.r = (float) expx * cos((double) tmp.i);
                tmp_complex.i = (float) expx * sin((double) tmp.i);


		t.r = x[i + l].r * tmp_complex.r - x[i + l].i * tmp_complex.i;
		t.i = x[i + l].r * tmp_complex.i + x[i + l].i * tmp_complex.r;

		x[i + l].r = x[i].r - t.r;
		x[i + l].i = x[i].i - t.i;

		x[i].r = x[i].r + t.r;
		x[i].i = x[i].i + t.i;
	    }
        }
        l *= 2;
    }

}

⌨️ 快捷键说明

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