GNU Radio官方教程系列(六):信号数据类型
本教程介绍了可用于表示信号的数据类型。
本节使用 “第一个流图” 中的初始流程图,请先完成该教程再继续。下一个教程 “数据类型转换 ”将介绍如何在不同的数据类型之间进行转换。
数据类型
每个模块上的输入和输出端口都关联着一种数据类型。数据类型通过输入和输出端口的颜色来标识。您可以通过打开 GNU Radio Companion (GRC) 并单击 “帮助”>“类型 ”来找到 GNU Radio 数据类型。


窗口显示数据类型及其对应的颜色:


这些颜色对应于 GRC 中模块的 输入和输出端口 。
GNU Radio 数据块中最常见的数据类型是 蓝色 的 Complex Float 32 和 橙色 的 Float 32。 其他颜色包括 黄色 的 Integer 16 (或 short )数据类型和 紫色的 Integer 8 (或 char )数据类型。


复杂数据类型
下面的流程图使用了 Complex Float 32 数据类型,它使用一对 32 位浮点数来表示复杂样本的实部和虚部。
![]()

运行流程图后,将显示时域中的复杂信号,其中 信号 2 信号 1 为复杂信号的实部, 为复杂信号的虚部:
![]()

因此,每个复数样本都是 64 位:一个 32 位浮点数表示实部,一个 32 位浮点数表示虚部。
浮点数据类型
许多 GNU Radio 模块支持多种数据类型。双击 信号源 模块,然后从 “输出类型” 下拉菜单中选择,即可更改其数据类型:
![]()

选择 浮点 数据类型后, “信号源” 模块将生成一个实数正弦波,由 橙色 输出端口表示。请注意,连接 “信号源” 和 “油门” 的箭头为 红色 ,表示数据类型不匹配错误:
![]()

通过将所有其他块转换为 橙色的 浮点 数据类型来解决此错误。单击该块即可选中它,并以 浅蓝色高亮 显示。可以通过按键盘上 向下箭头 的向上 或 键来更改数据类型:
![]()

当所有数据类型都转换为 浮点数 后,流程图就完成了:
![]()

信号源 模块会生成一个实数输出,该输出在时域中显示为唯一的信号:
![]()

下一个教程 “数据类型转换 ”将展示如何在不同的数据类型之间进行转换。最终,我们将学习向量流,这是 “流和向量” 教程的一部分。
全部回复 (0)
lium
社区创作者
