14.2. RFFT 示例

14.2.1. 概述

本示例演示了如何使用 HPM SDK 中的实数快速傅里叶变换(RFFT)功能。示例生成了一个包含三个不同频率和幅度的正弦波信号,然后进行 RFFT 变换并验证结果。

14.2.2. 功能说明

  • 生成包含三个正弦波的合成信号

  • 对信号进行实数快速傅里叶变换

  • 计算变换结果的幅度谱

  • 验证频率和幅度的准确性

  • 测试不同点数(64-1024点)的 RFFT 性能

14.2.3. 硬件要求

  • HPM6750EVKMINI 开发板

  • HPM6200EVK 开发板

  • HPM5300-FPGA 开发板

  • HPM6800-VALIDATION 开发板

14.2.4. 软件要求

  • HPM SDK

  • CMake 3.20.0 或更高版本

  • 交叉编译工具链

14.2.5. 构建说明

  1. 进入示例目录

  2. 创建构建目录并进入

  3. 运行 CMake 配置

  4. 编译项目

14.2.6. 运行说明

  1. 将编译生成的二进制文件烧录到开发板

  2. 通过串口查看输出结果

  3. 观察 RFFT 变换结果和性能数据

14.2.7. 输出说明

程序会输出以下信息: - CPU 频率 - 不同点数 RFFT 的执行时间 - 频率分量的幅度 - 测试结果(PASS/FAIL)

14.2.8. 程序设计

软件生成几个幅值和相位不同的正弦波并叠加生成一个波形,然后使用 RFFT 变换求出幅频特性数据。几个正弦波如下所示:

  • 幅值11,频率8

  • 幅值19,频率17

  • 幅值13,频率24

14.2.9. 性能优化

  • segger 已经默认开启 O3 优化

14.2.10. 运行现象

当工程正确运行后,串口终端会输出采样点数,以及幅频特性的数据,以及每一个单元的运行时间,并在最后输出 PASS 或者 ERROR NUM。

串口输出如下所示:

Rfft demo: 64.
total times:5133 tick.
------------------------------------
DC component amplitude:5.000004.
Frequency:8.000000, Amplitude:11.000010.
Frequency:17.000000, Amplitude:18.999992.
Frequency:24.000000, Amplitude:13.000002.
------------------------------------
Rfft demo: 128.
total times:7956 tick.
------------------------------------
DC component amplitude:4.999997.
Frequency:8.000000, Amplitude:11.000002.
Frequency:17.000000, Amplitude:18.999996.
Frequency:24.000000, Amplitude:13.000004.
------------------------------------
Rfft demo: 256.
total times:25266 tick.
------------------------------------
DC component amplitude:4.999996.
Frequency:8.000000, Amplitude:11.000001.
Frequency:17.000000, Amplitude:19.000000.
Frequency:24.000000, Amplitude:13.000004.
------------------------------------
Rfft demo: 512.
total times:37868 tick.
------------------------------------
DC component amplitude:4.999998.
Frequency:8.000000, Amplitude:11.000000.
Frequency:17.000000, Amplitude:19.000000.
Frequency:24.000000, Amplitude:13.000000.
------------------------------------
Rfft demo: 1024.
total times:122305 tick.
------------------------------------
DC component amplitude:4.999998.
Frequency:8.000000, Amplitude:11.000000.
Frequency:17.000000, Amplitude:19.000000.
Frequency:24.000000, Amplitude:13.000000.
------------------------------------
PASS.
----------------END--------------------

14.2.11. 性能数据

不同采样点数的 RFFT 性能如下表所示:

采样点

64

128

256

512

1024

DSP rfft

5133

7956

25266

37868

122305