打印
[DSP编程]

2812用FFT库计算时间要多久

[复制链接]
1982|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fft, ip, pc, RF, ev
查资料128个点76.7us,256个点也才150us不到,我开了个10us的定时器,怎么就计时到277左右了呢。。。。
各个函数单步运行计时
RFFT32_brev(ipcb,ipcb,N);    30*10 = 300us这一步就花好多时间啊。。。。

   fft.calc(&fft);  (178-30)*10=1480us 变成毫秒级了。。。
   fft.split(&fft);(232-178)*10 =540us 还能再长点么
   fft.mag(&fft); (262-232)*10 = 300us
和网上查的一点都不符合啊
128点 用时(us)
1步倒序(RFFT32_brev) 10.8
2步计算(fft.cal) 39
3步实部虚部分离(fft.split) 13.1
4步计算幅值(fft.mag) 13.8
总用时 76.7

相关帖子

沙发
zhangmangui| | 2014-5-6 22:43 | 只看该作者
不知道原因啊   你再确认定时器的配置

使用特权

评论回复
板凳
吃肉的考拉|  楼主 | 2014-5-7 17:46 | 只看该作者
本帖最后由 吃肉的考拉 于 2014-5-7 18:32 编辑
zhangmangui 发表于 2014-5-6 22:43
不知道原因啊   你再确认定时器的配置



GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 10);//0.1m
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平
   fft_init(ipcb1);
   fft_subroutine(ipcb1);
     
  // fft_init(ipcb3);
  // fft_subroutine(ipcb3);
     

   
  // fft_init(ipcb2);
  // fft_subroutine(ipcb2);   
  // fft_init(ipcb4);
  // fft_subroutine(ipcb4);
  

   GpioDataRegs.GPBSET.bit.GPIOB0 = 1;  //高电平
   EvaTimer2InterruptCount = 0;
   while(EvaTimer2InterruptCount < 30);//
   GpioDataRegs.GPBCLEAR.bit.GPIOB0 = 1;//低电平

void fft_init(long *ipcb)
{
  /*****FFT init*******/
fft.ipcbptr = ipcb;
fft.magptr = mag;
fft.init(&fft);

}
void fft_subroutine(long *ipcb)
{
int i;
mag_temp = 0;
    freq = 0;   
   RFFT32_brev(ipcb,ipcb,N);
   fft.calc(&fft);
   fft.split(&fft);
   fft.mag(&fft);
   for(i=2;i<(N/2+1);i++)
   {
    if(mag > mag_temp)
{
  mag_temp = mag;
  freq = i;   
}
   }
    max_mag = 2*(float)sqrt(mag_temp)/sqrt(64)*3/4095;
    freq =(float) 124/N*freq+0.0;
     
   
}
用示波器测了,还是3ms左右

使用特权

评论回复
地板
大秦正声| | 2014-5-8 12:27 | 只看该作者
和系统的频率有关系!

使用特权

评论回复
5
吃肉的考拉|  楼主 | 2014-5-8 15:30 | 只看该作者
大秦正声 发表于 2014-5-8 12:27
和系统的频率有关系!

系统频率设置的是150M,原来的ipcb是存放在外部存储器的 现在放到片上SRAM里速度就快了 不到500us,虽然还达不到官方的数据

使用特权

评论回复
6
icekoor| | 2014-8-13 12:23 | 只看该作者
本帖最后由 icekoor 于 2014-8-13 12:25 编辑

最近写了个160点的FFT程序,采用P*Q=N的方式,P=10,Q=16,经过FFT运算后时间是167ms,用的是6713,主频是225M。不知道楼主找到原因了吗?

使用特权

评论回复
7
icekoor| | 2014-8-23 21:48 | 只看该作者
用TMS320C6713,主频是225M,分析128点,采用TI自带的FFT库函数,混合基分析,时间为750us。

使用特权

评论回复
8
jackblank| | 2014-10-15 21:01 | 只看该作者
TI自带的fft库函数是DSPF_sp_fftSPxSP (Mixed Radix Forward FFT with Bit Reversal)这个吗?最近在搞FFT。。请指教

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

58

帖子

0

粉丝