GNU Radio官方教程系列(八):打包位(比特)

llium2026-06-23 14:29:11
2 浏览 0 评论

本教程介绍了如何使用 Pack K Bits 模块将位打包成一个字节,以及如何使用 Unpack K Bits 模块将一个字节解包成位。

上一篇教程 “数据类型转换 ”介绍了 字符型字节型 数据类型以及如何在数据类型之间进行转换。下一篇教程“ 流和向量 ”介绍了流和向量之间的区别以及如何在流程图中使用它们。

开始打包位流程图

比特 打包成一个字节对于表示二进制数据(而非数字化射频采样)以及使用调制器模块(例如 星座调制器GFSK 调制器OFDM 发射机 )都非常有用。创建一个新的流程图,并将 随机源 模块添加到工作区:

点击 “随机源” 。选中时会显示 浅蓝色 边框:

向上向下 键循环切换不同的数据类型,直到选中 字节 数据类型(以 紫色 输出端口颜色表示):

随机源生成的字节最小值为 Minimum ,最大值为 Maximum-1 。在本例中, Minimum = 0Maximum = 2 ,因此它将生成二进制 01。Pack K Bits 模块用于将多个比特并行化(或 打包 )到单个字节中,以表示更大的二进制值。

ThrottlePack K BitsChar to FloatQT GUI Histogram Sink 模块添加到流程图中并连接它们:

解释 K 位块的打包

Pack K Bits 块接收 K 位,并通过先填充最低有效位 (LSB) 将它们放入一个字节中。

在本例中, K=4随机源 首先生成比特 B 0 。该比特将被 数据包 K 位 接收,然后存储在最低有效位 (LSB) 中:

[0 0 0 0 0 0 0 B 0]

Pack K Bits 生成的第二个比特是 B 1 ,然后 Pack K Bits 根据以下方式存储它:

[0 0 0 0 0 0 B 1 B 0 ]

按照这个规律,接下来的比特 B 2B 3 将存储为:

[0 0 0 0 B 3 B 2 B 1 B 0 ]

下图展示了该模块的工作原理:

由于 0000B K=4 位已被打包,因此将输出字节 3 B 2 B 1 B 0 ,并开始一个新的字节。该字节的输出值(十进制)为:

= (B 3 *2 3) + (B 2 *2 2) + (B 1 *2 1) + (B 0 *2 0)

= (B 3 *8) + (B 2 *4) + (B 1 *2) + (B 0)

例如,如果:

  • B 0 =0
  • B 1 =1
  • B 2 =0
  • B 3 =1

该字节用 00001010 表示,其十进制值为:

8 + 0 + 2 + 0 = 10

完成 Pack K Bits 流程图

编辑 Pack K Bits 的属性:

  • K: 4

四位二进制数可以生成 0 到 QT GUI 顶部直方图接收器 4 2 之间的数字 -1=15 。编辑 属性,并更改以下内容:

  • 标题: 4 位
  • 垃圾箱数量: 1024
  • x 轴最大值: 16

四位二进制数可以生成 0 到 2 之间的数字 4 -1=15 。编辑 QT GUI 底部直方图接收器 属性,并更改以下内容:

  • 标题: 1 比特
  • 垃圾箱数量: 1024
  • x 轴最大值: 16

流程图应如下所示:

运行流程图。1 01 直方图显示值 4 位0 ,而 15 直方图显示值从

解包比特

解包操作会将一个 字节 序列化为一串比特。将 “解包 K 位” 模块添加到工作区,并将其连接在 “打包 K 位” 模块和 “字符转浮点数 ”模块之间。编辑 “解包 K 位” 模块的属性,并输入 K: 4

运行流程图。1直方图显示打包的 4 位被解包(序列化)回 01 的值:

解包过程从最低有效位 ( 最高有效位 (MSB) LSB) “打包 K 位” 开始,然后依次进行到 0000B 。在前面的示例中, “解包 K 位” 3 模块生成了一个字节,其位为 2 B 1 B 0 B BB 0 模块的输出结果首先是位 B 1 ,然后是位 B 2和 3 ,字节中剩余的 4 个零位将被忽略。

连接模块:

QT QUI 时间接收器显示输出:

单击鼠标左键并拖动鼠标,即可放大查看:

这两个图完全重合。 “解包 K 位” “打包 K 位” “打包 K 位” 模块的输入与 “解包 K 位”模块 模块的输出完全相同。这表明解包打包 执行的是完全相反的操作。

下一个教程 “流和向量 ”介绍了流和向量之间的区别,以及如何在流程图中使用它们。


全部回复 (0)

0 / 1000
请遵守社区规范
暂无评论,快来抢沙发吧~
l

lium

社区创作者

帖子信息

所属板块GNU Radio
发布时间2026-06-23 14:29:11
2浏览
0点赞
0评论