我针对32位的MCU写了一些卷积、滤波、求积、DFT、FFT、相关、标准差、功率谱等函数,
不知道是不是跟硬件DSP是一样的啊,
我的单片机原型是STM32的,好像浮点算还可以,上面也没有DSP库函数,
但是作检测和估计的时候要用,所以就自己写函数了,
我这个思路大家说说好不好啊,效率那肯定没硬件的快,效果达到也还凑活嘛
你的MCU是冯诺依曼结构,DSP是图书管理系统论文 哈佛结构的
DSP实现数字信号处理算法要比MCU快得多。这也正是DSP芯片的优势。
STM32要看哪一款,带浮点处理器可以处理简单一点,DSP这方面功能更强这不用说。
官方库的数据:
64 points 3847 0.16 ms 4 472 0.093 ms 5 661 0.078 ms
256 points 21 039 0.876 ms 24 964 0.52 ms 31 527 0.437 ms
1024 points 100 180 4.174 ms 114 350 2.382 ms 153 930 2.138 ms
如果用Ivan Mellen 手工优化的1024点FFT
才2百多个us!
这个是256点
我用128点,还担心算不过来呢,采样率才500HZ,速度没有测
用fpga吧 效率更高
DSP实际上也是软运算,只是针对计算对CPU核心进行过特殊优化,做乘加运算的时候灰常快
而楼上说的FPGA,这个东西要是用好了,我那个去,效果那是杠杠滴,这才是真正的硬件计算
很多拿FPGA实现CRC,MD5,H.264等等功能的,效率叫一个高
DSP提供能在一指令周期执行一次乘加计算,采用哈佛结构,具有很高的数据吞吐率,并官方提供算法库,保证功能可靠和算法最优化,这些都是MCU没法比的。
FPGA也提供DSP模块,它对比DSP的优势在于可以使用硬件语言设计多级流水线工作并行计算,但要花时间测试功能和稳定性,维护也不如C语言来得方便。