本文内容、所用开发板、配件等仅限与研发和学习使用,如有侵权,请联系我们进行删除!
目录
2、方式二:使用gr_modtool添加python定义的OOT block
3、方式三:使用gr_modtool添加C++定义的OOT block
一、概要
OOT模块是指Gnuradio中并不包含的模块资源,用户根据需求自己定义来制作。编写OOT模块的方法多种,下面用简单的例子分别进行介绍。
二、实验环境
ubuntu 20.04 ; gnuradio 3.8 ; uhd 4.1.0
三、实验内容
下面以自定义一个2倍乘法器的grc oot block,即将输入的每个数据值都乘以2为例,简单介绍一下如何生成OOT block。
1、方式一:grc 中直接添加“Python Block”
打开gnruadio,在右边的模块搜索栏中直接搜索“Python Block”,然后添加到流图中。然后双击该模块,并对代码进行自定义的修改。
import numpy as np
from gnuradio import gr
class blk(gr.sync_block): # other base classes are basic_block, decim_block, interp_block
def __init__(self): # only default arguments here
gr.sync_block.__init__(
self,
name='mult_2_grc',
in_sig=[np.complex64],
out_sig=[np.complex64]
)
def work(self, input_items, output_items):
"""example: multiply with 2"""
output_items[0][:] = input_items[0] * 2
return len(output_items[0])
2、方式二:使用gr_modtool添加python定义的OOT block
打开终端,收入一下命令,使用gr_modtool创建一个molude,即许多blocks的集合目录,然后进入该目录中,添加一