应用笔记 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
一般描述 |
类型 |
示例 |
解释 |
|
速率 |
用于为传输接收机电缆设置主机采样率 |
双 |
4e6 |
多相串行-并行-串行存贮器 |
样本数量 |
处理/传输/接收样本的数量 |
双 |
100e3 |
|
秒数 |
时间运行测试,或推迟流的开始 |
5 |
||
参数 |
地址参数esp. "-args addr=192.168.10.2") |
双 |
地址为=192.168.10.2 |
|
频率 |
中心频率 |
400e6 |
||
天线 |
天线选择(例如 "TX/RX", "RX2") |
TX/RX |
||
振幅 |
基带幅度(最小= 0.0,最大=1.0) |
0.5 |
||
宽带 |
用赫兹表示子板宽带设置 |
60e6 |
||
参考 |
参考时钟选择 |
外部 |
||
增益 |
子板rx /tx增益范围依据分贝 |
25 |
||
子装置 |
子装置规格 |
A:AB |
表1——常见的命令行参数
UHD提供示例应用
通过提供UHD帮助新用户调查整个示例应用程序。下表描述了每个应用及其传输、接收的功能,下表描述了每个应用程序的功能,以及是否能和多个USRP设备共用。
示例文档名 |
多个USRP支持 |
Tx/Rx |
描述 |
标准速率 |
否 |
Tx/Rx |
用于测试f PC + USRP.整个性能,将发送帧,溢出,框架等报告数量 |
rx时间样本 |
是 |
Rx |
解释如何使用UHD时间,在特定的时间进行采样 |
Tx波形 |
是 |
Tx |
传输多种信号类型(正弦波、面积、斜波、常数) |
潜伏期试验 |
否 |
Tx/Rx |
尝试接收样本,然后传输相同的样本,报告下溢、错误和确认)Rtt参数。当多数的数据包得到确认后,Rtt参数很好的反映了接口延迟。 |
测试pps输入 |
否 |
n/a |
用1 PPS 信号测试USRP(s)报告测试通过与否 |
测试-d板- |
否 |
n/a |
子板扫频及增益范围,确保调至所有建议频率和增益 |
测试-定时-命令 |
是 |
n/a |
多个USRPs之间为锁相环对齐测试定时命令功能 |
Tx-突发传送 |
是 |
Tx |
解释如何使用多数据指定时间传输样本 |
运输锤 |
否 |
n/a |
Rx/tx测试不同的错误的传输层 |
Rx-多样本 |
是 |
Rx |
陈述如何从多个通道上接收对齐数据 |
Rx—样本入文档 |
是 |
Rx |
针对特定的USRP(s) 创建接收流 将所有的样本在数据末端归档 |
Tx-来自文档的样本 |
是 |
Tx |
将传输流流入到USRP(s) 上,在连续模式下的特定文档传输所有的数据 |
Tx-定时样本 |
否 |
Tx |
创建传输流到USRP(s) 上,发送特定数量的样本,而不是传输流末端命令W / ack确认 |
Rx- |
是 |
Rx |
从一个USRP数据流上接收数据,转入到UDP套接口上 |
表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的振幅是为了确保正交调制器不被迫压缩。
允许测试几个有用的功能。
单边带抑制和图像排斥和输出功率等参数可以测量。还提供了一种定性方法来判定发挥作用的USRP。
软件无线电还提供了hd_siggen_gui.py, w,功能和图形接口类似。
tx波形——一般错误
新用户用tx波形进行试验的时候常出现的一般错误如下:
用另外一个 USRP设备接收波形时如果没有做适当的护理,子板接收器会损坏。
振幅或者增益值设置的过高会导致高互调失真、谐波失真和其他伪迹
振幅参数设置高于1.0,导致无效或者引起数字域内的 削波或者舍入。
结论
本文对软件无线电和UHD提供的示例应用程序做了基本的介绍,这些应用程序可用于实验或者在主机, USRP 设备及子板上的基本信号处理因素的试验和学习。还可以为功能性测试提供一种机制确保 USRP设备准确操作 。由于这些错误很普遍,仍有必要做最后警示:千万不能超过子板允许的最大输入值!
如您有任何疑问或者相对本应用笔记做出反馈,请发邮件至:support@ettus.com。
应用笔记 UHD提供的示例 Ettus Research相关推荐
- USRP系列(三):NI 与Ettus Research的USRP区别
USRP系列(三):NI 与Ettus Research的USRP区别 USRP系列(一):软件定义无线电(SDR) USRP系列(二):USRP作用.组件及产品系列介绍 USRP系列(四):USRP ...
- 块编辑器和双链笔记如何选择Notion vs Roam Research?FlowUs vs Obsidian
从 20 年以来,Notion 和 Roam Research 成为笔记软件赛道的现象级应用.如今,Notion 已经快速成长为百亿美金的独角兽.而 Roam 已经获得不少融资,并且获得了很多重度笔记 ...
- Manim文档及源码笔记-CE文档-示例库3使用Manim绘图
Manim文档及源码笔记-CE文档-示例库3使用Manim绘图 参考原文: Manim Community Edition Example Gallery 前言 笔记随想: 暂未发现官方中文版,自己实 ...
- 下载和安装MySQL官方提供的示例数据库(Employees)
一.前言 在此之前笔者写过一篇博客<你说精通MySQL其实很菜jī(1):你不一定会的基本技巧或知识点(值得一看)>,本文内容是从那篇博客截取出来的.我们要学习MySQL相关的技术点, ...
- Java Web--HTML、CSS、JavaScript详细学习笔记(内含丰富示例代码)
** Java Web–HTML.CSS.JavaScript学习笔记 ** HTML(Hyper Text Markup Language超文本标记语言):控制的是页面的内容,是由标签组成的语言,能 ...
- 《Pro ASP.NET MVC 3 Framework》学习笔记之十七【示例项目SportsStore】
接下来是关于SportsStore的后台管理功能,也就是通常的CRUD操作. 首先添加一个AdminController,代码如下: View Code using System.Web.Mvc; u ...
- 您能否提供一些示例,说明为什么用正则表达式很难解析XML和HTML? [关闭]
我看到人们一遍 又一遍地犯的一个错误是试图用正则表达式解析XML或HTML. 以下是难以解析XML和HTML的一些原因: 人们希望将文件视为一系列行,但这是有效的: <tag attr=&quo ...
- 学习笔记:Maxent的示例运行及部分结果解释
文件准备 Samples文件 .csv格式 通常为三列,分别为"物种"."经度"."纬度" Tips: 默认情况下会删除重复项(同一网格单元 ...
- 《把你的英语用起来》读书笔记:提供一个可量化,易持续的英语学习方法
最近因为换了新工作后,方方面面都需要使用英文,但自从学校毕业之后,几年的时间都没有好好的学过英语了.有时就会感觉用词的精确性上欠佳.特别是在港程序员,有一个好英语太重要了. 为了工作上更加有效,精 ...
最新文章
- prism4.0——chapter 2:初始化Prism应用
- kohana task 编写计划任务
- android 从底部网上的平移动画_Android属性动画,看完这篇够用了吧
- 使用YCSB检测MongoDB
- BugkuCTF-MISC题cisco(writeup)
- java gson_Java 中 Gson的使用
- c1和c2语言水平,为什么驾校不建议考C2,驾驶证C1和C2的区别
- 双变量空间自相关_空间计量经济学的发展及其应用,经济模型总会需要
- 维修电工技能实训考核装置
- WTG--让我们随时随地封装系统!
- torch.distributed多卡/多GPU/分布式DPP(二)—torch.distributed.all_reduce(reduce_mean)barrier控制进程执行顺序seed随机种子
- 房产中介管理系统php,房屋中介管理系统简易源代码.doc
- 人工智能革命:人类永生还是灭亡(下)
- 青出于蓝胜于蓝-(树状数组+DFS序)
- 物联网共享打印机系统是怎么做出来的?
- 实用frida进阶:内存漫游、hook anywhere、抓包
- md 生成目录 码云_DuangDuangDuang!码云项目的 Readme.md 特殊技能
- Ubuntu官网安装教程
- Redis实战篇一 (短信登录)
- 基本尺寸,实际尺寸,作用尺寸,极限尺寸,最大实体尺寸,最小实体尺寸
热门文章
- 服务器如何关闭硬盘自检,去除非法关机硬盘错误造成的开机硬盘自检的两种方法...
- 用Mendeley在Word插入参考文献
- Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
- https客户端与服务端认证过程详解
- 计算机二级excel(01)
- 作为管理者的第6周工作感悟
- 操作系统第一章操作系统引论相关习题
- 【移动端网页布局】移动端网页布局基础概念 ⑧ ( 移动端页面布局方案 | 单独制作的移动端页面 - 主流 | 响应式页面兼容移动端 - 开发难度较大 )
- 直播系统源码,使用python批量生成原比例缩略图
- 51单片机简易计算器C语言程序,用51单片机制作的简单计算器程序