从零开始USRP 02 一些基本的GNU Radio操作

上一集:环境搭建以及小demo

继续学习:https://blog.csdn.net/YOUNGAAAAA/article/details/128098154

我们可以先简单创建一个USRP图:

 

 但是这个图目前是跑不了的,因为:

RuntimeError: LookupError: KeyError: No devices found for ----->
Empty Device Address

>>> Done (return code 1)

这里我暂时先不求甚解,就是说我没有硬件的话,软件是没办法给我模拟自发自收的是吧?

我们先简单讲一下搭了一个什么东西:首先,我们做了两个信号源,都是正弦信号,但是二者的频率不同,我们把这两个信号做乘法,得到一个输出,然后希望用一个USRP设备将这个输出发射出去,并用另一个USRP设备接收这个输出,从而显示在GUI上。

问题就在这个发射接收的过程,我应该是通过硬件来做的,对吧?软件应该是模拟不了这个东西,所以一直提示我找不到设备,因为我手头没有USRP设备,设备在清华。

 

Boulogeorgos实例章节一

本来其实是CPP自定义模块,但是作者曰:这一部分建议先看完GRC Boulogeorgos实例程序分析后再回过来看这个,就会清楚一些。

OK,那我就来看看什么是boulogeorgos

实例一:添加不同类型的布尔操作

 

 比如我这里加了一个与门,那么结果就是0和1必须全部为1(黑色)的时候,2才能是黑色。

哦对了,与此同时,要注意一点,即Random Source只能生成int、short和byte,因此IO要对齐的话,throttle和number sink都要调整输入输出,保持一致才能跑通。

这个问题我遇到了(小白才会遇到):https://dsp.stackexchange.com/questions/74926/source-io-size-8-does-not-match-sink-io-size-4

 

 

 

实例2:添加数学操作(加法举例):

 

 这里接了一个向量源,这个可以产生自己定义的数据,即放在一个vector里面,可以选择输出一组这个vector,也可以选择repeat输出这组向量。当然,0,0,0只是一个例子,你大可以如此定义:

 

 Tag Strobe,据说是用于添加标签,可以看一下维基百科对它的解释:

 

 就是说,这个Tags Strobe会给source打上tag,我们运行一下就能看到:

 

 具体在哪打的,其实是按照间隔来的,我上面设置的是50,如果设置为1呢?

那就是每个数据后面都会被打上tag:

 

 这个功能一般仅仅用来测试而已哈。

 然后就是说Keep1inN,或者KeepMinN。前者是保留每M段的最后一项,后者是保留N项。

打个比方:

我们输入使用一个向量:

 

 然后设置两个N均为4,其中一个保留最后一位(-1),另一个保留最后两位(都是负数),第三个我们保留所有的序列不做处理。但是有一点需要注意,即keep1inN,keep的是最后一位数,即the last one,但是keepMinN中keep的却是offset之后的数字,即如果想实现保留后两位,要调整一下offset从2之后keep。

 

  结果如下:

 

 与此同时我们还可以让窗口中对输入信号可选择:

 

 

 

 实例3:画出一组数据的直方图

 

 带着uniform的是平均分布的信号源,如果不带uniform,生成的是正态分布的数据源。结尾是一个立方图显示的组件。

 

再往后,讲了一下滤波器,高通低通带通带阻都可用。

但其中一个很厉害的东西就是,可以直接调用GNU的API组件,比如带通滤波器:

https://www.gnuradio.org/doc/doxygen/classgr_1_1filter_1_1firdes.html#ade3a7c3157b9c10f25c4608b414994de

直接把API copy过来就可以用,比如我连一个:

 

 我用一个变量来保存我的滤波器的效果:firdes.complex_band_pass_2(1, 1, -0.1, 0.4, 0.01, 80, firdes.WIN_BLACKMAN_hARRIS)

 

 然后我们就可以实现一个带通滤波:

 

 然后更改变量,就可以更改自己的filter的效果了。

当然,与此同时,GNU里还定义了很多组件filter可以实现上述效果:

 

 

此外还有一些其他的组件,比如选择器、AGC、AM调制这些东西。

考虑到我现在的重点应该是USRP而不是信号处理,因此这些实验部分太过于复杂的就先停留在“知道”层面了,剩下的实验可以看:https://blog.csdn.net/YOUNGAAAAA/article/details/128068615

好的,我们看下一集:USRP从零开始第三集

 

posted @ 2023-04-03 20:27  爱和九九  阅读(661)  评论(0编辑  收藏  举报