初级教程(2)流程图基础8-层次块和参数

8.层次块和参数

本教程介绍如何在 GRC 中创建层次块或层块

之前的教程Streams 和 Vectors描述了StreamsVectors之间的区别。下一个教程,创建您的第一个块,描述了如何使用嵌入式 Python 块在 GNU Radio 中创建一个信号处理块。

内容

创建初始流程图

层次块用作包装器以将多个 GNU Radio 块简化为单个块。示例层次块将是一个移频器块,它将信号源与输入信号相乘。

FrequencyShifterBlock.png


第一步是创建流程图。将以下块拖放到工作区中:

  1. 信号源
  2. 噪声源
  3. 低通滤波器
  4. 风门
  5. QT GUI频率接收器
  6. QT 图形用户界面范围

连接块:

StartingFlowgraphHierBlock.png

更新QT GUI 范围属性:

  • ID:频率
  • 默认值:0
  • 开始:-samp_rate/2
  • 停止:samp_rate/2

更新低通滤波器属性:

  • 截止频率 (Hz):samp_rate/4
  • 过渡宽度 (Hz):samp_rate/8

创建层次块

在工作区窗口中单击并拖动以选择Signal SourceMultiply块,包括它们之间的连接:

单击并拖动选择.png


右键单击突出显示的块并选择More > Create Hier

点击CreateHier.png


在新的 GRC 选项卡中创建流程图:

NewHierBlock.png


双击选项块并编辑属性:

  • 编号:移频器
  • 标题:移频器块
  • 生成选项:层次块
OptionsSelectHierBlock.png 选项

其余属性将发生变化,显示类别

显示 GRCHierBlocksCategory.png

Category是 GRC 右侧的块库中可以找到块的位置hier 块将位于GRC Hier Blocks下,而不是其余 GNU Radio 块所在的 Core 。

保存流程图。

变量与参数

变量不同于GNU Radio 中的参数参数为层次块创建一个接口以接受来自外部源的值,而变量仅存在于层次块内部:

HierBlockParameterVariable.png


例如,samp_rate变量只能从hier 块中访问:

HierBlockWithVariable.png


samp_rate需要转换为参数,以便它可以从更大流程图中的另一个块更新删除samp_rate变量并将参数块添加到 GRC 工作区中:

AddParameterToHierBlock.png


编辑参数属性:

  • ID:samp_rate
  • 标签:采样率
  • 类型:浮动
编辑参数属性.png


添加第二个参数

  • ID:频率
  • 标签:频率
  • 类型:浮动
编辑频率参数属性.png

频率参数添加到信号源频率属性:

AddFrequencyToSignalSourceProperties.png

流程图应如下所示:

HierBlockSampRateFrequencyParameters.png

输入和输出端口

焊盘用于指定层次块上的输入和输出端口在流程图中添加Pad SourcePad Sink作为输入输出端口

AddPadSourcePadSink.png

生成层次块代码

单击生成流程图以创建层次块源代码:

单击生成流程图.png


将创建 Python .py文件和 YAML .yml文件。对于 GNU Radio v3.8,文件将在您的主目录中创建:

/home/$USER/.grc_gnuradio/
HierBlockPyYml.png

对于 GNU Radio v3.10,文件将在保存.grc文件的目录中创建。请创建.grc_gnuradio目录并将.py.yml文件复制到那里:

$ mkdir /home/$USER/.grc_gnuradio
$ cp FrequencyShifter.block.yml /home/$USER/.grc_gnuradio/
$ cp FrequencyShifter.py /home/$USER/.grc_gnuradio/

GRC 需要先更新块的内部列表,然后才能在流程图中使用Frequency Shifter块。单击重新加载块按钮:

点击ReloadBlocks.png


Core下面的块库中 新增了一个类别GRC Hier BlocksFrequency Shifter Block可以在流程图中使用:

CoreCategoryOnly.png
GRCHierBlocksUpdated.png

使用等级块

层次块现在可以在流程图中使用。返回起始流程图并删除Signal SourceMultiply块:

DeleteSignalSourceMultiplyBlock.png


Frequency Shifter Block添加到工作区并将其连接到流程图的其余部分:

ConnectFrequencyShifterBlock.png


通过添加samp_rate频率变量来 编辑Frequency Shifter Block属性:

EditFrequencyShifterProperties.png


运行流程图将调出带有QT QUI Range滑块的QT GUI Frequency Sink窗口:

HierBlockFreqSink.png


拖动频率滑块会将值传递给Frequency Shifter Block参数,从而修改信号的中心频率:

HierBlockFrequencyShift.png

删除一个等级块

通过从/home/$USER/.grc_gnuradio.

在终端中,移动到.grc_gnuradio目录:

cd /home/$USER/.grc_gnuradio

然后删除文件。

警告!命令rm不可撤销!

对于 GNU Radio v3.8,删除命令是:

rm FrequencyShifter.py FrequencyShifter.py.block.yml
删除层级块命令.png

对于 GNU Radio v3.10,删除命令是:

rm FrequencyShifter.py FrequencyShifter.block.yml

单击Reload Blocks按钮更新 GRC 的块内存,清除Frequency Shifter块:

点击ReloadBlocks.png


GRC Hier Blocks类别被删除,只保留Core blocks:

CoreCategoryOnly.png


下一个教程,创建您的第一个块,描述了如何使用嵌入式 Python 块在 GNU Radio 中创建一个信号处理块。

发表回复 0

Your email address will not be published. Required fields are marked *