初级教程(2)流程图基础7-流(Streams)和向量(Vectors)

7.流(Streams)和向量(Vectors)

本教程介绍StreamVector之间的区别。

上一教程Packing Bits描述了如何将位流打包为bytechar数据类型,然后将它们解包回位流。下一个教程Hier Blocks and Parameters演示了如何创建Hierarchical Block和使用Parameters

目录

流(Streams)

GNU Radio 中的块可以使用(Streams)或向量(Vectors)连接。流为每个时间实例携带 1 个样本产生序列化数据。流必须具有数据类型,例如Float 32或Byte

Signal Source模块生成Complex Float 32 流(Streams)。每个时间实例的块输出包含 1 个复数样本:

SignalSourceStreamExample.png

该图显示每个时间实例都有一个复杂的样本。

向量 (Vectors)

向量(Vectors)每个时间实例携带多个样本。向量(Vectors)并行表示数据。流(Streams)表示每个时间实例的标量向量表示每个时间实例的数组。

GRC 使用较浅的颜色表示,使用较深的颜色表示矢量输出:

StreamVectorDarkerColors.png

Streams to Vectors 流图示例

以下示例描述了如何将流转换为向量并返回流。两个复杂的正弦曲线流被转换为一个二元向量,显示出来,然后被转换回它们的两个独立的流。

将两个Signal Source模块添加到工作区:

TwoSignalSourceBlocks.png


编辑第二个信号源 的参数,使其频率为 100,幅度为 0.1,以便在视觉上与第一个信号源区分开:

ChangeFrequencyAmplitudeSignalSource.png

单击“确定”接受参数。

搜索Streams to Vector块,将其拖到工作区并将其连接到Signal Source块:

连接流到矢量.png

Streams to Vector块充当交织器。Streams to Vector块从in0端口获取样本并将其放入输出向量的第一个元素中。Streams to Vector块从in1端口获取样本并将其放入输出向量的第二个元素中。Streams to Vector块将两个串行输入组合成一个二维矢量输出

搜索Vector to Stream块并将三个QT GUI Time Sink块添加到流程图:

InterleavedSignalSourceWithTimeSinks.png

Vector to Stream块会将向量序列化为流。Vector to Stream输出的样本将被交错。


编辑三个QT GUI Time Sink块 的标题,以便彼此区分。首先,编辑连接到频率为 1000 和振幅为 1 的信号源的块,使其标题为信号源 A

TimeSinkAProperty.png
SignalSourceATimeSink.png


现在编辑连接到频率为 100、幅度为 0.1 的第二个信号源的QT GUI Time Sink,使其标题为Signal Source B

TimeSinkBProperty.png
SignalSourceBTimeSink.png


最后,编辑连接到Vector to Stream块的QT GUI Time Sink,使其标题为 Interleaved Signal Sources

TimeSinkInterleavedProperty.png
InterleavedSignalSourceTimeSink.png


运行流程图会显示三个时间接收器,Signal Source ASignal Source BInterleaved Signal Sources交错信号源时间接收器显示来自信号源 A信号源 B的交错样本:

TimeSinkSignalSources.png

Vector to Streams 流程图示例

以下示例对矢量化数据进行解交错(或序列化),将其转换回两个流。

搜索Vector to Streams块,将其添加到工作区,并将其连接到Streams to Vector块:

AddVectorToStreamsBlock.png


Vector to Streams块反序列化矢量样本并将它们转换为流,执行与Streams to Vector块相反的操作。

右键单击并删除将两个信号源块连接到QT GUI Time Sink块的箭头:

删除TimeSinks.png


将两个QT GUI Time Sink块移动并重新连接到Vector to Streams输出:

ReconnectedTimeSinks.png


运行流程图。向量化样本已被分离回两个流:

反序列化TimeSink.png


下一个教程Hier Blocks and Parameters演示了如何创建Hierarchical Block和使用Parameters

发表回复 0

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