根据作者开源的grc例程,进行usrp的学习
Alexandros-Apostolos A. Boulogeorgos在github上分享了大量的实例,很全面也很好用,一共有9个章节,每个章节有很多例子,将总结一些经典的分享给大家。
该作者的github链接https://github.com/aboulogeorgos/Wireless-communication-systems-Lab
gnuradio grc关于组件的介绍真的很少,但是这个作者的例程还是很详细,很值得学习。
1.第一章一些基本元件的用法,如与或非门,滤波器,选择器
1.1
两个随机信号源输出的是int信号,进行and运算,throttle只为了仿真的时候将采样速率限制在1M,防止占用CPU太多资源。
Random Source模块:产生num sample采样率的[min, max)幅度的信号。
其他bool元件同理使用。bool元件只支持int,byte,short类型的数据,所以输入的信号一定要匹配。
1.2 math operations
vector source可以产生自己定义的信号,其采样率一般和全局定义的采样率相关,tags strobes用于添加标签,采样率为50,两者进行相加,
keep 1 in N可以相当于对信号进行抽取,功能decimate a stream, keeping the last item out of every 。
math operators还有很多逻辑器件,如下所示可以使用。
该图中内容为两信号源相加,右上角的QT GUI chooser是表示在QT GUI 界面产生的下拉框,可以通过下拉框选择对应的变量,在图中改变的是产生波形的种类。如下所示。
1.3
图中值得注意的两个组件,信号源是随机均匀分布信号源,之前的不带uniform的信号源是产生正态分布信号。最后的组件是GUI直方图,显示各个点分布的概率。
1.4 滤波器
组件里fir滤波器都可以使用Decimating_FIR_Filter这个组件来实现,但是操作起来比较麻烦,要调用GUN的API组件,网址如下
https://www.gnuradio.org/doc/doxygen/classgr_1_1filter_1_1firdes.html#ade3a7c3157b9c10f25c4608b414994de
比如图中的带通滤波器,就是使用Decimating_FIR_Filter组件,然后通过variable变量生成相关的API参数写入,当然也可以直接写入,variable就是全局变量的意思。
下面放入几个常用的API,
上图中的带通滤波器用的是
注意其中high_cutoff_freq不能超过采样率的一半,奈奎斯特采样定理。
低通:
高通:
带通:
带阻:
带complex的就是输入可以是complex信号(带IQ两路的信号),但是只有带通和带阻组件,我觉得可以设置频率也可以得到低通和高通的效果,没带的一般输入都是float。
rrc根升余弦滤波器
firdes:win_type如下,选择合适的窗函数即可。
滤波器除了上述的用fir fliter外,还有一些集成的组件,如下所示,可以点开进行配置,不用写API,其实结果和上面的一样。
找到使用合适的就行,当时没找到资料用滤波器一脸懵,是真痛苦。
1.5 采样率
采样率主要满足奈奎斯特定理,图中xlating fft filter实现三个功能,信号频率转化、滤波、采样率转化。
如果遇到采样率不一致的情况,可以通过内插和抽取将转换率调整为一致。
可以用于调整的组件除了上述的滤波器外,还有如下的组件。
1.6 选择器
选择器的原理是 output[output_index][i] = input[input_index][i]
所以通过调整output_index可以选择那个信号输出。
1.7 AM调制
调制解调原理就不多说了,下图即是常见的AM调制。
这一篇讲解的是实验一的所有example,后面再进行所有调制解调的总结
1.8 AGC
AGC是自动增益控制。作用是自动控制信号的放大倍数。也就是当高频头接收到弱信号时,它会自动控制增加放大倍数,反之减小放大倍数。它可以分成增益受控放大电路和控制电压形成电路两部分。增益受控放大电路位于正向放大通路,其增益随控制电压而改变,增益自动地随信号强度而调整。
注意的就是在刚开始进行的时候不要加AGC,不然本来应该没有信号产生的末端信号很小加了很大增益而有信号,显然这肯定不是准确的,所以要加的话在最后快要结束的时候加上。
rate : the update rate of the loop
reference : reference value to adjust signal power to.
gain : initial gain value.
实验一的内容到这里结束了,未完待续~