打印
[应用相关]

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

[复制链接]
楼主: 风之呢喃
手机看帖
扫描二维码
随时随地手机跟帖
21
albertaabbot| | 2025-3-14 20:54 | 只看该作者 回帖奖励 |倒序浏览
定点运算所需的硬件资源相对较少,也可以提高计算效率。

使用特权

评论回复
22
earlmax| | 2025-3-15 00:00 | 只看该作者
基 - 2 算法是最经典的 FFT 算法,但对于一些特定的数据长度,基 - 4、分裂基等算法可能具有更高的计算效率。可以根据实际需求选择合适的算法,以减少计算量和计算时间。

使用特权

评论回复
23
gygp| | 2025-3-15 03:04 | 只看该作者
适当提高单片机的时钟频率可以加快计算速度

使用特权

评论回复
24
jkl21| | 2025-3-15 07:45 | 只看该作者
优化代码循环结构和编译器选项              

使用特权

评论回复
25
abotomson| | 2025-3-15 10:26 | 只看该作者
如果可能,减少FFT的点数,因为FFT的计算复杂度与点数的对数成正比。

使用特权

评论回复
26
saservice| | 2025-3-15 12:18 | 只看该作者
硬件浮点运算单元和DSP              

使用特权

评论回复
27
iyoum| | 2025-3-15 14:03 | 只看该作者
避免在 FFT 计算过程中被其他低优先级的任务打断,减少计算的延迟。

使用特权

评论回复
28
sdCAD| | 2025-3-15 15:52 | 只看该作者
​快速数论变换              

使用特权

评论回复
29
qiufengsd| | 2025-3-15 17:34 | 只看该作者
将 FFT 核心代码内联到主函数,避免函数调用开销。

使用特权

评论回复
30
lzmm| | 2025-3-15 19:17 | 只看该作者
如果单片机支持多核或多线程处理,可以尝试将FFT计算并行化,将数据分割成多个部分

使用特权

评论回复
31
usysm| | 2025-3-15 21:13 | 只看该作者
将大信号分割为多个小块分别进行 FFT,利用缓存局部性提高效率。

使用特权

评论回复
32
geraldbetty| | 2025-3-15 22:56 | 只看该作者
适当使用内联函数和宏可以减少函数调用带来的开销。

使用特权

评论回复
33
febgxu| | 2025-3-16 11:35 | 只看该作者
在资源允许的情况下,可以使用额外的协处理器来分担主处理器的工作负担。

使用特权

评论回复
34
houjiakai| | 2025-3-16 13:16 | 只看该作者
将信号补零至最近的 2 的幂次长度,减少混合基 FFT 的计算量。

使用特权

评论回复
35
olivem55arlowe| | 2025-3-16 14:59 | 只看该作者
蝶形运算是FFT算法的核心部分,对其进行优化可以减少乘法和加法运算的次数。

使用特权

评论回复
36
alvpeg| | 2025-3-18 19:11 | 只看该作者
使用更高效的FFT算法,例如Cooley-Tukey算法或蝶形算法,这些算法可以减少计算量和内存访问次数。

使用特权

评论回复
37
houjiakai| | 2025-3-18 21:12 | 只看该作者
化数据结构和访问模式              

使用特权

评论回复
38
timfordlare| | 2025-3-19 09:42 | 只看该作者
通常可以使用定点数(整数)代替浮点数进行FFT计算。

使用特权

评论回复
39
deliahouse887| | 2025-3-19 12:42 | 只看该作者
定点 FFT 算法可能比浮点 FFT 算法更快。定点运算避免了浮点运算中复杂的小数处理和进位操作,减少了计算时间。

使用特权

评论回复
40
hilahope| | 2025-3-19 15:46 | 只看该作者
优化内存访问模式,减少缓存未命中次数,可以提高数据访问速度。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则