在开发产品时,我在 Matlab 中完成所有算法设计。它们通常非常基本,一个或两个 IIR 或 FIR 滤波器,几个 FFT 等。当需要将其移动到嵌入式环境时,我总是很难决定在哪个平台上运行它。我通常会想到这些(广泛的)平台:
- DSP内核
- FPGA
- 微控制器
- 手臂
尝试做出此决定时应考虑哪些因素?
在开发产品时,我在 Matlab 中完成所有算法设计。它们通常非常基本,一个或两个 IIR 或 FIR 滤波器,几个 FFT 等。当需要将其移动到嵌入式环境时,我总是很难决定在哪个平台上运行它。我通常会想到这些(广泛的)平台:
尝试做出此决定时应考虑哪些因素?
如果您坚持使用 IIR、FIR、radix-2 或 4 FFT 等“标准算法”(即非常适合 DSP 架构而没有太多控制流的东西),您可以试试这个:
计算所有算法中每秒需要多少“乘法累加”。
据我所知,ARM 应该被视为一种架构而不是一个平台。但是,问题与使用什么平台进行 RT 信号(在本例中为音频)处理非常相关。
您可以先问以下问题,而不是按严格的顺序:
我将首先查看算法。例如,如果您需要大量 FFT 和 MAC 运算,您可能可以排除大多数微控制器,而更多地关注 DSP 内核。请记住,也有带有嵌入式 DSP 内核的 MCU。
另一个重要的考虑因素是您在实施领域的能力和专业知识。大多数人都回避 FPGA,因为您必须使用 HDL 来实现。回避 FPGA 的另一个原因是功率要求。
仅凭您提供的信息,选择可能是 ARM(简单 IIR 和 FIR),但还有其他因素需要考虑,例如电源要求、IO 要求、您希望实现的附加功能:如果使用此设备,您将节省多少开发时间有网络连接和 API 可以在现场修改 DSP 参数吗?
您是否考虑过将您的选择范围扩展到智能手机或 Beagle Board 等紧凑型计算机?您可能会意识到信号处理只是您要解决的整个问题的一小部分。