400-007-3336
usrp_support@tnm-corad.com.cn

GNU Radio与硬件

使用UHD Blocks

        这里我们采用的是Ettus USRP B200,使用的驱动是UHD,所以我们可以在gr-uhd找到我们需要的source和sink模块。为了使用UHD Blocks,首先的必须装好UHD。用户可以在嘉兆科技的官网找到相应的安装方法。如果是直接从源代码编译安装的,安装成功后,在GNU Radio Companion中会发现UHD的相关模块。

发射一个QPSK信号

        首先我们利用现有的模块建立一个流图。然后,通过移掉相关模块来实现QPSK的发射。流图如下:

        运行结果如下:

        然后,我们移除一些和添加一些模块,来连接发射一个真实的信号。由于是真实的无线信道,所以移除noise和add模块。因为有硬件限制速率,所以也不再需要Throttle block。转变成真实的无线系统是很容易的,我们在UHD Sink里找到UHD USRP Sink模块,然后添加到刚才的流图的最后的输出当中,当做流图的信号发射模块。

配置UHD Sink参数

        GNU Radio支持变量模块,用户可以通过修改变量模块的值,来改变整个流图的值,而不用去依次修改,这是非常方便的。复制和粘贴你的samp_rate变量模块两次,分别来控制中心频率和增益。我们设置的中心频率和增益必须是你所使用的硬件设备支持的,不同的设备支持的频段可能是不同的。这里,我们设置中心频率为2.421GHz,增益设置为30dB,这是这个设备支持的发射增益的1/3。

        现在,可以利用新的变量模块来调整UHD里面的参数了。打开UHD USRP Sink,你会看到一个参数列表,这里有许多的参数我们需要调整。向下滚动到列表的底部,相应地设置以下属性:

Samp Rate (Sps): samp_rate

Ch0: Center Freq (Hz: freq

Ch0: Gain (dB): gain

Ch0: Antenna: "TX/RX"

Ch0: Bandwidth (Hz): samp_rate

        需要特别注意的一点是任何大于1的值都会引起削波,这意味着振幅被“截断”在1。总的来说,必须设置幅度小雨1。在这个例子中,我们将添加乘0.5乘法器的输出,以确保处于正确的幅度。现在,流图如下:

        如果你执行你的图,你会看到通常的初始化和GUI启动除,而不是一切都被模拟,你实际上是发送你的QPSK信号。如果我们看一下分析仪上的频谱,你应该能够清楚地看到你选择的频率的信号。如果你看不到,仔细检查一下你的参数,也试着修改下增益。

可以看到,跟我们设置是符合的,这说明我们已经成功的发射了QPSK信号。

创建一个FM接收机

        在这一节中,我们将建立一个工作调频收音机接收器,你可以使用它收听你当地调频广播电台。


创建一个软件频谱分析仪

        一个基本的但是却非常有用的是你可以利用GNU Radio创建一个实时的频谱分析的fft,这是一个用软件实现的无线电频谱分析仪,利用它用户能够验证你的硬件是否工作正常,在这里,我们可以利用它来确定我们所在地区的广播电台的频段,以便我们可以调谐到相应的频段。

        现在我们来创建一个流图。找到UHD USRP Source和QT GUI Sink模块。之前我们用固定的中心频率和增益,现在来把它变成实时可调的。找到QT GUI Range模块,添加两个这样的模块到流图中。设置相应的参数,这里使用的是USRP B200:

QT GUI Range 1:

ID: freq

Label: freq

Default Value: 1e9

Start: 70e6

Stop: 6e9

Step: 10e6


QT GUI Range 2:

ID: gain

Label: gain

Default Value: 0

Start: 0

Stop: 74

Step: 1

        尝试修改你的samp_rate,会发现一些有意思的东西。这里设置的是32MSps.现在来设置UHD USRP Source的参数:

Samp Rate (Sps): samp_rate

Ch0: Center Freq (Hz): freq

Ch0: Gain (dB): gain

Ch0: Antenna: "TX/RX"

Ch0: Bandwidth (Hz): samp_rate

现在,我们的流图应该是这样的:

检查下你的设置是否正确。

使用软件进行频谱分析

        现在运行你的流图,你应该会看到你真实的信号。滑动相关按钮,注意图形的变化。默认的GNU Radio QT FFT sink内有许多有用的特性,例如均值和保峰值,尽量花一些时间去熟悉它们。

创建FM广播接收

        现在,有一个基本的接收器应用程序实时显示接收数据,让我们建立一个有用的应用程序!我们将添加更多的功能到流程,模块和数量如下:

1x Rational Resampler

1x WBFM Receiver

1x Audio Sink

2x Variable

        我们数据的流向是:USRP Source->Rational Resampler->WBFM Receiver->Audio Sink.按照这个顺序连接好这些模块,期间可能会有报错,现在我么就来修改相应的参数,来解决这些报错。

        首先,添加两个variable blocks,设置相应的参数:

Variable:

ID: audio_interp

Value: 4

Variable:

ID: audio_rate

Value: 48e3

        现在让我们把之前的sample rate改为250e3(250kHz).

Variable: samp_rate

ID: samp_rate

Value: 250e3

        然后,我们配置其余的3个模块。

Audio Sink

        这是一个比较简单的模块。它需要信号流的输入并通过扬声器播放它们。这个模块在GR的音频库初始化,这个音频库是包含在GNU Radio配置里面的。这里面有一些常见的速率设置,最常见的就是48kHz,现在我们使用的就是这个速率的。

设置Audio Sink参数:

Sample Rate: audio_rate

OK to Block: "No"

        现在你只需要把你的速率设置为你的声卡支持的速率就可以了。

Rational Resampler

        我们设置的USRP Source的速率为samp_rate,数值为250e3。设置的Audio Sink的速率为audio rate,数值为48e3。这里有一个问题,我们的源数据的采样率不是音频速率的整数倍:250000/48000=5.208。为了解决这个问题,我们必须进行重采样,这就需要用到Rational Resampler模块,将输入的速率转化为输出的速率。

Rational Resampler允许我们调整数据流的速度,通过插值或者抽取实现的。因为进来的数据的采样率为250k,我们就设定抽取的数值为250k,但是采样率是一个浮点型数据,所以设置抽取数值的时候注意需要将其转换为整型。然后,我们插值,所以再来设置插入的数据。由于WBFM进行了一个4次插值,所以我们可以利用audio_interp和audio_rate设置插入的速率。这样,设置的参数如下:

Type: Complex->Complex (Complex Taps)

Interpolation: audio_rate * audio_interp

Decimation: int(samp_rate)

        其余的参数,默认就可以了。

WBFM Receiver

        现在来配置最后的解调模块。这里仅仅需要设置两个参数:输入的速率以及抽取值。通过之前的例子,我们知道,输入的速率就是Rational Resampler的输入速率,抽取的就是audio_rate.

Quadrature Rate: audio_rate * audo_interp

Audio Decimation: audio_interp

        注意这里的插入和抽取速率是可以自己设定,我们使用参数,是为了保证得到的结果一定是整数。


调试FM广播

        现在参数调整已经好了,应该看不到红色的报错信息了。整个流图如下:

        运行流图,应该可以看到如下的界面,不同的版本可能会有所差异。改变freq,调谐到本地的FM频段,通过电脑的扬声器就可以听到广播了。


总结

        现在我们已经利用GNU Radio成功的搭建了无线电的收发平台。这些应用相对来说是比较简单的,他们利用GNU Radio提供的模块直接连接硬件组成无线系统。也说明了,将仿真带入真实的无线电系统在GNU Radio平台下是一件比较容易的事情。


SDR软件
RFNoC
UHD
GNU Radio
LabVIEW
MATLAB & SIMULINK
OpenBTS
OpenAirInterface (OAI)
srsLTE
gqrx
关于我们
联系我们
关于CORAD
关于Ettus
产品介绍
USRP X系列
USRP 网口系列
USRP USB接口系列
USRP嵌入式系列
射频子板
天线
线缆
附件
其他服务
TNM网站
公司新闻
行业动态
入门培训
GNU Radio培训
Visual Studio开发环境配置
硬件安装指导
关注我们
版权信息
USRP中文官方网(ettus.com.cn)所发布展示的“产品信息”,“培训资料”版权归USRP中文官方网所有和发布企业所有,任何收集本站产品信息并未经USRP中文官方网许可,USRP中文官方网将保留追究侵权者法律责任的权利。

粤ICP备 06126740-7号 © Copyright 2015.Corad All rights reserved. ettus.com.cn