如何决定哪个平台最适合实现实时音频处理?

信息处理 手臂 DSP核心 硬件
2021-12-23 04:18:07

在开发产品时,我在 Matlab 中完成所有算法设计。它们通常非常基本,一个或两个 IIR 或 FIR 滤波器,几个 FFT 等。当需要将其移动到嵌入式环境时,我总是很难决定在哪个平台上运行它。我通常会想到这些(广泛的)平台:

  • DSP内核
  • FPGA
  • 微控制器
  • 手臂

尝试做出此决定时应考虑哪些因素?

3个回答

如果您坚持使用 IIR、FIR、radix-2 或 4 FFT 等“标准算法”(即非常适合 DSP 架构而没有太多控制流的东西),您可以试试这个:

计算所有算法中每秒需要多少“乘法累加”。

  • < 1000 万,你可能会得到一个快速的微控制器来完成这项工作(如果你是 <1M,甚至是一个慢的微控制器)
  • < 100M 是简单的 DSP 领域
  • < 1G 可能是可行的快速 DSP 领域
  • 1G-10G是DSP和FPGA交叉的地方
  • > 10G 是多个 DSP 或 FPGA

据我所知,ARM 应该被视为一种架构而不是一个平台。但是,问题与使用什么平台进行 RT 信号(在本例中为音频)处理非常相关。

您可以先问以下问题,而不是按严格的顺序:

  • 我有多少时间来实施?
  • 我的权力限制是什么?
  • 我需要什么数学运算?您最终可能需要大量并行乘法器,从而限制您的选择。
  • 我需要多少内存?(大多数 MCU 都是有限的)
  • [重要] 我的操作频率是多少?在保持低工作频率的采样期内,我可以挤入多少?
  • 哪些库可用于我选择的实现?

我将首先查看算法。例如,如果您需要大量 FFT 和 MAC 运算,您可能可以排除大多数微控制器,而更多地关注 DSP 内核。请记住,也有带有嵌入式 DSP 内核的 MCU。

另一个重要的考虑因素是您在实施领域的能力和专业知识。大多数人都回避 FPGA,因为您必须使用 HDL 来实现。回避 FPGA 的另一个原因是功率要求。

仅凭您提供的信息,选择可能是 ARM(简单 IIR 和 FIR),但还有其他因素需要考虑,例如电源要求、IO 要求、您希望实现的附加功能:如果使用此设备,您将节省多少开发时间有网络连接和 API 可以在现场修改 DSP 参数吗?

您是否考虑过将您的选择范围扩展到智能手机或 Beagle Board 等紧凑型计算机?您可能会意识到信号处理只是您要解决的整个问题的一小部分。