当前位置:网站首页>PlutoSDR学习指南【2】无线数据传输
PlutoSDR学习指南【2】无线数据传输
2022-08-11 11:42:00 【数字积木】
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中 进行数据接收。
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中 进行数据发送
例子
发送、接收一个单频信号:
参数设置:
中心频率:2400MHz
发送端增益:0dB
基带采样率 :30.72MHz
发送数据长度:65536
发射端增益:0
发送端代码:
clear all
close all
clc
CenterFrequency = 1000000000 ; %中心频率 1GHZ
BasebandSampleRate = 30.72e6 ; %基带采样率 30.72MHz
txPluto = sdrtx('Pluto');
txPluto.RadioID = 'usb:0' ;
txPluto.CenterFrequency = CenterFrequency ;
txPluto.BasebandSampleRate = BasebandSampleRate ;
txPluto.ChannelMapping = 1;
txPluto.Gain = 0 ; %发射端增益
%%生成信号
%基带采样率:30.72MHz
%基带信号频率 10KHz
%点数:65536
fc = 100e3; %基带信号频率 10KHz
fs = BasebandSampleRate;
N = 65536*2 ;
t = (1:N)/fs ;
f = fs*(0:N-1)/N ;
input=exp(1i*2*pi*fc*t )';
figure(1);
plot(t,real(input));
figure(2);
plot( f , 20*log10( abs( fft(input) ) ) ) ;
%%发送数据
%发送100次
for a = 0:2000
txPluto(input);
end
运行上述脚本,将 pluto TX 端口连接到 示波器 或 频谱仪 上,即可观察到发送的信号。
PlutoSDR 官方网站:https://wiki.analog.com/university/tools/pluto
边栏推荐
猜你喜欢
随机推荐
Flutter 教程之 Flutter 中的 HMS 定位工具包
全网最全的权限系统设计方案(图解)
leetcode:360. 有序转化数组
简单记录openguass_exporter对接prometheus通过grafanai来实现可视化监控
eyb:Redis集成菜单到权限组菜单更新功能(二)
【数学】几何在线画图
svg图片调整大小和颜色
Ince-Gaussian mode
SM5200原厂SOT23-6 500mA 线性锂电子替代芯片
openEuler小程序会议指南
Ince-Gaussian模式
或命名“狙击手” 长安全新皮卡申报图
好的架构是进化来的,不是设计来的
在这个数字化的时代,如何做好用户体验与应用性能管理
B端产品需求分析与优先级判断
Uber的20万容器实践:如何避免容器化环境中的 CPU 节流
莫队学习总结
学习笔记【nlp中的sample和beam_search】
EastWave应用:负折射现象实时演示
1.servlet规范简单整理