Thread 中讨论的其他器件:OMAPL138
工具/软件:TI-RTOS
您好!
您能否检查是否有用于缩短附加代码处理持续时间的 DSP API 库?
尤其是 短时间傅里叶变换部分。
谢谢、
Aviram
#include
#include "KaiserWindow_256.h"
#include
#include "s1_def.h"
int trationi[FFT_SIZE]__attribute__((section ("algo L2")));
int trationQ[FFT_SIZE]__attribute__((section ("algo L2")));
// Amnon:
//改为就地
// FFT_NUM_OF_THREADS-1循环,第一个 ACC 项已就地
int iq_Reduction (short* input_i、short* input_Q、float* output_IQ、int FFT_size)
{
// IQ 降低-在 I 和 Q 样本上并行工作以降低计算复杂性
int i、j;
int sampleIndex;
//int acc_i、acc_q;
//int 缩减 i[FFT_MAX_SIZE];
//int 缩减 Q[FFT_MAX_SIZE];
Int Sumi;
内部摘要;
Int 曲折 I;
Int 曲折 Q;
int delta;
//初始
Sumi = 0;
SumQ = 0;
memset (reductionI、0、sizeof (reductionI));
memset (reducionQ、0、sizeof (reducionQ));
对于(I = 0;I < FFT_SIZE;I++)
{
// Init 累加器
//acc_i = 0;
//ACC_Q = 0;
//初始输入索引
samplpleIndex = i;
对于(j = 0;j < FFT_NUM_OF_SETTINS;j++)
{
reducioni[i]+= input_i[samplpleIndex];
reducionQ[i]+= input_Q[samplpleIndex];
sampleIndex += FFT_SIZE;
}
Sumi +=简化 i[i];
sumQ +=简化 Q[i];
//更新缩减结果
//reducioni[i]= acc_i;
//reducionQ[i]= ACC_Q;
}
//计算直流
曲折 I =(int)(Sumi * DC_AVG_FACTOR);
曲折 Q =(int)(sumQ * DC_AVG_FACTOR);
//窗口功能
对于(i = 0、j = 0;i < FFT_SIZE;i++、j += 2)
{
// Kaiser 窗口-已乘以(reduction _AVG_factor)值
//删除 DC
Delta =(int) reductionI[i]-曲折 I;
output_iq[j]=(float)(delta)* KaiserWindow_256[i];
//删除 DC
Delta =(int) reducionQ[i]-曲折 Q;
output_iq[j+1]=(float)(delta)* KaiserWindow_256[i];
}
返回0;
}