关于DSP2812 FFT库的一些总结

今天尝试了下TI的2812 FFT库,现进行简单的总结。

1.在PROJECT中添加FFT的LIB文件,C中包含fft.h头文件。

2.CMD中添加和FFT有关的段,注意ipcb段长度为2N long,因此ipcb要用ALIGN指令分配4N个word的连续空间(例如512点FFT就需要ALIGN(2048));FFTft是WN因子的储存空间,存放在RAM即可。

3.初始化缓存ipcb(输入输出共用)fft.ipcbptr=... -> 初始化Wn因子fft.init -> 重排序(位反转或用ACQ函数添加样本,ACQ会自动排序) -> 加窗(可选)fft.win -> 计算FFT,fft.calc -> 计算幅度fft.mag。

4.FFT的数据为Q31格式(-1~0.999...),为了避免溢出每一级蝶形运算的结果都除以了2,因此FFT结果正好除以了N。假设一信号为A*cos(2*pi*f0*t + phase0),用f0的整数倍频率fs对该信号采样整数个周期(避免频谱泄露),对采样的序列进行N点FFT得X[k]=r[k] + j*i[k],f0在X[k]中对应的两个序号为 m=N*f0/fs, n=N-m, 则有 (A^2)/2 = (r[m]^2 + i[m]^2) + (r[n]^2 + i[n]^2) = 2*(r[m]^2 + i[m]^2)。

5.幅度计算fft.mag的公式为r^2+i^2,为了避免溢出,fft.mag的结果同样除以了2,即假设fft.calc的结果为X[k]=r[k] + j*i[k],mag函数计算的结果为M[k],则M[k] = (r[k]^2 + i[k]^2)/2。

转载于:https://www.cnblogs.com/Ilmen/archive/2013/06/15/3137116.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值