Air780EPM开发板凭借其强大的处理能力,为嵌入式FFT算法实现提供了理想平台。本技术文章聚焦其FFT应用示例,通过构建200Hz正弦波测试环境,实测Q15定点与F32浮点FFT算法在相同数据下的执行表现。结果显示,Q15以10ms的处理速度显著优于F32的24ms,适用于资源受限场景,而F32则在精度上更具优势,适用于高精度分析需求。
01. FFT示例功能
本demo是FFT(快速傅里叶变换)测试,支持Q15定点和F32浮点两种实现方式。
主要功能:
生成200Hz正弦波测试信号;
使用Q15定点FFT算法处理数据;
使用F32浮点FFT算法处理相同数据;
计算并输出两种实现方式的性能对比(执行时间);
分析频谱结果,定位并显示主峰频率。
02. FFT示例代码
数据格式及test_fft.lua核心测试代码如下,完整demo详见源码仓库最新文件。
Q15定点格式:
表示范围:-1.0到0.999969482421875
存储格式:16位有符号整数
优势:在无浮点单元的MCU上高效运行
F32浮点格式:
表示范围:标准单精度浮点数
精度:更高的计算精度
适用场景:对精度要求较高的应用

03. FFT功能验证
Air780EPM开发板通过LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行,即可查看日志。
通过LuaTools可以观察到:
频率准确性:
检测到的主峰频率接近200Hz;
性能对比:
Q15 FFT(耗时10ms)比F32 FFT(耗时24ms)更快。

今天的内容就分享到这里了~