使用MATLAB连接USRP

文章目录

  • 前言
  • 一、本地环境
  • 二、前期准备
    • 1、MATLAB版本、labview版本、UHD 版本对应关系
    • 2、下载 GNU Radio Companion
    • 3、确定 USRP UHD 版本
      • ①、下载一个 USRP 硬件驱动程序
      • ②、确认 MATLAB 的 UHD 版本
  • 三、下载 USRP 通信工具箱支持包
  • 四、使用 MATLAB 连接 USRP


前言

本文记录搭建使用 MATLAB 连接 USRP 环境的步骤。

这个博客我写了近一周,遇到了很多坑,matlab 版本换了好多版,从 2019a --> 2023b --> 2021b --> 2021a,所以准备入坑的小伙伴先确定你板卡里面的 USRP 固件是多少,然后再去选择对应版本的 MATLAB 版本,期间我也遇到了烧录新固件后设备成砖的情况,后面找到原因是读卡器坏掉了(这真的是太坑了)导致那天一直想不明白为什么写入到 tf 卡的固件里面分区大小和总数没问题,但是分区里面的数据就很奇怪。

重要提示:我使用 MATLAB 2019a 安装时发现不支持 USRP-N3 系列的软件无线电产品,且当前 USRP 之前烧录的固件版本为 UHD_3.15.0.0-vendor,所以才将 MATLAB 版本升级到 R2021a 版本,2021a、2021b 版本支持 USRP-N320,且对应的固件都是 UHD_3.15.0.0-vendor

但是 2021b 版本会出现下面的报错,去网上找解决问题的方法无果
在这里插入图片描述
因此最终将 MATLAB 版本定为 R2021a


一、本地环境

  • 电脑操作系统:Windows11
  • MATLAB 版本:MATLAB 2021a
  • USRP 型号:USRP-N320
  • USRP 固件版本:UHD_3.15.0.0-vendor

二、前期准备

MATLAB 要能连接 USRP,需要 MATLAB 的 UHD 版本与 USRP 的固件版本相匹配,而安装 UHD,会在安装路径下有一个与该版本对应的一个 USRP 所用的固件,可以烧写到 USRP 中,使得版本匹配。

1、MATLAB版本、labview版本、UHD 版本对应关系

LabVIEWMATLABUHD
2019R2021bUHD_3.15.0.0-vendor
2020R2022bUHD_4.1.0.4-vendor
R2023bUHD_4.2.0.0-vendor

2、下载 GNU Radio Companion

GNU Radio Companion 是一个用来产生信号流程图及流程图源代码的图形化工具,这步大家可选择性进行安装,不是必须项,可跳过此步骤直接到 3、确定 USRP UHD 版本

下面是下载 GNU Radio Companion 的步骤

进入网址:https://wiki.gnuradio.org/index.php?title=InstallingGR,点击 Windows Radioconda installer
在这里插入图片描述
下载完毕后,双击该文件进行安装,一路默认,直至安装成功。安装成功后,在 window 开始菜单中会显示下述图标。
在这里插入图片描述

3、确定 USRP UHD 版本

①、下载一个 USRP 硬件驱动程序

1)这一步需要下载一个 USRP 硬件驱动程序

  • USRP 硬件驱动程序和用户手册:https://files.ettus.com/manual/page_install.html
    在这里插入图片描述
  • 驱动安装包链接:https://files.ettus.com/binaries/uhd/
    选择 3.15 版本,点进去后选择 Windows-10-x64
    在这里插入图片描述

2)安装 USRP 硬件驱动程序,我安装在了 D:\UHD 目录下,安装后如下图所示:
在这里插入图片描述

打开终端,敲击 uhd_find_devices 查找设备(记得要将 USRP 通过网线连接到你的电脑网口)
在这里插入图片描述
添加环境变量
在这里插入图片描述
再次敲击 uhd_find_devices 查找设备
在这里插入图片描述
可以看到 UHD 版本为 3.15,且可以找到当前所连接的 USRP。

②、确认 MATLAB 的 UHD 版本

getSDRuDriverVersion()

在这里插入图片描述
可以看到 MATLAB 的 UHD 版本也是 3.15

三、下载 USRP 通信工具箱支持包

在 MathWorks 下载通信工具箱提供的 USRP 支持:https://www.mathworks.com/hardware-support/usrp.html

点击 Get support package 进行下载
在这里插入图片描述

四、使用 MATLAB 连接 USRP

1、在 MATLAB 中打开刚刚下载的文件
在这里插入图片描述
在这里插入图片描述
2、弹出如下窗口,点击我接受
在这里插入图片描述
3、弹出如下窗口,点击下一步进行下载 UHD 固件和 FPGA 镜像以及 UHD 预编译库
在这里插入图片描述
MATLAB 2021a ---->21.1.3
在这里插入图片描述

4、可以看到下载和安装进度,等待下载和安装成功
在这里插入图片描述
5、安装完毕后,点击立即设置
立即设置后面的工作是给 USRP 烧录固件,如果不需要烧录固件,可以选择稍后设置。
在这里插入图片描述
后面烧录固件的就按照提示做就可以,这里跳过了步骤。

6、打开 matlab 终端,输入 findsdru 查找设备
在这里插入图片描述
成功找到设备。


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue中组件的传递取值方式总结

vue中组件的传递取值方式总结 目录概述需求: 设计思路实现思路分析1.父子传参2.vue 子组件接收数据进行渲染或处理3.父组件通过v-on监听自定义事件并取得传递的值4.ref引用子组件5.通过provide/inject传值6.attrs和listeners7.通过vuex进行全局状态管理8.Vue mixin9…

Python 分支结构案例-个人所得税计算器

个人所得税的计算方法(旧版)如下表: 要使用代码根据工资计算税后收入,可以用分支结构编写一个计算器: """ example018 - 个人所得税(旧版算法)计算器Author: 不在同一频道上的呆…

扩展卡尔曼滤波(Extended Kalman Filter, EKF):理论和应用

扩展卡尔曼滤波(Extended Kalman Filter, EKF):理论、公式和应用 引言 卡尔曼滤波是一种广泛应用于估计动态系统状态的技术,但当系统的动态模型或测量模型是非线性的时候,传统的卡尔曼滤波方法就显得无能为力。扩展卡…

Modbus协议学习第二篇之Modbus poll slave仿真软件初体验

软件准备 学习Modbus离不开硬件,好在我们可以通过仿真软件来模拟硬件,本篇博客就来简单介绍一下Modbus仿真软件的最基础使用方法,需要用到的3款仿真软件如下: Modbus Poll 64位 / Modbus Poll 32位(根据自己机器位数选…

机器学习周记(第二十五周:文献阅读-DSTIGNN)2024.1.8~2024.1.14

目录 摘要 ABSTRACT 1 论文标题 2 论文摘要 3 论文背景 4 过去研究 5 论文研究 5.1 问题描述 5.2 论文模型 5.2.1 时空交互学习模块(Spatiotemporal Interactive Learning Module) 5.2.2 动态图推理模块(Dynamic Graph Inference…

哪些代码是 Code Review 中的大忌?—— 以 Python 为例

Code Review 首要达成的结果是更好的可读性。 在此基础上才是进一步发现项目的 Bug、处理性能优化上的问题。 因为,编码是给人看的,不是给计算机(Coding for human, NOT computer)。 一. 滥用缩写命名 Overusing abbreviation …

软件工程:黑盒测试等价分类法相关知识和多实例分析

目录 一、黑盒测试和等价分类法 1. 黑盒测试 2. 等价分类法 二、黑盒测试等价分类法实例分析 1. 工厂招工年龄测试 2. 规定电话号码测试 3. 八位微机测试 4. 三角形判断测试 一、黑盒测试和等价分类法 1. 黑盒测试 黑盒测试就是根据被测试程序功能来进行测试&#xf…

4_【Linux版】重装数据库问题处理记录

1、卸载已安装的oracle数据库。 2、知识点补充: 3、调整/dev/shm/的大小 【linux下修改/dev/shm tmpfs文件系统大小 - saratearing - 博客园 (cnblogs.com)】 mount -o remount,size100g /dev/shm 4、重装oracle后没有orainstRoot.sh 【重装oracle后没有orains…

【面试突击】并发编程、线程池面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

2024--Django平台开发-Django知识点(七)

频率超高的问题 Redis的问题虚拟环境mysqlcient和pymysql短信服务,一期用的是腾讯云短信 虚拟环境 可以用来创建虚拟环境的: virtualenv这个模块,简单易上手,推荐 小白不建议,conda,如果大家用这个&…

NSSCTF Round# 16 Basic pwn方向题解

pwn nc_pwnre 没有附件,nc直接连接 给了一段汇编代码,让gpt翻译一下 这段汇编代码是一个循环,它对存储在ebpi位置的字符串进行处理。让我逐步解释一下每个指令的作用:mov eax, [ebpi]: 将ebpi位置的值加载到eax寄存器中。 add e…

【汇编要笑着学】汇编模块化编程 | call和ret调用指令 | jmp跳转指令 | inc自加指令

Ⅰ.汇编模块化编程 0x00 一个简单的例子 我们了解模块化编程前先给出一个例子,方便大家快速了解。 SECTION MBR vstart0x7c00 ; 起始地址编译在0x7c00mov ax,cs mov ds,ax mov es,axmov ss,axmov fs,axmov sp,0x7c00 ; 上面这些都没什…

系列十、Spring Security登录接口添加验证码

一、Spring Security登录接口添加验证码 1.1、概述 一般企业开发中,登录时都会有一个验证码,基于Spring Security的登录接口默认是没有验证码的?那么如何把验证码功能集成到Spring Security的登录接口呢?请看下文! 1.…

基于SSM的仓库在线管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

C++学习笔记——输入、输出和文件

目录 一、标准输入输出 2.1下面是它们的基本用法 解释 二、格式化输入输出 2.2下面是一个示例 解释 三、文件读写 3.3下面是一个文件读写的示例 解释 四、异常处理和错误检测 4.1下面是一个示例 解释 五、一个实例代码 5.1如何读取 CSV 文件,并计算每…

大厂是怎么做支付系统的流程容错的?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 1 单据关联 如某些订单域内部的多种单据间存在关联关系一样,支付设计上也有单据间关联设计。如所有逆向过程都须持有正向的单据,因此退款须关联到原来的支付&#…

LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。 该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时…

为了这口醋,包的这饺子。为了Selenium,学有限的CSS,逐步替换XPATH

Learn about CSS rules and pseudo-classes to help you move your XPATH locators to CSS. 1. 最基本IdElement TypeDirect ChildChild or Sub-ChildClass 2. 深入一点Next SiblingAttribute ValuesChoosing a Specific Match Sub-String Matches 3 参考资料 In order for Sel…

Java零基础教学文档第五篇:jQuery

今日新篇章 【jQuery】 【主要内容】 jQuery简介 jQuery安装 jQuery语法 jQuery选择器 jQuery事件处理 jQueryDOM操作 jQuery元素遍历 jQuery过滤 jQuery其它方法 【学习目标】 1.jQuery简介 1.1 jQuery简介 jQuery 库可以通过一行简单的标记被添加到网页中。 1.…

java自动化将用例和截图一起执行测试放入world中直接生成测试报告【搬代码】

1.首先我们得用例写好之后放入文档中,把不用的案例类型、前置条件去掉之后,如图: 放到桌面后,先看执行结果: 直接上代码 package com.znzdh.qitagongju;import jxl.Sheet; import jxl.Workbook; import org.apache…