·上一文章:SST89E58RD2单片机在增强系统抗干扰性能方面的应用
·下一文章:单片机温度采集电路的设计与虚拟仿真
3 FFT优化
已经出现了很多优化FFT的方法。而这些优化方法的目的都是为了使得计算速度增快且尽可能的减少存储数据所需要的RAM。
我们都知道,计算FFT的一个重要方法是蝶式方法。但是蝶式计算的每一次迭代都需要一个复杂的乘法(总共是四次的长整数乘法)。长整数乘法需要很多处理内存来完成。但是我们仔细观察会发现其中一些乘法是不需要的,并且是可以省去的。特别是,当乘数为零时,结果将为零和当乘数为1时,相乘的结果将不变。对那些正弦和余弦函数是否为0或1进行查询的代码可以利用这些优点来减少计算量。这种优化方法能节省的计算量为:其中N为FFT的点数。
4 程序总体设计
首长分成三个模块集合而成。即数据采集模块,A/D转换模块及FFT运算模块。数据采集模块主要是通过定时器来控制A/D转换器的采样周期,将采集到的数据转换成有符号数,并且可以以复数形式存贮。FFT的运算模块是在8051单片机的数据存贮器上运行256点的FFT,并经一快速平方根或快速对数运算,计算出对应128个频率点的幅值或分贝表示值。具体流程如图3。
5 在电话视频中的应用
在一个会议中,当说话人变换时。我们需要摄像头能自动跟踪并检测出说话人的位置,这就需要用到FFT及其反变换来计算角度。
6 结论
本文主要介绍了一种在单片机中实现FFT算法的优化方法,由于这可大大减少FFT的计算量及减少存储数据所需要的RAM。因此其可应用在电话视频会议中。