[应用相关] 单片机计算FFT很慢,在开启FPU后有没有其他办法更快点。

[复制链接]
3344|50
albertaabbot 发表于 2025-3-14 20:54 | 显示全部楼层
定点运算所需的硬件资源相对较少,也可以提高计算效率。
earlmax 发表于 2025-3-15 00:00 | 显示全部楼层
基 - 2 算法是最经典的 FFT 算法,但对于一些特定的数据长度,基 - 4、分裂基等算法可能具有更高的计算效率。可以根据实际需求选择合适的算法,以减少计算量和计算时间。
gygp 发表于 2025-3-15 03:04 | 显示全部楼层
适当提高单片机的时钟频率可以加快计算速度
jkl21 发表于 2025-3-15 07:45 | 显示全部楼层
优化代码循环结构和编译器选项              
abotomson 发表于 2025-3-15 10:26 | 显示全部楼层
如果可能,减少FFT的点数,因为FFT的计算复杂度与点数的对数成正比。
saservice 发表于 2025-3-15 12:18 | 显示全部楼层
硬件浮点运算单元和DSP              
iyoum 发表于 2025-3-15 14:03 | 显示全部楼层
避免在 FFT 计算过程中被其他低优先级的任务打断,减少计算的延迟。
sdCAD 发表于 2025-3-15 15:52 | 显示全部楼层
​快速数论变换              
qiufengsd 发表于 2025-3-15 17:34 | 显示全部楼层
将 FFT 核心代码内联到主函数,避免函数调用开销。
lzmm 发表于 2025-3-15 19:17 | 显示全部楼层
如果单片机支持多核或多线程处理,可以尝试将FFT计算并行化,将数据分割成多个部分
usysm 发表于 2025-3-15 21:13 | 显示全部楼层
将大信号分割为多个小块分别进行 FFT,利用缓存局部性提高效率。
geraldbetty 发表于 2025-3-15 22:56 | 显示全部楼层
适当使用内联函数和宏可以减少函数调用带来的开销。
febgxu 发表于 2025-3-16 11:35 | 显示全部楼层
在资源允许的情况下,可以使用额外的协处理器来分担主处理器的工作负担。
houjiakai 发表于 2025-3-16 13:16 | 显示全部楼层
将信号补零至最近的 2 的幂次长度,减少混合基 FFT 的计算量。
olivem55arlowe 发表于 2025-3-16 14:59 | 显示全部楼层
蝶形运算是FFT算法的核心部分,对其进行优化可以减少乘法和加法运算的次数。
alvpeg 发表于 2025-3-18 19:11 | 显示全部楼层
使用更高效的FFT算法,例如Cooley-Tukey算法或蝶形算法,这些算法可以减少计算量和内存访问次数。
houjiakai 发表于 2025-3-18 21:12 | 显示全部楼层
化数据结构和访问模式              
timfordlare 发表于 2025-3-19 09:42 | 显示全部楼层
通常可以使用定点数(整数)代替浮点数进行FFT计算。
deliahouse887 发表于 2025-3-19 12:42 | 显示全部楼层
定点 FFT 算法可能比浮点 FFT 算法更快。定点运算避免了浮点运算中复杂的小数处理和进位操作,减少了计算时间。
hilahope 发表于 2025-3-19 15:46 | 显示全部楼层
优化内存访问模式,减少缓存未命中次数,可以提高数据访问速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部