GNURadio模块学习——Source和Sink类,如何为?
摘要:介绍GNU Radio中常见的 Source 与 Sink 模块,包括流程图端口、音频输入输出、虚拟连接、文件读写、ZMQ跨流程图通信,以及随机信号源、固定信号源、噪声源等常见信号源和时域、频域、星座图等信号展示工具。
Source and Sink
Pad(流程图端口)
当该流程图是hierarchical block时,使用Pad Source与Pad Sink来标识整体流程图的输入与输出端口。例如。
Audio(麦克风与扬声器)
Audio Source,表示麦克风,可选耳机、电脑麦克风阵列等作为麦克风输入。
Audio Sink,表示扬声器,可选耳机、扬声器等作为扬声器输出。
Virtual(虚拟输入输出)
该模块的目的是,将一副流程图整理清晰,分功能呈现,或为了理线。
Virtual Source:虚拟输入,与虚拟输出一同使用(需ID一致),用来连接流程图中两个相隔较远的模块,美化流程图。
Virtual Sink:虚拟输出,与虚拟输入一同使用(需ID一致),用来连接流程图中两个相隔较远的模块,美化流程图。例如。
File(文件读写)
File Source:文件输入,该模块可读取文件内容。
File Sink:文件输出,该模块可向文件写入内容。
ZMQ(跨流程图虚拟输入输出)
该组模块的目的是仿真,可在发射流程图使用Sink充当硬件发射器,在接收流程图使用Source充当硬件接收器。
flowchart LR
n1["ZMQ PUB Sink"] --> n2["ZMQ SUB Source"]
n3["ZMQ PUSH Sink"] --> n4["ZMQ PULL Source"]
ZMQ PUB Sink:将Stream传入ZMQ PUB套接字。
ZMQ SUB Source:在ZMQ SUB套接字和原始Stream上接收内容。该模块将连接ZMQ PUB套接字,然后将接收到的消息传输出去。
ZMQ PUSH Sink:将Stream传入ZMQ PUSH套接字。
ZMQ PULL Source:在ZMQ PULL套接字和原始Stream上接收内容。该模块将连接ZMQ PUSH套接字,然后将接收到的消息传输出去。
Source
Random Source(随机信号源)
该模块将产生一个随机数字信号流,类型可自定,例如byte类型。
最小值与最大值可自定,例如0-4(不包含最大值)。
数量(Num Samples)可自定,例如1000。
若设置类型为byte,范围为0-4,数量为1000,则会产生一个Stream,该Stream长度为1000,每个样本是一个byte,该byte的值为0-4(不包含4),即字节的高6位均为0,低2位随机变化。
Vector Source(确定信号源)
该模块将产生一个固定数字信号流,类型可自定,例如byte类型。
该Stream的每个样本的值可自定,例如(1,20,63,12)。注意:byte类型单个元素大小不应超过255(小于等于255)。
Noise Source(噪声源)
该模块将产生一个随机噪声模拟信号流,类型自定。
Sink
分散图
描述
模块名称
模块描述
时域图
QT GUI Time Sink
展示信号时域图
频谱图
QT GUI Frequency Sink
展示信号频谱图
瀑布图
QT GUI Waterfall Sink
展示信号瀑布图
星座图
QT GUI Constellation Sink
展示信号星座图
整合图
QT GUI Sink:将时域图、频谱图、瀑布图、星座图四合一,如图。
