首页 > 其他分享 >使用Pluto SDR发送单音信号(Matlab)

使用Pluto SDR发送单音信号(Matlab)

时间:2024-04-09 20:31:16浏览次数:32  
标签:SDR tx sw 单音 Pluto 发送 信号

RTL-SDR电视棒应该有不少人都玩过,几十块钱就可以接收到很宽频段的信号,不仅可以收听广播,还可以监听某些电台,甚至可以接收GPS信号进行定位,但它作为无线电设备的痛点就是只能收但不能发,不能自己发送信号,是不是有点手痒痒,如果恰巧手里有一块可以同时收发信号的Pluto SDR,那么玩法可就多了,但最基础的还是学会怎么发送信号,接下来使用Matlab编程的方法实现SDR发送信号。

声明:本文只涵盖了代码实现,没有涉及到Simulink实现,实际上使用界面化的Simulink会更加方便,但由于相关文章很多,本文概不赘述。

准备环境

想要使用Matlab对Pluto SDR开发需要先安装Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio,需要2017b及更新的版本。
plutosdr

代码实现

首先需要自己生成一个信号,这里以单音信号举例,使用DSP toolkit生成一个幅度0.5,频率100kHz的正弦信号,并规定采样率2MHz,每帧5k样本(即400帧/秒)。注意Pluto SDR处理的是复数信号,所以生成的正弦波需要是复数输出。

fs = 2e6;
sw = dsp.SineWave;
sw.Amplitude = 0.5;
sw.Frequency = 100e3;
sw.ComplexOutput = true;
sw.SampleRate = fs;
sw.SamplesPerFrame = 5000;
txWaveform = sw();

根据官方文档,想要发送信号,需要先创建一个sdrtx对象,然后对其属性进行修改,例如设备ID、中心频率(此处设定为2.415GHz)、基带采样率等,最后transmitRepeat让连接到的设备一直重复发送设定好的单音信号。

tx = sdrtx('Pluto');
tx.RadioID = 'ip:192.168.1.10';
tx.CenterFrequency = 2.415e9;
tx.BasebandSampleRate = fs;
tx.Gain = -5;
transmitRepeat(tx,txWaveform);

若想让发送停止,在命令窗口输入release(tx)即可。

结果呈现

使用另一个接收设备,将中心频率调整到2.415GHz附近,可以观察到2.4151GHz有一强度很高的信号,这就是我们的100MHz基带信号被搬移到了2.415GHz频段的结果。周围很多小尖峰是我们的单音信号的谐波分量,当发射端release(tx)后,即停止发射信号后,这些小谐波都会消失,图上的这个频段会恢复寂静。
在这里插入图片描述

标签:SDR,tx,sw,单音,Pluto,发送,信号
From: https://blog.csdn.net/Clouds42/article/details/137249180

相关文章

  • 从SDRAM到DDR SDRAM
    内容:SDRAM的操作和代码;DDR3的一些介绍(DDR3代码在其他地方)之前的笔记:存储器~Zynqbook第九章_zynq存储数据-CSDN博客SDRAM学习与实现串口传图_如何传输给sdram-CSDN博客Zynq上的存储器接口与差分时钟与DDR3_zynqddr3-CSDN博客DDR3笔记频率配置_ddr3在z系列芯片的设置-CSDN博......
  • Pluto 轻松构建云应用:开发指南
    开发者只需在代码中定义一些变量,Pluto就能基于这些变量自动创建与管理必要的云资源组件,达到简化部署和管理云基础设施的目的,让开发者更容易使用云。这里的云资源并非指IaaS,而是指BaaS、FaaS等托管资源组件。这类托管组件相较于自建实例通常具有更高的可靠性与更低的成本。这......
  • 基于MIMO通信系统的球形译码算法matlab性能仿真,对比PSK检测,SDR检测
    1.算法运行效果图预览 2.算法运行软件版本MATLAB2022A 3.算法理论概述      球形译码算法(SD)是一种基于多输入多输出(MIMO)通信系统的检测算法。与相移键控(PSK)和软件定义无线电(SDR)相比,它具有更高的频谱效率和可靠性,下面将详细介绍SD算法。       ......
  • Android应用开发长按拖拽-Flutter的LongPressDraggable控件回调函数onDraggableCancel
    onDraggableCanceled介绍LongPressDraggable的onDraggableCanceled回调在拖动被取消时触发。拖动可能会被取消,例如用户在拖动开始后移动了太快或在放置之前取消了拖动。onDraggableCanceled的使用以下是如何使用onDraggableCanceled的示例:LongPressDraggable<int>(//......
  • 转一篇DDR SDRAM 电源完整性分析
    Project:MOTOROLAX??Software:CSTPCBSTUDIO (对电源完整性分析使用的是CSTPCBSTUDIO里的频域有限元法对电源平面进行建模)MentorHyperLynxPI说明:1:MTK帮我们分析电源完整性是采用的Sigrity(已被Cadence收购)。2:MTK做的电源完整性分析包括板级电源完整性和......
  • 把对象传递到Thisdrawing.SendCommand的参数中去
    VBA不像lisp可以随意在命令行参数中传递对象,但可以采取如下方法:DimobjasAcadXXXDim ObjHandleasString……'将对象句柄转换成lisp表达式字符串,传递过去ObjHandle = "(list(handent" & Chr(34) & obj.Handle & Chr(34) & "))" ThisDrawing.SendCommand ("......
  • 使用FMC连接SDRAM扩展STM32内存
    1.引脚初始化BSP_SDRAM_GPIO_InitvoidBSP_SDRAM_GPIO_Init(void){RCC_AHB1PeriphClockCmd(FMC_A0_GPIO_CLK,ENABLE);RCC_AHB1PeriphClockCmd(FMC_A1_GPIO_CLK,ENABLE);RCC_AHB1PeriphClockCmd(FMC_A2_GPIO_CLK,ENABLE);RCC_AHB1PeriphClockCmd(FMC_A3......
  • wsdream2
    importosimporturllib.requestimportzipfilefrompprintimportpprintimportnumpyasnpimporttensorflowastfimportkerasaskdefset_session(device_count=None,seed=0):gpu_options=tf.compat.v1.GPUOptions(allow_growth=True)ifdevice_......
  • wsdream
    importosimporturllib.requestimportzipfilefrompprintimportpprintimportnumpyasnpimporttensorflowastfimportkerasaskdefset_session(device_count=None,seed=0):gpu_options=tf.compat.v1.GPUOptions(allow_growth=True)ifdevice_c......
  • 基于FPGA 的SDRAM控制器
    SDRAM基本信息储存能力计算4X16X4=256(Mbit),注意不是MByteSDRAM控制sdram包含两个部分:sdram_ctrl、fifo_ctrl。sdram_ctrl:其顶层为SDRAM的控制模块内部实例化了5个模块,有初始化、自刷新、写和读模块,还有一个仲裁模块对这四个不同操作进行分配;fifo_ctrl:其顶层为SDRAM的数据......