一起玩转GNU Radio:gr-analog

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本文介绍GNU Radio源码的gr-analog相关实例及模块。

目录

一、 noise_power

1、Noise Source模块

2、Fast Noise Source模块

3、Throttle模块

4、Complex to Mag^2模块

 5、Abs模块

 6、Single Pole IIR Filter模块

7、Log10模块

8、QT GUI Number Sink模块

二、Signal source message ports

1、Message Strobe模块

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模块

Noise Source - GNU Radio

该模块是噪声源模块,是通过使用高斯或均匀分布来生成“噪声”信号,支持complex、float、int或short类型的数据输出。

模块参数解释如下:

Noise Type,随机分布类型,支持高斯分布、均匀分布、拉普拉斯分布和冲激分布。

Amplitude,噪声信号振幅,表示一维噪声的标准差,如果噪声源是复数噪声源,则该参数需分配为实部和虚部。

Seed,随机噪声生成器的种子,对于均匀分布和高斯分布,该种子取值应该是一个负数。

2、Fast Noise Source模块

Fast Noise Source - GNU Radio

该模块是快速噪声源,与Noise Source模块相比,不同之处在于它通过预先生成从指定分布中提取的随机变量来减少CPU的负载。该模块在运行时,从样本资源池中均匀地随机选择样本,这是一个非常快速的操作。支持complex,float,int或short类型的数据输出。

模块参数解释如下:

Noise Type,随机分布类型,支持高斯分布、均匀分布、拉普拉斯分布和冲激分布。

Amplitude,噪声信号振幅,表示一维噪声的标准差,如果噪声源是复数噪声源,则该参数需分配为实部和虚部。

Seed,随机噪声生成器的种子,对于均匀分布和高斯分布,该种子取值应该是一个负数。

Variate Pool Size,可变池大小,表示预生成样本的数量。

3、Throttle模块

Throttle - GNU Radio

该模块是节流器模块,用来控制纯仿真流图的数据流量,以使平均数据速率不超过特定速率(即采样率,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模块

Abs - GNU Radio

该模块计算输入数据流的绝对值,仅支持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模块

Log10 - GNU Radio

该模块的输出值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模块

Message Strobe - GNU Radio

该模块以自定义的时间间隔发送消息。接收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),分布的标准差。

三、有用链接

Noise Source - GNU Radio

Fast Noise Source - GNU Radio

Throttle - GNU Radio

https://wiki.gnuradio.org/index.php/Complex_to_Mag^2

Abs - GNU Radio

Single Pole IIR Filter - GNU Radio

Log10 - GNU Radio

QT GUI Number Sink - GNU Radio

Message Strobe - GNU Radio

Message Strobe Random-Delay - GNU Radio

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值