应用笔记 UHD提供的示例 Ettus Research 简介本文将提供UHD代码示例UHD 是由Ettus Research研发的一款驱动器,能和所有的USRP™ 软件定义无线电兼容, UHD可在多个操作系统中(包括Linux, Windows and MacOS)进行开发。由驱动器提供的抽象概念,在USRP产品之间有很大的可移植性。UHD提供应用程序界面,可访问不同的USRP功能,包括同步、样品流和装置。目前,UHD用于不同的开发环境中,包括软件无线电、虚拟仪器、模型以及其他定制结构。 示例程序是由UHD提供,以便进行一个或者多个USRP基础功能测试。想更好地了解不同的UHD应用程序特性的用户,我们为您提供了示例程序源代码。 定位UHD示例传统Linux装置中,UHD路径是/usr/local/share/uhd/.Windows 安装一般将UHD安装在C:/Program Files(x86)/UHD,示例参见: (base UHD directory)/share/uhd/examples 在Linux中修改采样程序 任意采样程序都可以修改和重新编辑。这种方式对于了解如何用UHD 应用程序进行互动是种很简单的方式。改变了UHD 示例应用程序的源码后,重新编纂用: Make 为了将修改过的应用程序复制到UHD 安装位置上,请输入 sudo make install 如果您按照Windows多余创建指示可在此查找: http://files.ettus.com/uhd_docs/manual/html/build.html#build-instructions-windows 命令行引数UHD提供的所有的示例应用程序使用一个或者多个命令行引数安装程序或者进行测试。 有一点可以确定那些可以用于应用程序,输入”——帮助”作为参数。例如,输入: ./tx_waveforms –help 会产生以下输出: UHD TX波形允许选项: --help帮助信息 --args arg 单个UHD 设备地址args --spb arg (=0) 每缓冲区的样品, 缺省值为 0 -rate参数输出样本 --freq arg 射频中心频率 in Hz --ampl arg (=0.300000012) 波形的振幅[0 to 0.7] --gain arg 获得射频链 --ant arg 子板天线选择 --subdev arg 子板子装置规格 --bw arg 子板IF 过滤带宽in Hz --wave-type arg (=CONST) 波形类型(CONST, SQUARE, RAMP, SINE) --wave-freq arg (=0) 波形频率 in Hz -ref arg (=internal) 波形类型(内部, 外部, 多输入多输出) 一般来说,提供的大部分参数是可选择的并且有指定的默认值。在有的情况下,必须提供值。在这种情况下,程序显示错误,检查确保所有要求的区域都有相关联的命令行参数。 在一个示例中,用户想用一个400 MHz的射频中心频率,传输100 kHz的正弦波音调,基带振幅为0.5, TX / RX天线。命令行将是: ./tx_waveforms --wave-freq 100e3 --wave-type SINE --freq 400e6--ampl 0.5 --ant TX/RX
表1——常见的命令行参数 UHD提供示例应用通过提供UHD帮助新用户调查整个示例应用程序。下表描述了每个应用及其传输、接收的功能,下表描述了每个应用程序的功能,以及是否能和多个USRP设备共用。
表2——UHD示例应用总结 其他有帮助的例子——软件无线电软件无线电,是通过UHD使用的通用框架,同时也为功能性测试提供两个有用的示例程序。安装软件无线电时,执行口令为:uhd_fft.py和uhd_siggen_gui.py。uhd_fft.py带一个FFT, USRP设备和子板的单一接收瀑布图和范围展示图。很多参数可用于配置接收器采样率、频率等。uhd_siggen_gui.py这一应用程序允许用户在特定频率、采样率和增益设置中生成各种输出类型。本程序可通过简单编辑执行: uhd_fft.py -OR- uhd_siggen_gui.py 配置接收器采样率、频率等。 · 进入命令行接口,更多关于如何应用这个对USRP 设备和子板进行功能性测试的设备和子板将在本文后面部分有所呈现。 USRP功能测试 UHD 和无线电采样应用设备可用于一个或者多个USRP无线电的功能性测试。对于想更好的理解USRP 功能的新用户来说这个很有用。 接收测试-uhd_fft.py之前在本文中提及的uhd_fft.py用来测试USRP无线电接收功能很有帮助。可用的测试方法框图见表1。在本测试中,子板频率范围内的信号资源操作和正在接受测试的USRP 设备用来产生测试信号。信号资源可以是一个射频信号生成器或者另一个USRP无线电。必须注意保证,不能超过特定子板最大输入规格。所有子板除BasicRX 和LFRX. 之外,级别都是-10dBm 。BasicRX 和LFRX 的输入一定不能超过Vpk -pk (10dBm). LFRX 提供的单位增益的直流耦合。因此,LFRX输入的电压电平不应该超过3.3V 表1.USRP接收测试配置 连接适当水平的信号资源后,实时控制可用于设置应用程序的频率、增益和 采样率。 使用 FFT(默认)的观点之后,X轴代表频率,Y轴代表振幅。Y轴代表的是带“计数”的振幅。并且一般情况下,其值和特定的绝对的功率输入无关 。显示中的振幅用于近似比较。一个给定的输入振幅级别会根据频率及每个单元之间相差几分贝。并且接收器子板在模拟链路中提供不同级别的振幅。将对 FFT的振幅结果产生影响。 接受测试——-uhd_fft.py-常见错误在使用此程序过程中,新用户常会犯几个错误。以下几点可以验证: a.确保输入水平不超过子板最大输入规格 b.核实合适的子装置规格、提供命令行的天线选择。 c.确保所选频率在特定的子板范围内并且合理设置信号生成器。 传输测试——tx波形“tx_波形”示例应用程序提供一种简单的方式对USRP装置和子板的传输功能操作进行测试。 试验装置框图见表2.可用频谱分析仪进行简单测试。也可以使用另外一个可通过uhd_fft.py.进行访问的 USRP设备。再次重申,如果另外一个USRP 正在使用,强调接收USRP设备的最大输入规格很重要。此设置中应用到由Ettus ResearchLPBK-KIT提供的滞缓链接,如果此信号不滞缓,可能损坏接收中的USRP硬件。 表2. 测试USRP 传输能力的装置 一旦链接到信号接收频谱分析器,就可以执行tx_波形。一个tx_波形的例子: ./tx_waveforms-freq 1200e6--ampl 0.5--wave-type SINE--wave-freq250e3 --rate 5e6--antTX/RX 该指令将启动tx_波形,射频中心频率为1.2 GHz,基带信号为250 kHz,基带振幅规范到DAC峰值振幅。用0.5的振幅是为了确保正交调制器不被迫压缩。 允许测试几个有用的功能。
新用户用tx波形进行试验的时候常出现的一般错误如下: 用另外一个 USRP设备接收波形时如果没有做适当的护理,子板接收器会损坏。 振幅或者增益值设置的过高会导致高互调失真、谐波失真和其他伪迹 振幅参数设置高于1.0,导致无效或者引起数字域内的 削波或者舍入。 结论 本文对软件无线电和UHD提供的示例应用程序做了基本的介绍,这些应用程序可用于实验或者在主机, USRP 设备及子板上的基本信号处理因素的试验和学习。还可以为功能性测试提供一种机制确保 USRP设备准确操作 。由于这些错误很普遍,仍有必要做最后警示:千万不能超过子板允许的最大输入值! 如您有任何疑问或者相对本应用笔记做出反馈,请发邮件至:support@ettus.com。 |