我有一个通用的工作功能,我将使用 GNU Radio 的历史功能。在块的构造函数中,我调用set_history( m )
. 我以标准方式转换输入缓冲区:
const float *in = (const float *) input_items[0];
我的问题是in[0]
缓冲区中的位置。对我来说,这noutput_items
是块要消耗的新项目的数量,ninput_items[0]
是指缓冲区中的数据总数。因此,in[noutput_items-1]
是数组的最后一个元素,in[0]
是新项目in[-m]
的开始, 是指历史块的开始。因此,ninput_items[0]
大于或等于m + noutput_items
。
我不知道这个假设是否正确,如果有人知道这是如何工作的,我会很高兴。GNU Radio API 在这方面有些模糊。提前致谢!