FFT算法
D
************************************/
/* */
/* 全局变量 */
/* */
/****************************************************************************/
// 快速傅里叶变换测试
// 测试快速傅里叶变换点数
// 注意:TI DSP库 最大支持一次性计算 128K 个点的 FFT
#define Tn 1024
// 采样频率
#define Fs
// 信号
float Input[2*Tn+4];
// FFT 输入信号
#pragma DATA_ALIGN(CFFT_In, 8);
float CFFT_In[2*Tn+4];
// FFT 输入信号 副本
float CFFT_InOrig[2*Tn+4];
// FFT 输出
#pragma DATA_ALIGN(CFFT_Out, 8);
float CFFT_Out[2*Tn+4];
// IFFT 输出
#pragma DATA_ALIGN(CFFT_InvOut, 8);
float CFFT_InvOut[2*Tn+4];
// 中间运算临时变量
float CTemp[2*Tn+4];
// 存储旋转因子
float Cw[2*Tn];
// 模
float Cmo[Tn+2];
// 二进制位翻转
#pragma DATA_ALIGN (brev, 8);
unsigned char brev[64]=
{
0x0, 0x20, 0x10, 0x30, 0x8, 0x28, 0x18, 0x38,
0x4, 0x24, 0x14, 0x34, 0xc, 0x2c, 0x1c, 0x3c,
0x2, 0x22, 0x12, 0x32, 0xa, 0x2a, 0x1a, 0x3a,
0x6, 0x26, 0x16, 0x36, 0xe, 0x2e, 0x1e, 0x3e,
0x1, 0x21, 0x11, 0x31, 0x9, 0x29, 0x19, 0x39,
0x5, 0x25, 0x15, 0x35, 0xd, 0x2d, 0x1d, 0x3d,
0x3, 0x23, 0x13, 0x33, 0xb, 0x2b, 0x1b, 0x3b,
0x7, 0x27, 0x17, 0x37, 0xf, 0x2f, 0x1f, 0x3f
};
/****************************************************************************/
/* */
/* 函数声明 */
/* */
/****************************************************************************/
// 产生旋转因子
void tw_gen(float *w, int n);
// FFT 测试
void FFTTest();
/****************************************************************************/
/* */
/* 主函
FFT算法 来自淘豆网m.daumloan.com转载请标明出处.