本帖最后由 xfdr0805 于 2017-3-8 22:29 编辑
STM32F103c8t6用DSP库进行 256点 FFT运算,仿真发现FFT运算倒挺快的,跟官方速度差不多,但是计算幅值的时间,时间特别长,有差不多40多ms,造成3264点阵刷新比较慢,速度差不多20帧吧,反正也过的去,这里想请教一下大家,这种情况求模运算比FFT运算慢那么多是怎么回事?有没有其它办法提高速度呢,请做过这方面的朋友给指点一下,谢谢了
void dsp_asm_powerMag(void)
{
s16 lX,lY;
u32 i;
for(i=0;i<NPT/2;i++)
{
lX = (lBUFOUT << 16) >> 16;
lY = (lBUFOUT >> 16);
{
float X = NPT * ((float)lX) /32768;
float Y = NPT * ((float)lY) /32768;
float Mag = sqrt(X*X + Y*Y)/NPT;
if(i==0)
{
lBUFMAG = (u32)(Mag* 32768*31/256);
}
else
{
lBUFMAG = (u32)(Mag* 65536*31/150);
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
等会下班了验证一下,最后一个计算是正确的,但还是慢,还没原来的快呢
是做的实数FFT吗?你是不是直接把matlab和库函数计算完的两个数组对比?
一周热门 更多>