本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍GNU Radio源码的gr-analog相关实例及模块。
目录
2、Message Strobe Random-Delay模块
一、 noise_power
GRC文件为《gnuradio-3.9.1.0\gr-analog\examples\noise_power.grc》。该流图的主要功能是实现了噪声信号的功率强度测量,具体用到了Noise Source、Fast Noise Source、Throttle、Complex to Mag^2、Abs、Single Pole IIR Filter、Log10、QT GUI Number Sink模块。
1、Noise Source模块
该模块是噪声源模块,是通过使用高斯或均匀分布来生成“噪声”信号,支持complex、float、int或short类型的数据输出。
模块参数解释如下:
Noise Type,随机分布类型,支持高斯分布、均匀分布、拉普拉斯分布和冲激分布。
Amplitude,噪声信号振幅,表示一维噪声的标准差,如果噪声源是复数噪声源,则该参数需分配为实部和虚部。
Seed,随机噪声生成器的种子,对于均匀分布和高斯分布,该种子取值应该是一个负数。
2、Fast Noise Source模块
该模块是快速噪声源,与Noise Source模块相比,不同之处在于它通过预先生成从指定分布中提取的随机变量来减少CPU的负载。该模块在运行时,从样本资源池中均匀地随机选择样本,这是一个非常快速的操作。支持complex,float,int或short类型的数据输出。
模块参数解释如下:
Noise Type,随机分布类型,支持高斯分布、均匀分布、拉普拉斯分布和冲激分布。
Amplitude,噪声信号振幅,表示一维噪声的标准差,如果噪声源是复数噪声源,则该参数需分配为实部和虚部。
Seed,随机噪声生成器的种子,对于均匀分布和高斯分布,该种子取值应该是一个负数。
Variate Pool Size,可变池大小,表示预生成样本的数量。
3、Throttle模块
该模块是节流器模块,用来控制纯仿真流图的数据流量,以使平均数据速率不超过特定速率(即采样率,samples per second, sps)。当我们的流图中不使用任何SDR设备、电脑的扬声器或麦克风的时候,进行纯仿真的时候,我们才需要使用该模块。该模块并不是用来规定采样率的,而是用来限定纯仿真流图的平均数据速率,避免仿真流图消耗电脑过多资源。节流模块通常直接作为非硬件源模块(例如信号源模块)的输出模块,以限制信号源模块的数据速率。
模块参数解释如下:
Sample rate,平均采样率的最大既定取值。
Ignore rx_rate tag,如果设置为False,则该块将使用rx_rate的值将其采样率设置为已接收标签的值,并忽略其他标签取值。
4、Complex to Mag^2模块
https://wiki.gnuradio.org/index.php/Complex_to_Mag^2
该模块计算输入数据的幅度,并求平方值,该模块支持向量数据操作。
5、Abs模块
该模块计算输入数据流的绝对值,仅支持float,int和short类型,不支持complex类型。
6、Single Pole IIR Filter模块
Single Pole IIR Filter - GNU Radio
该模块的输入和输出数据满足差分方程y [n]-(1-alpha)y [n-1] = alpha x [n],对应的有理系统函数为H(z)= \ frac {alpha} {1-(1-alpha)z ^ {-1}}。
7、Log10模块
该模块的输出值output和input满足关系式:output = n*log10(input) + k。该模块仅支持处理float类型输入和输出数据。该模块通过为每个样本使用float32数字的样本之间的最大值和最小正值来处理空样本和负样本。
模块参数解释如下:
N,标量乘法常数。
vlen,输入向量长度。
K,标量加法常数。
8、QT GUI Number Sink模块
QT GUI Number Sink - GNU Radio
该模块实现在简单的文本框GUI中以数字形式或者可选的条形图显示数据流的功能。该模块显示的数值可以是输入数据的平均值。在这种情况下,所有接收到的数值均应为平均值。如果不是平均值,则基于该模块的更新时间对输入数据流中的数值进行采样。由于目前在具体实现中的缺陷,该模块无法接收整数型输入数据。如果输入数据为整数型,则该模块将其视为浮点型。该模块支持char,short和float,并通过将构造函数的itemsize设置为这三个值(分别为sizeof_char,sizeof_short和sizeof_float)之一来正确转换它们,并将整数输入数据流通过Int To Float模块实现数据转换。
二、Signal source message ports
GRC文件为《gnuradio-3.9.1.0\gr-analog\examples\sig_source_msg_ports.grc》。该流图实现了信源消息打印功能,可帮助调试测试。
1、Message Strobe模块
该模块以自定义的时间间隔发送消息。接收PMT类型消息并每毫秒发送一次。这对于测试/调试消息系统很有帮助。
模块参数解释如下:
Message PMT,以PMT形式发送的消息。
Period (ms),发送消息的时间周期(以毫秒为单位)。
2、Message Strobe Random-Delay模块
Message Strobe Random-Delay - GNU Radio
该模块实现以随机间隔发送消息的功能。该模块接收PMT数据类型消息,并每隔随机间隔将其发送出去。该间隔基于随机分布,用户可指定均值和方差。
模块参数解释如下:
Message PMT,以PMT形式发送的消息。
Distribution,随机分布类型,支持泊松分布、均匀分布和高斯分布。
Mean(ms),分布的平均值。
Std(ms),分布的标准差。
三、有用链接
https://wiki.gnuradio.org/index.php/Complex_to_Mag^2
Single Pole IIR Filter - GNU Radio