具有可变数量的intputs / outputs的GNU Radio块

时间:2016-03-02 16:42:46

标签: gnuradio

我目前正尝试使用自定义源块并行执行多个通道的信号处理。到目前为止,我创建了一个OOT源块,它只将一个通道的数据流式传输到一个输出中。

现在我正在寻找扩展此模块的方法,以便它可以并行支持更多数量的通道(=源块的输出;最多64个)。因为用于拉取样本的协议将它们全部拉到一个,所以不可能使用相同源块的更多实例。

到目前为止我找到的东西:

  • 一个pdf似乎已经解释了该做什么,但它似乎已经过时,并且GNU Radio不再支持此功能。
  • 将来应实施的功能的description

此问题是否有已知的解决方案或解决方法?

1 个答案:

答案 0 :(得分:4)

查看add块:它可以配置许多输入!

Two different input configurations of the add block

现在,这里的技巧有三个:

  1. io_signature定义为允许可调整数字的输入和输出。如果您使用gr_modtool add创建新版块,则io_signatures将填充<+MIN_IN+><+MAX_IN+><+MIN_OUT+><+MAX_OUT+>。调整这些以反映您的实际最小和最大输入和输出端口号。如果您想要1infinity输入,请使用1-1
  2. 在您的general_work方法中,通过执行ninputs = input_items.size()等操作检查输入数量,并通过noutputs = output_items.size()检查输出数量。< / LI>
  3. (可选,如果您要使用GRC)修改块GRC XML中的<sink> / <source>定义:

    <sink>
            <name>in</name>
            <type>complex</type>
            <nports>$num_inputs</nports>
    </sink>
    
  4. num_inputs可以是块参数; compare the add_XX block源代码。