gnuradio:输入和输出项的长度与基本块的Forecast()中设置的不同

时间:2018-12-22 14:26:01

标签: python gnuradio

我一直在努力了解gnuradio。

我正在尝试实现一个简单的OOT模块,该模块为每个输入项生成两个输出项(基本上是一个插值块。我知道我可以使用插值块而不是基本块。但是出于理解的目的,我尝试使用基本块)。

对于传递给general_work()函数的输入项和输出项的数量,我看到一些奇怪的行为。

我从显示的代码中打印出in0和out0的长度。这两个项目似乎具有相同的长度。但是,如果您看到输入项目的长度,则应该是根据Forecast()的一半。

我尝试按照代码所示放置调试打印。

import numpy
from gnuradio import gr

class spline_resampler_fff(gr.basic_block):
    """
    docstring for block spline_resampler_fff
    """
    def __init__(self, interpolation=1, decimation=1):
        gr.basic_block.__init__(self,
            name="spline_resampler_fff",
            in_sig=[numpy.float32],
            out_sig=[numpy.float32])
        self.interpolation = interpolation
        self.decimation = decimation
def forecast(self, noutput_items, ninput_items_required):
    for i in range(len(ninput_items_required)):
        ninput_items_required[i] = noutput_items / 2

    print("forecast", noutput_items, noutput_items / 2)

def general_work(self, input_items, output_items):
    in0 = input_items[0]
    out0 = output_items[0]

    print("work input_items", len(input_items))
    print("work output items", len(output_items))
    print(len(in0))
    print(len(out0))

    i=0
    j=0
    while i < len(in0):
        out0[j] = in0[i]
        out0[j+1] = in0[i]*2
        i = i+1
        j = j+2


    self.consume(0, len(in0))

    return len(in0)


>>>> snippet of debug prints from the above code
    ('forecast', 8192, 4096)
    ('forecast', 4096, 2048)
    ('forecast', 2048, 1024)
    ('forecast', 1024, 512)
    ('forecast', 512, 256)
    ('forecast', 256, 128)
    ('forecast', 128, 64)
    ('forecast', 64, 32)
    ('forecast', 32, 16)
    ('forecast', 16, 8)
    ('forecast', 8, 4)
    ('forecast', 4, 2)
    ('forecast', 2, 1)
    ('work input_items', 1)
    ('work output items', 1)
    0
    0
    ('forecast', 8192, 4096)
    ('work input_items', 1)
    ('work output items', 1)
    8192                -----> length of input_items[0]
    8192                -----> length of output_items[0]

这里的任何帮助都会非常有帮助。

下面是我遵循的参考文献:

致谢

0 个答案:

没有答案