请问GNUradio 如何实现float输出采样成变量?

新手上路,请多包涵

问题描述

我想要通过GNUradio和PlutoSDR实现FM自动扫频接收,接收信号经过threadhold已经变成了只有0和1的float类型输出,我想把float转成变量以便和其他变量做逻辑运算。但是gnuradio没有相关模块可以实现这个功能。

问题出现的平台版本及自己尝试过哪些方法

Ubuntu 22.10
GNUradio 3.3.8
Python3
我尝试通过python block 获取输入 然后return,再用function probe获取输出,采样率采用过10,48k,250k。

输出结果

按理应该是获得门限输出,但是实际上在运行1s后会卡住,然后终端会输出很多O。

阅读 2.2k
1 个回答

用Python Block将float类型的数据转换为变量

class float_to_var(gr.sync_block):
    def __init__(self):
        gr.sync_block.__init__(
            self,
            name='float_to_var',
            in_sig=[numpy.float32],
            out_sig=[numpy.float32]
        )
        self.variable = 0

    def work(self, input_items, output_items):
        in0 = input_items[0]
        out = output_items[0]
        # 对每个输入样本进行处理
        for i in range(len(in0)):
            # 更新变量
            self.variable = in0[i]
            # 这里我们只是简单地将输入复制到输出
            out[i] = in0[i]
        return len(output_items[0])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题