关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > FFT在低功率微程序控制器中的应用

FFT在低功率微程序控制器中的应用

作者:时间:2010-08-17来源:网络收藏

利用开环来获得位倒置(其中N=256):

3.4 基为2的算法
在对样本执行位倒置后,即可以计算了。利用蝶形方法(见图1)计算基为2的的固件包括3个主要的循环。在循环之外包括log2N的FFT计算阶段。在每一阶段循环内部执行单独的蝶形运算。FFT算法的核心是执行每一蝶形运算的块码。不幸的是,这一块码的计算是不轻便的。MUL_1与MUL_2利用微处理器的硬件乘法来执行乘法。
3.5 复数转化为极坐标表示
为了计算输入信号的幅值,必须将复数X(k)转换为极坐标来表示。幅值将代替在固件中不再需要的FFT中的原来的值。
式(4)中决定了二维的LUT其幅值而不是其计算。第1个值是频谱实部4个最重要的位,而第2个值是频谱虚部4个最重要的位。为了获得这些最重要的位,16位有符号数右移11次。频谱的实部与虚部都可以被用作下标时,它们被其绝对值代替了(因此符号位将是零)。
从式(6)中,可以知道频谱是以X(N/2)对称的,只有前N/2+1个幅值被转化为极坐标表示。同样,对于输入样本为实数的频谱虚部中的X(0)与X(N/2)通常为零。因此这两个幅值通常分别是单独计算的。固件中用来自动计算X(k)的包括原码。
3.6 海明窗或汉宁窗
为了实现此任务的固件包括LUTs(Q8.7形式)将海明窗或汉宁窗到输入样本中。加窗对于防止泄漏是有用的。加窗可以在时域上对输入样本截短。海明窗的方程如方式(8)所示,而汉宁窗则如式(9)所示。

同样,这些实际固件的注释包括自动为这些窗函数产生LUTs的原码。

4 测试结果
为了对FFT结果测试,利用微处理器中的通用异步收发报机端口。固件将幅值X(k)上传到PC上。这个包括FFT图表,即利用一个窗口从PC中的串行端口中读取这些幅值,实时地将计算得到的幅值利用图表画出来。利用微处理器对4个不同输入电压信号进行200Kb/s采样,并在图2中输出其FFT图像。

本文引用地址:http://www.eepw.com.cn/article/162918.htm



5 结语
当然你可以利用无限的时间来优化及计算FFT。但是本文采取了基为2的FFT,这种方法可以很大限度地减少计算FFT所需要的加法与乘法。由于篇幅问题,有很多提高执行FFT速度的优化方法并没有在本文中给出。例如,对于实数的输入样本信号,输入样本的虚部通常为零,而且只有开始的一半频谱是重要的。利用这个信息,第一和最后一个FFT阶段就可以更快速的执行(但可能将需要编写更多的代码)。对于低的微处理器,在本文中所提到的关于FFT的算法是一个好的开始。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭