当前位置:网站首页>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

原网站

版权声明
本文为[数字积木]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42905573/article/details/114529050