RFFT 示例 ============ 概述 ---- 本示例演示了如何使用 HPM SDK 中的实数快速傅里叶变换(RFFT)功能。示例生成了一个包含三个不同频率和幅度的正弦波信号,然后进行 RFFT 变换并验证结果。 功能说明 -------- - 生成包含三个正弦波的合成信号 - 对信号进行实数快速傅里叶变换 - 计算变换结果的幅度谱 - 验证频率和幅度的准确性 - 测试不同点数(64-1024点)的 RFFT 性能 硬件要求 -------- - HPM6750EVKMINI 开发板 - HPM6200EVK 开发板 - HPM5300-FPGA 开发板 - HPM6800-VALIDATION 开发板 软件要求 -------- - HPM SDK - CMake 3.20.0 或更高版本 - 交叉编译工具链 构建说明 -------- 1. 进入示例目录 2. 创建构建目录并进入 3. 运行 CMake 配置 4. 编译项目 运行说明 -------- 1. 将编译生成的二进制文件烧录到开发板 2. 通过串口查看输出结果 3. 观察 RFFT 变换结果和性能数据 输出说明 -------- 程序会输出以下信息: - CPU 频率 - 不同点数 RFFT 的执行时间 - 频率分量的幅度 - 测试结果(PASS/FAIL) 程序设计 -------- 软件生成几个幅值和相位不同的正弦波并叠加生成一个波形,然后使用 RFFT 变换求出幅频特性数据。几个正弦波如下所示: - 幅值11,频率8 - 幅值19,频率17 - 幅值13,频率24 性能优化 -------- - segger 已经默认开启 O3 优化 运行现象 -------- 当工程正确运行后,串口终端会输出采样点数,以及幅频特性的数据,以及每一个单元的运行时间,并在最后输出 PASS 或者 ERROR NUM。 串口输出如下所示: .. code-block:: console 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-------------------- 性能数据 -------- 不同采样点数的 RFFT 性能如下表所示: .. list-table:: :header-rows: 1 * - 采样点 - 64 - 128 - 256 - 512 - 1024 * - DSP rfft - 5133 - 7956 - 25266 - 37868 - 122305