前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PlutoSDR学习指南【2】无线数据传输

PlutoSDR学习指南【2】无线数据传输

作者头像
数字积木
发布2021-04-15 16:45:02
2.1K0
发布2021-04-15 16:45:02
举报
文章被收录于专栏:数字积木数字积木

ADALM-PLUTO主动学习模块(PlutoSDR)易于使用,有助于向电气工程专业学生介绍软件定义无线电(SDR)、射频(RF)和无线通信的基础知识。该模块针对不同层次和背景的学生而设计,可同时用于教师辅导和自主学习,旨在帮助学生在攻读理学、技术或工程学位时为实际RF和通信打下基础。

PlutoSDR与主机配合使用时,充当便携式实验室,可增强课堂学习。MATLAB和Simulink是由PlutoSDR支持的两个主要软件包,它提供直观的用户图形用户界面(GUI),让学生可以更快学会,更巧妙地开展工作并探索更多知识。

PlutoSDR具有独立的接收和发射通道,可在全双工模式下工作。主动学习模块可以在325 MHz至3800 MHz频率范围内以最高每秒61.44MSPS产生或捕获RF模拟信号。PlutoSDR非常小,可装在衬衣口袋中,完全独立自足且由配有默认固件的USB供电。由于PlutoSDR通过libiio驱动程序启动,因此它支持OS X®、Windows®和Linux®,可让学生在多台设备上学习和探索。

PlutoSDR提供许多适合SDR项目的可用在线教程,拥有涵盖众多主题的实验室和教学资料,如ADS-B航空器位置、接收NOAA和Meteor-M2天气卫星图像、GSM分析、TETRA信号监听、寻呼机解码等!

matlab 提供了简单易用的 PLUTO 访问接口,使得用户非常方便地使用使用PLUTO。

我们只需考虑基带处理部分,PlutoSDR替我们将基带信号“搬”到频带,我们只需设置频带的中心频率、带宽、收发的增益、收端接收一帧容纳的比特数等参数。

1,在matlab中 进行数据接收。

代码语言:javascript
复制
clear all
close all
clc

%pluto rx 设置
rxPluto  = sdrrx('Pluto');
rxPluto.CenterFrequency = 2400000000;   %设置中心频率 2.4GHz
rxPluto.BasebandSampleRate = 18e6;      %设置采样率 :10MHz
rxPluto.SamplesPerFrame = 1024 ;        %设置采样点数:1024

fs  =  rxPluto.BasebandSampleRate ;     
N   =  rxPluto.SamplesPerFrame ;        
freq = (-N/2:N/2-1)/N* fs/1000000 ;     


% 接收信号
% data即收到的信号,datavalid指示数据是否有效,overflow指示数据是否溢出。
[data,datavalid,overflow] = rxPluto();  %利用 pluto进行数据接收

XK  =   fft( data );                    %fft变换

figure(1);
plot(freq,20*log10( fftshift(abs( XK )) ) );  %绘制数据的频谱

figure(2);
plot(real(data)); hold on;  %绘制数据实部
plot(imag(data));           %绘制数据虚部

将 pluto 通过 USB 插入到电脑主机,运行上述 matlab 代码。通过信号源给pluto 输入一个频率为 2.401 GHz 的信号,结果如下。

频域图 ,可以观察到在 1.02MHz 处存在信号。

时域图 ,I,Q两路数据如下,比较标准的正弦波。

2,在matlab中 进行数据发送

例子

发送、接收一个单频信号:

参数设置:

中心频率:800MHz

带宽:100kHz

发送端增益:0dB

接收端增益:30dB

接收端默认接收数据:20000bit,若要修改,在sdrrx对象中添加'SamplesPerFrame',20e4,数据长度自定义。

发送端代码:

代码语言:javascript
复制
txPluto = sdrtx('Pluto','RadioID','usb:0','CenterFrequency',800e6, ...'BasebandSampleRate',100e3,'ChannelMapping',1,'Gain',0); 

modSignal=exp(1i*2*pi/128*(1:1500000)).'; 

i=100; 

while i 
  txPluto(modSignal); 
  i=i-1 
end

运行上述脚本,将 pluto TX 端口连接到 示波器 或 频谱仪 上,即可观察到发送的信号。

PlutoSDR 官方网站:https://wiki.analog.com/university/tools/pluto

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字积木 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档