This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6748: TMS320C6748

Part Number: TMS320C6748
我需要调用dsplib进行256点的FFT,我参考了starterware中的FFT例程并利用DSPF_sp_fftSPxSP函数计算,问题在于,结果的长度似乎和常规的复数FFT不同,比如256点的复数FFT结果应该是256个复数,即按float储存应该是512个,而例程中,额外分配了4个float的空间,我不明白这些空间是用来储存什么内容的
2148.main.c
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/****************************************************************************/
/* */
/* ���ٸ���Ҷ� / ���ٸ���Ҷ������ */
/* */
/* 2014��04��20�� */
/* */
/****************************************************************************/
#include <stdio.h> // C ���Ա�׼�������������
#include <math.h> // C ��ѧ������
#include "mathlib.h" // DSP ��ѧ������
#include "dsplib.h" // DSP ������
/****************************************************************************/
/* */
/* ��� */
/* */
/****************************************************************************/
// ����ϵ�
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • ,结果的长度似乎和常规的复数FFT不同,比如256点的复数FFT结果应该是256个复数,即按float储存应该是512个,而例程中,额外分配了4个float的空间,

    在主函数中,使用`DSPF_sp_fftSPxSP`函数进行FFT,FFT输入和输出分配了`2*Tn+4`个`float`的空间,`Tn`是FFT的点数。这里额外的4个`float`空间是DSP库函数`DSPF_sp_fftSPxSP`的要求。这些额外的空间用于辅助计算,涉及到算法内部的缓存对齐为了避免边界条件下的读写错误。

    在TI的DSPs中,在DSP优化的FFT实现中,,经常会有一些特定要求确保性能优化,比如数据对齐。这是DSP库特定实现的一部分,并且这种做法并非在所有FFT库中都会看到。