FFT快速傅里叶变换(Fast Fourier Transform)是数字信号处理中的核心算法,用于将时域信号转换为频域表示。

核心库主要特性:

  • 提供快速傅里叶变换(FFT)和逆快速傅里叶变换(IFFT)功能;

  • 支持Q15定点和F32浮点两种FFT实现方式;

  • 满足不同应用场景的性能和精度需求。

典型应用场景:

  • 频谱分析:分析信号的频率成分和能量分布;

  • 音频处理:音调识别、音频特征提取;

  • 振动监测:机械设备故障诊断和状态监测等。

本文将以Air780EPM开发板为例,分享FFT应用示例要点。

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浮点格式:

    表示范围:标准单精度浮点数

    精度:更高的计算精度

    适用场景:对精度要求较高的应用

    D01.png

    03. FFT功能验证

    Air780EPM开发板通过LuaTools烧录内核固件和demo脚本代码,烧录成功后开机运行,即可查看日志。 

    通过LuaTools可以观察到:

    • 频率准确性:

      检测到的主峰频率接近200Hz;

    • 性能对比:

      Q15 FFT(耗时10ms)比F32 FFT(耗时24ms)更快。

    运行结果01.png

    Logo

    智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

    更多推荐