创龙科技
直播中

陈华

7年用户 212经验值
私信 关注

例程中FFT为什么输入要设置成(2*Tn+4)个?

[tr]StarterWare中给的FFT例程输入信号是(2*Tn+4)个,但是做Tn点FFT,这样也是可以的吗?为什么输入要设置成(2*Tn+4)个?


// FFT 输入信号
#pragma DATA_ALIGN(CFFT_In, 8);
float CFFT_In[2*Tn+4];

// FFT 输出
#pragma DATA_ALIGN(CFFT_Out, 8);
float CFFT_Out[2*Tn+4];

// FFT 计算
DSPF_sp_fftSPxSP(Tn,CFFT_In,Cw,CFFT_Out,brev,rad,0,Tn);


[/tr]

回帖(5)

李蒙

2020-4-8 10:10:00

        // 复数 FFT
        for (i=0;i<2*Tn;i++)
                CFFT_In

对输入信号可以是实数也可以是复数的 
举报

谭子薇

2020-4-8 10:21:47
引用: yywytwerw 发表于 2020-4-8 10:10
对输入信号可以是实数也可以是复数的 



输入信号可以是实数也可以是复数的
举报

徐一腾

2020-4-8 10:28:18
已解决,谢谢
举报

姜雨孜

2020-4-8 10:53:35
// FFT 计算
DSPF_sp_fftSPxSP(Tn,CFFT_In,Cw,CFFT_Out,brev,rad,0,Tn);

里面的那个brev 矩阵 是怎么生成的呢,有没有参考资料了,谢谢 帮忙回答
#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
};


参考下那篇文档 讲原理的~ 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分