吃肉的考拉 发表于 2014-5-6 21:56

2812用FFT库计算时间要多久

查资料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 https://bbs.21ic.com/static/image/common/back.gif
不知道原因啊   你再确认定时器的配置


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

和系统的频率有关系!

吃肉的考拉 发表于 2014-5-8 15:30

大秦正声 发表于 2014-5-8 12:27 static/image/common/back.gif
和系统的频率有关系!

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

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。不知道楼主找到原因了吗?

icekoor 发表于 2014-8-23 21:48

用TMS320C6713,主频是225M,分析128点,采用TI自带的FFT库函数,混合基分析,时间为750us。

jackblank 发表于 2014-10-15 21:01

TI自带的fft库函数是DSPF_sp_fftSPxSP (Mixed Radix Forward FFT with Bit Reversal)这个吗?最近在搞FFT。。请指教
页: [1]
查看完整版本: 2812用FFT库计算时间要多久