使用STM32官方提供的DSP库进行FFT,虽然在使用上有些不灵活(因为它是基4的FFT,所以FFT的点数必须是4^n),但其执行效率确实非常高效,看图1所示的FFT运算效率测试数据便可见一斑。该数据来自STM32 DSP库使用文档。
测试平台条件
- STM32F407 主频 168MHz, 5 个 Flash 等待周期,开启存储器加速器(ART Accelerator™)。
STM32F103 主频 72MHz, 2 个 Flash 等待周期。
N32G430主频128Mhz
Keil优化-o1
2. 每个函数运行 10 次求平均。
在安富莱开发板测试结果
上面512应该是256点。
在N32G430上测试结果
实数FFT
|
开启FPU
|
|
64
|
31.8us
|
|
256
|
181.7us
|
|
1024
|
781.2us
|
|
|