《SDR应用:USRP硬件结合工具》课程概述

本学习路径面向熟悉软件无线电(SDR)无线概念和数字信号处理(DSP)并希望通过USRP上的开源工具接受实操培训的工程师。本课程包含三种编程工具链选项:GNU Radio、C++和/或Python。完成本学习路径后,学员将能够使用所需工具建立全新的SDR开发系统,从而利用USRP和开源工具构建基本的SDR无线应用程序。

课程形式

 

本课程不提供虚拟课堂培训形式

 

本课程不提供教室面授培训形式

 

本课程不提供专属课程形式

课程目标

课程详情

课程时长

课程受众

前提条件

使用NI产品

培训材料

SDR应用:USRP硬件结合开源工具课程大纲

课程概述主题

设置与优化SDR数据流应用

完成本模块后,您应具备同步、构建并安装UHD的技能和信心。

  • 了解USRP硬件驱动程序的安装选项
  • 在SDR系统上安装开源硬件驱动程序
  • 克隆UHD仓库并从源代码构建

通过USB连接与USRP通信

完成本模块后,您应了解如何使用UHD识别及与USB USRP通信。

  • 探索识别USRP的多种方法
  • 配置您的USB USRP设备
  • 与您的USB USRP设备通信

在您的SDR系统上配置GNU Radio

完成本模块后,您应具备同步、构建并安装最新GNU Radio框架的技能和信心。

  • GNU Radio简介
  • 获取相关资源
  • 克隆GNU Radio仓库并从源代码构建

验证GNU Radio安装

完成本模块后,您将对GNU Radio的安装有基础了解,并能在系统中运行简单的FM无线电示例。

  • 浏览GNU Radio文件夹结构
  • 运行简单的FM无线电接收器示例

从命令行运行GNU Radio

完成本模块后,您应熟悉在Linux命令行中使用UHD。

  • 安装GNU Radio
  • 浏览示例程序
  • 演示命令行中的拨号音和UHD FFT程序

介绍GNU Radio框架的关键组成元素

完成本模块后,您应对GNU Radio有基础理解,能识别环境的组成部分。

  • 了解GNU Radio的内部工作机制?
  • 识别GNU Radio环境中的组成部分

GNU Radio环境中的术语及关键模块

完成本模块后,您将理解GNU Radio如何通过流程图传递数据及如何设置应用选项块。

  • 探索GNU Radio中的选项块
  • 理解"samp_rate"与硬件自身采样率之间的区别

节流块和数据类型

完成本模块后,您应能理解GNU Radio如何通过流程图传递数据,以及在有无硬件时如何及何时使用节流块。

  • 使用GNU Radio节流块
  • 理解数据流及数据类型在GNU Radio中的表现形式
  • 编写您的第一个流程图

未调制发射机

完成本模块后,您应具备使用USRP作为发射器构建基本流程图的能力。

  • 查找并连接块
  • 利用UHD Sink和您的USRP构建基本未调制发射器

生成Python代码

完成本模块后,您应能从GNU Radio生成Python代码。

  • 从GNU Radio生成Python代码
  • 探索生成的Python代码

未调制环回

完成本模块后,您应具备使用USRP进行无线环回测试的技能。

  • GNU Radio中的UHD Source和UHD Sink
  • 使用USRP实现无线环回

可视化和UI

完成本模块后,您应具备使用GUI控件创建控制USRP环回的流程图的技能。

  • 利用GNU Radio中预装的QT块探索多种信号可视化与控制元素
  • 演示信号可视化工具(时域、频域、IQ及瀑布图)

调制传输

完成本模块后,您应具备查找并使用示例代码创建调制传输的技能。

  • 在前一模块流程图中添加QAM解码器/接收器
  • 构建调制环回通信系统

调制环回

完成本模块后,您应具备使用USRP和GNU Radio创建简单单向环回通信系统的技能。

  • 创建单音发射器
  • 发送基本调制信号(QPSK和QAM)

 

查找和使用IP模块

完成本模块后,您能定位GNU Radio的Out-Of-Tree模块。

  • 查找实用的GNU Radio Out-Of-Tree模块
  • 从GitHub同步Gr-RDS至本地计算机

构建FM发射器

完成本模块后,您应能查找OOT模块并加载示例。

  • 构建并安装GNU Radio的Out-Of-Tree模块
  • 从源代码构建gr-rds模块并安装至您的SDR系统

构建FM接收器

完成本模块后,您将能使用包含或不包含硬件的gr-rds模块。

  • 基于gr-rds Out-Of-Tree模块构建FM接收器

开发自定义块

完成本模块后,您将能使用Python创建OOT模块。

  • 创建您自己的GNU Radio Out-Of-Tree模块

用C++对USRP进行编程

完成本模块后,您将能找到适合USRP的C++示例代码。

  • 了解UHD的C++ API
  • 运行USRP的C++示例程序

用C++构建您的首个USRP程序

完成本模块后,您将具备为USRP编写简单C++程序的技能。

  • 创建并构建UHD程序

用Python对USRP进行编程

完成本模块后,您应能查找适用USRP的Python示例程序。

  • UHD/GNU Radio的Python API概览
  • 从GNU Radio生成Python代码
  • 运行Python示例程序

用Python构建您的首个USRP程序

完成本模块后,您将具备修改USRP简单Python程序的能力。

  • 起始点
  • 方法比较

了解并配置您USRP上的参数

完成本模块后,您将能计算USRP系统的带宽,并为USRP选择合适的流接口、增益和天线设置。您将能够通过命令行查询USRP的板载设备信息。

  • 理解USRP上的采样率与带宽
  • 配置USRP的采样率与带宽
  • 了解USRP上的数据传输速率
  • 配置USRP上的数据传输速率
  • 理解USRP上的增益设置
  • 配置USRP上的增益设置
  • 了解USRP上的天线设置
  • 配置USRP上的天线设置
  • 通过板载存储访问设备信息

设置与优化SDR数据流应用

完成本模块后,您将掌握确定高性能数据流应用需求的技能。

  • 配置主机系统
  • 了解性能调优方法

何时及为何需要考虑性能调优

完成本模块后,您将深入理解性能调优。

  • 找出瓶颈
  • 确定系统瓶颈所在

性能调优类型及可用文档和提示

完成本模块后,您将具备查找系统性能调优资源的能力。完成本模块后,您将具备查找系统性能调优资源的能力。

  • 了解操作系统(OS)性能调优
  • 物理接口监控与调试
  • 使用数据平面开发套件(DPDK)
  • 查找资源

调试您的SDR数据流应用程序

完成本模块后,您将掌握调试SDR数据流应用中简单问题的技能,并知道如何寻求帮助。完成本模块后,您将具备查找系统性能调优资源的能力。

  • 流控制错误
  • 安装Wireshark解析器
  • 使用Wireshark查看USRP流量

恢复损坏的USRP设备

完成本模块后,您应能恢复损坏的USRP设备。完成本模块后,您将具备查找系统性能调优资源的能力。

  • 识别USRP是否损坏
  • 恢复损坏的USRP
  • 查找资源

 

升级为会员

如计划在一年内参加三门或三门以上NI有授课教师指导的课程,可购买培训会员,获得NI所有公共教室面授培训和公共虚拟课堂培训课程的无限访问权限,以及不限数量的认证凭证,绝对物有所值。