我有一个通用的工作功能,我将使用 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 在这方面有些模糊。提前致谢!