ADALM Pluto-SDR 初步试用

本文介绍ADALMPluto-SDR软件无线电入门套件,一款基于AD9363的高性能SDR产品。文章分享了PlutoSDR的基本性能、安装注意事项及与taskBus平台的集成经验。实测表明,该设备在USB2.0接口下能稳定支持2.5Msps的双工采样率,适用于大学教学和窄带应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期,有学生向我推荐 ADALM Pluto-SDR软件无线电入门套件,经过零星了解与动手实验,感觉确实不错!网购价格就1000大洋出头,性价比很高,特记录如下。

1 PlutoSDR 简介

ADALM Pluto SDR 是一款基于AD9363的软件定义无线电产品。尽管官网上说主要是为了大学生“主动学习”而开发的实验产品(非生产环境),但实际能力上却远非如此。

1.1 Pluto SDR 基本性能

ADALM-Pluto
下图是官网的性能表。需要注意的事情提前说明:
(1)据本人根据多个论坛的帖子测试,AD9363实际上与AD9364兼容很好,经过简单修改配置,即可支持70MHz-6GHz的频段,这样就覆盖到了调频电台啦。修改方法,Putty连接串口,在串口打印的界面输入以下设定:

#fw_setenv attr_name compatible
#fw_setenv attr_val "ad9364"
#pluto_reboot reset

重启后,就立马开挂了!详细设置见《灵活构建复杂的RF场景——ADI ADALM-PLUTO SDR主动学习模块评测拆解

2)官方声称的61.44Msps采样率是瞬时采样率。USB2.0接口最大理论速率也就50-60MBps,实际一般也就30MBps。实测Windows下,如果同时使用USB无线网卡、无线键鼠等外设,IQ基带样点双工超过2.5Msps就不连续了,单工也较难超过10MSps,再往上,变成断续的突发啦。所谓61.44Msps采样率,只能以突发的形式短促的“来一发”,没有太大的实用价值。

PS,61.44的瞬时采样率,也只能在上述开挂后才能应用。
主要性能
综上,对于大学阶段学习和一般的窄带应用,基带IQ复信号2.5M的采样率,意味着2.5MHz的覆盖带宽(比实信号的奈奎斯特恰好多一倍),加上70M-6G的频段,还是够用的。

1.2 安装中注意的问题

PlutoSDR的安装很简单。
无论在Windows还是Linux下,开箱后,插入USB口,都会识别为1个U盘。此时,U盘内有一个info.html文件,打开后,就会有驱动的下载链接、版本更新提示等等。
info
在Windows、Linux下,该平台都表现出高度的一致性。不过经过测试,不建议在虚拟机环境下使用。测试的方法是下文中的调频广播转发声音连贯性。

系统配置最大稳定连续双工吞吐速率
windows 72.5Msps
windows 102.5Msps
Linux AMD642.5Msps
Oracle Virtual Box 虚拟机(win10+win7)<2Msps,双工受限

此外,如果在使用Pluto,建议不要使用USB的网卡、USB的摄像头。这些东西会争夺USB的带宽。使用性能较好的计算机,应该还能够更快一点,不过限于USB2.0的带宽,提升不会太大。笔者的廉价上网本在开启USB摄像头后,FM电台声音断续。

2 为taskBus添加Pluto SDR支持

Pluto SDR支持Matlab、GNU-Radio等高阶的开发环境,但我们本次采用自己的“兔巴士”实验平台taskBus来进行首次实验。根据Pluto SDR的官方要求,若完全控制该设备,软件层面要通过C接口libiio来操作它。
关于taskBus的原理,参考我的博文

Pluto SDR在接入主机后,会生成一张网卡,速率为492kbps,ip 192.168.2.1, 可通过 ip:192.168.2.1来访问。虽然USB也可以访问,但笔者发现在不同机器上,USB的地址字都不同,这一点没有网卡方便。

2.1 libiio介绍

libiio是用于操作SDR的库,其主要结构如下:
libiio
粗略的使用了这个库,初步感觉(不一定对,随着认识深入可能变化)作为一个SDR的库而言,实时性编程的门槛比较高。尤其是想构造类似TDMA的教学应用,可能要费不少劲。要同步收发的时标,可能需要修改FPGA的逻辑。在Pluto的服务端,也就是片上SoC上使用local方式访问,速率应该可以非常快。但其提供的SoC性能不是很好。

2.2 构造信号源和宿

由于taskBus是直接基于stdin、stdout交换数据的,我们通过官方的例子代码
ad9361-iiostream.c
稍加改造,即形成了用于接收信号的源(Source)发射信号的宿(Sink)

我们利用这两个模块,可以直接把某个调频电台搬移到新的频率,从而利用调频电台声音的连贯性,来测试当前环境USB2.0的最大吞吐速率。

FM Carry
(1)可以逐步提高采样率,直到收音机接收到的节目断续为止,以得到当前系统支持的最大双工收发速率(2.5Msps)。
(2)可以使用文件宿(sink_filebin)保存节目,以测试单工的最大采样率(不大于10Msps,一般小于5Msps)。
再次强调,这里的采样率都是IQ复信号采样率,直接等效为带宽了,比实信号的奈奎斯特限大了一倍。

2.3 使用简单的调频模块播放音乐

我们简单的构造调频信号,通过声卡播放音乐或者语音。调频信号即是把声音的瞬时幅度变成瞬时频率偏差(或者积分后的相位)。由于Pluto SDR输入的是基带IQ路复信号,所以连载波激励都省了,直接对声卡得到的瞬时幅度重采样、取cos、sin即可弄出声音来。为了简单,上采样采用了线性插值,48000声卡采样率下,破音较多;在192K声卡采样率下,音质还可以。实际的采样率变换,必须按部就班使用信号处理方法

FM

暴力简单调频的IQ激励taskBus模块参考这里。上述例子中,使用Pluto发射声音,并接收自己的信号作为监视之用。

2.4 传输距离

经过播放测试,在使用FM天线时、无遮挡的情况下,设置衰减为0,FM模拟信号最大传输距离约200米。若某宝购买功放,估计可达上千米。但是考虑到无线电管理的相关法律,建议大家不要上功放。下图是距离测试中使用的调频频段天线。
实际测试使用的天下

后记

与USRP等高端平台不同,Pluto-SDR是一种低成本的全双工SDR平台。与HackRF相比,双工有优势;与Blade、USRP相比,价格有优势。当然,一分价钱一分货,全双工状态下,只能稳定支持2.5Msps的采样率是一大遗憾(USRP等都换了USB3了),但作为一个入门级别的SDR学习机来说,1000大洋的性价比还是很高的。

### PLUTO-SDR MATLAB 入门教程 #### 使用MATLAB进行PLUTO-SDR操作的基础介绍 对于希望利用MATLAB环境开展基于PLUTO-SDR项目的用户而言,掌握基础的操作流程至关重要。通过集成ADALM-PLUTO设备的支持包至MATLAB环境中,可以便捷地执行诸如配置、传输以及接收射频频谱内的信号等一系列任务。 安装必要的支持工具是第一步。这通常涉及到下载并安装MathWorks提供的Communications Toolbox Support Package for ADALM-PLUTO Radio。完成之后,便可以在MATLAB命令窗口中初始化与PLUTO-SDR之间的连接: ```matlab % 初始化PLUTO SDR对象 sdrDev = sdrdev('Pluto'); ``` 一旦建立了有效的链接,则可以通过调用特定函数来进行更复杂的设置工作,比如调整中心频率、带宽参数等属性值。下面给出一段简单的代码片段用于展示如何改变这些关键特性: ```matlab % 设置中心频率为2.4GHz centerFreq = 2.4e9; configure(sdrDev,'CenterFrequency', centerFreq); % 设定采样率(带宽) sampleRate = 6e6; % 单位Hz configure(sdrDev,'BasebandSampleRate', sampleRate); ``` 为了验证上述配置是否成功应用到了实际硬件上,还可以编写一小段程序来捕获一段时间内接收到的数据样本,并绘制出来以便直观观察效果: ```matlab % 接收数据 numSamples = 1024*8; rxData = receive(sdrDev,numSamples); % 绘制接收波形图 figure(); plot(real(rxData)); title(['Received Data at ' num2str(centerFreq/1e6) ' MHz']); xlabel('Sample Index'); ylabel('Amplitude (V)'); grid on; ``` 此部分展示了怎样快速启动和运行一个基本的PLUTO-SDR实验平台,为进一步的研究打下坚实的基础[^2]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁劲犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值