【问题标题】:Multichannel signal processing: Thread architecture [closed]多通道信号处理:线程架构 [关闭]
【发布时间】:2018-09-26 09:08:57
【问题描述】:

我质疑我最初对多通道信号处理架构的想法。

这很简单:有一个源和一个接收器,有 X 个通道和不同的处理步骤(分组),必须应用于每个通道(具有相同的设置和相同的顺序)。

最后,所有通道都必须在接收器处再次同步。

对于多线程多通道架构,我提出了两种可能的解决方案:

  1. 按渠道分组

    • 每个通道的处理完全分开
    • 处理组与每个通道的一个队列相连
    • 优点
      • 由于通道同步而减少线程阻塞
      • 不需要用于通道合并的数据结构
    • 缺点
      • 更多队列
  2. 过程分组

    • 通道在每个处理组之前合并
    • 处理组只与所有通道的一个队列相连
    • 优点
      • 队列更少
      • 通道在所有处理组中同步
    • 缺点
      • 需要合并和拆分
      • 用于合并所有必要渠道的数据结构

您对这些解决方案有何看法?我忘记了优点/缺点吗?哪种解决方案更实用?有没有更合适的解决方案?

【问题讨论】:

  • 嗨,像这样的基于意见的问题在 Stack Overflow 上是题外话。请查看help center,了解您应该在这里提出哪些问题。
  • @TylerH 我不认为这是基于意见的问题,因为问题是关于更正确的使用方式。这是关于系统运行时间和性能,而不是理论问题。
  • @KorelK “正确的方法”是多种方法起作用时的意见; OP 提出多个意见问题,包括字面意思是询问我们对此的意见。即使您的回答说“这取决于”,也没有提供具体客观的“正确”方式。

标签: multithreading architecture queue signal-processing


【解决方案1】:

您看,确实,在第二种方式中,您的队列更少,但您仍然存储相同数量的数据,并且您对其执行更多操作,这会花费您的处理时间。对于队列的架构,您可以简单地使用队列数组,在所有通道的数据处理结束时,您可以合并它们并存储结果或对它们做任何您想做的事情。

但这取决于您使用的系统类型 - 实时,每次拆分/合并都可能花费您大量时间,或者单次接收,然后您不必过多关注处理时间。如果是单次接收系统——你可以做任何对你来说更容易的事情——编程时间也很重要。

希望对您的决定有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多