软件无线电(SDR)的架构及相关术语
今天简要介绍实现无线电系统调制和解调的主要方法,这在软件定义无线电(SDR)的背景下很重要。
外差和超外差
无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率(称为外差),而第二种超外差是通过两个调制阶段来实现这种转换:第一个是从基带到中频(IF),第二个是从中频到射频(RF)。

图1展示了外差方案中的调制和解调。在这种情况下,单级调制用于将信号从基带转换到RF频率,而单级解调状态则进行相反的转换,从RF回到基带。
超外差方案如图2所示,显示了发生的频移。特别要注意的是,中频信号通常被调制到几十到几百MHz的频率范围内,而最终的射频频段可能要高得多——高达数十GHz。

采样率的影响
SDR中数字处理元件可以实现的采样率,特别是无线电的ADC和DAC的采样率,决定了无线电的实现方式——特别是哪些部分可以实现数字,哪些部分需要模拟电路。这是因为数字处理只能在满足奈奎斯特准则的情况下使用,换句话说,当采样率大于信号中存在的最大频率分量的两倍时,根据用于传输信号的射频频带,有可能实现所有调制和解调的数字化,具体而言,如果满足下面条件:
其中,fs是ADC和DAC的采样率,frfmax是RF调制信号中存在的最大频率。如果满足上述条件,那么所有的模拟信号处理都可以在数字域中完成,从而实现所谓的直接射频(Direct-RF)或几乎全数字(Almost-All-Digital)无线电架构。
如果不能满足上式的条件,另一种选择是在数字域中实现基带和中频(IF)之间的调制和解调阶段,而IF和RF之间的转换则通过模拟电路来处理。在这种情况下,ADC位于IF频段,所需的采样率可能从几十MHz到几百MHz不等。
现在,可以继续考虑三种不同的无线电架构,它们是基于DAC和ADC的位置而产生的。请注意,所有这些模型都是简化的表示,省略了一些所需的滤波阶段。
直接RF(几乎全数字)SDR
通过这些不同的无线电架构,我们可以看到,随着ADC和DAC技术的进步,特别是采样率的提高,越来越多的频带可以实现几乎全数字的无线电。这种几乎全数字的无线电需要非常少的模拟处理——主要包括天线、前端滤波器和放大器。从SDR的角度来看,几乎所有功能都通过数字实现是非常重要的,这意味着无线电的操作可以通过软件来控制,如图3所示。

中频采样SDR
对于射频(RF)频率高于可用的DAC和ADC采样率的情况,可以使用超外差变频架构,基带与中频(IF)之间的调制/解调在无线电的数字部分完成,而IF与RF之间的转换则使用模拟电路处理。即便如此,通常仍然可以通过软件对模拟混频阶段施加控制。当ADC位于IF频率时,所需的采样率可能从几十兆赫兹(MHz)到几百兆赫兹(MHz)不等。这种类型的SDR架构如图4所示。

基带采样SDR
另一类SDR,如图5所示,具有基带处理速率的ADC,所有调制和解调都在模拟域中执行,无论是使用单级还是两级。从历史上看,这种方法在DAC和ADC技术(特别是可实现的采样率)的限制下被使用,因为这是A/D接口唯一可行的位置。这种“基带采样”架构也可能被用在低成本、低数据速率的设备中,以最小化对数字处理器的要求,或者在应用中采用最先进的多GSPS数据转换器,用于发射和接收极宽频带的信号。

数字化实施的优势
比较图3~图5可以清楚地看出,ADC使用的采样率越高,可以进行数字处理的量就越大。
使用数字实现进行调制和解调有几个优点,包括更高的操作精度,减少组件公差的影响和更强的抗老化效应,更小的物理尺寸和简化的物料清单,功耗也可能更低。
在SDR的背景下也有额外的好处,特别是由于软件控制无线电操作的范围增加,以及由此带来的灵活性。在使用FPGA或Soc的情况下,还可以提供硬件处理的可重编程性,从而实现更基础的升级和功能变化。
关键无线电术语和参数
在继续后面的章节之前,有必要定义一些关键术语和概念,这些术语和概念将在讨论SDR以及一般无线电系统的背景下频繁出现。这些在图6中进行了说明,并在后面进行了描述。

射频(RF)带宽(收发器)
RF带宽这个术语描述了无线电收发器能够产生或捕获的频率范围。在SDR(以及一般数字无线电)的背景下,这与ADC和DAC采样率有关。
如图6所示,RF带宽是ADC和DAC使用的采样频率的一半。这假设使用的是单个ADC和DAC,代表的是实信号(与复信号相对)。如果使用复输入/输出,则RF带宽可以翻倍至完整的采样频率,但这需要一对ADC和DAC。复信号的主题将在第7章中介绍。
信号带宽
当提到无线电信号时,带宽是指在传输信号中存在的频率范围。注意图6中绿色信号频谱标注的信号带宽。
当使用SDR时,信号的带宽是实现设计的一个特征(可以在软件中定义)。例如,设计的发射机可能产生带宽为10kHz或100MHz的信号,具体取决于其配置。一般来说,更大带宽的信号可以以更快的速率传输数据。
最大信号带宽受限于SDR的射频带宽,这是实现SDR所使用的物理硬件设备的属性。
相关文章:
软件无线电(SDR)的架构及相关术语
今天简要介绍实现无线电系统调制和解调的主要方法,这在软件定义无线电(SDR)的背景下很重要。 外差和超外差 无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率(称为外差),而第二种超外差是通过两个调制阶段来实…...
刷题分享11_30
刷题分享 1.(力扣216)这是一道回溯算法的经典题目。对于回溯算法,一般backtracking是没有返回值的,参数也比较不固定,需要根据每个题的特点来具体分析。这道题因为不能取到重复元素,所以需要额外加一个参数startindex,…...
Java技术复习提升 17反射
本章涉及到框架开发中必用的反射以及常用方法 很重要 注重理解并实践 第17章 反射 17.1 一个需求引出反射 package com.fsl; public class Cat {private String name "招财猫";public int age 10; //public的public Cat() {} //无参构造器public Cat(String name)…...
Python中的字符串
Python中的字符串 在Python中,字符串是用于表示文本数据的基本数据类型。字符串可以包含字母、数字、符号和空格等字符。Python提供了多种方式来定义和操作字符串。 字符串的定义 在Python中,字符串可以用单引号 或双引号 "" 括起来。例如…...
B站狂神说Mybatis+Spring+SpringMVC整合理解(ssm框架整合)
文章目录 0.写在前面(对mybatis,spring的理解)(不看可跳过)0.1 为什么需要mybatis0.2 为什么需要spring0.3为什么需要springmvc 1.新建ssmbuild数据库2.新建Maven项目3.初始化步骤3.1 配置下载maven依赖,构建资源导出3.2 连接数据库3.3建包&a…...
python:文件操作
一、文件路径 在Windows系统中,每个磁盘都有自己的根目录,用分区名加反斜杠来表示。我们定位文件的位置有两种方法,一种是绝对路径,另一种是相对路径。绝对路径是从根目录出发的路径,路径中的每个路径之间用反斜杠来分…...
ECharts柱状图-极坐标系下的堆叠柱状图,附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…...
HDMI协议
HDMI设计3--HDMI 1.4/2.0 Transmitter Subsystem IP - 皮皮祥 - 博客园 HDMI设计4--HDMI 1.4/2.0 Receiver Subsystem IP - 皮皮祥 - 博客园 HDMI协议 - 标签 - 皮皮祥 - 博客园...
SpringBoot集成Flowable
一、工作流介绍 1、概念 通过计算机对业务流程的自动化管理。工作流是建立在业务流程的基础上,一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。 解决的是:在多个参与者之间按照某种预定义的规则自动进行传递文…...
五,[GXYCTF2019]Ping Ping Ping1
进入靶场,有提示 我们在url试着输入本地IP,返回了ping命令 既然要在url处传参,那就用postman,再输入ip127.0.0.1 & ls,试着列出目录内容 ok,好像是个脏话,它过滤了空格 试着穿越又看到了脏话࿰…...
Linux -初识 与基础指令1
博客主页:【夜泉_ly】 本文专栏:【Linux】 欢迎点赞👍收藏⭐关注❤️ 文章目录 📚 前言🖥️ 初识🔐 登录 root用户👥 两种用户➕ 添加用户🧑💻 登录 普通用户⚙️ 常见…...
单片机学习笔记 12. 定时/计数器_定时
更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...
采用片上光学相控阵的激光雷达
激光雷达基础知识 LIDAR 基于众所周知的 RADAR 原理雷达是20世纪初就存在的著名技术激光雷达使用光频率而不是无线电波 激光雷达和雷达 使用相控阵的激光雷达通过干涉来提高方向性 激光雷达的输出剖面是阵列因子和单天线远场的乘积。 N :天线数量 k :…...
LeetCode Hot100 11~20
目录 子串11. 滑动窗口最大值12. 最小覆盖子串 数组13. 最大子数组和14. 合并区间15. 翻转数组16. 除数字自身以外的乘积17. 缺失的第一个正数 矩阵18. 矩阵置零19. 螺旋矩阵20 旋转图像90度 子串 11. 滑动窗口最大值 本题使用deque来维护一个单调队列 注意删除元素和添加元素…...
泰州榉之乡全托机构探讨:自闭症孩子精细动作训练之法
当发现自闭症孩子精细动作落后时,家长们往往会感到担忧和困惑。那么,自闭症孩子精细动作落后该如何训练呢?今天,泰州榉之乡全托机构就来为大家详细解答。 榉之乡大龄自闭症托养机构在江苏、广东、江西等地都有分校,一直…...
Mybatis:CRUD数据操作之修改数据update
Mybatis基础环境准备请看:Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之修改数据 用户在该页面书写需要修改的数据,点击 提交 按钮,就会将数据库中对应的数据进行修改。注意一点,如果哪儿个输入框没有输入内容ÿ…...
模拟器快速上手,助力HarmonyOS应用/服务高效开发
文章目录 1 创建模拟器1)打开设备管理界面2)设置本地模拟器实例存储路径3)创建一个模拟器(1)选择模拟器设备(2)创建模拟器(3)启动模拟器(4)关闭模…...
ERROR in [eslint] Invalid Options ‘extensions‘ has been removed.
看着这个报错 感觉是版本不对引起的 ERROR in [eslint] Invalid Options: - Unknown options: extensions - extensions has been removed. ERROR in Error: Child compilation failed: [eslint] Invalid Options: - Unknown options: extensions - extensions has b…...
40分钟学 Go 语言高并发:GC原理与优化
GC原理与优化 一、GC基础知识概览 方面核心概念重要性优化目标GC算法三色标记法、并发GC⭐⭐⭐⭐⭐理解GC工作原理垃圾回收策略触发条件、回收步骤⭐⭐⭐⭐⭐掌握GC过程GC调优参数设置、性能监控⭐⭐⭐⭐优化GC效果内存管理内存分配、内存逃逸⭐⭐⭐⭐⭐减少内存压力 让我们…...
【UG\NX二次开发-Block UI】指定方位 VisibleManipulatorHandles 设置控制器手柄可见
特定于块属性 VisibleManipulatorHandles 值 Origin 0x1 原点 Ratate X 0x10 旋转 Ratate Y 0x20 Ratate Z 0x40 Translate X 0x2 平移 Translate Y 0x4 Translate Z 0…...
【Spring】聊聊@EventListener注解原理
1.一个Demo出发 在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来…...
Online Judge——【前端项目初始化】全局状态管理
状态管理:所有页面全局共享的变量,而不是局限在某一个页面中。 适合作为全局状态的数据:比如已登录用户信息。 目录 一、创建user.ts文件二、定义user模块三、获取静态变量四、修改状态变量 一、创建user.ts文件 我们要实现状态管理的话&am…...
微信小程序构建npm失败,没有找到可以构建的npm包
方法:打开终端输入 npm init -y npm install 或 yarn install我用 npm install 下载后并没有出现node_modules, 又用 yarn install 下载,成功了 下载好后,在project.config.json文件添加 "showShadowRootInWxmlPanel": true, …...
《数字图像处理基础》学习07-图像几何变换之最近邻插值法放大图像
目录 一,概念 二,题目及matlab实现 1,解题思路 2,matlab实现 1)matlab思路 2)完整代码 三,放大图像及matlab实现 一,概念 通过上一篇,我已经学习了使用最邻近插…...
科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次
今年12月03日是第33个国际残疾人日。在当下科技发展日新月异的时代,如何让残障人士共享科技红利、平等地参与社会生活,成为当前社会关注的热点。 中国有超过8500万残障人士,其中超过2400万为肢残人群,视力障碍残疾人数超过1700万…...
数据结构——有序二叉树的构建遍历查找
树节点 先定义树节点结构,代码如下: package tree;public class TreeNode {public int data;public TreeNode left;public TreeNode right;//数据的类型决定数据在内存中的存储形式,//这样可以接受本类型的数据public TreeNode(int data) {this.datada…...
React 状态管理:Redux 和 MobX 的对比与选择
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
CSDN设置成黑色背景(谷歌 Edge)
一.谷歌浏览器 浏览器地址输入:Chrome://flags搜索框输入:enable-force-dark将default 改成 enabled,点击重启浏览器 二.Edge浏览器 浏览器地址输入:edge://flags搜索里面输入Auto Dark Mode for Web Contents将default 改成 e…...
SAP Native SQL 的简单说明
Open SQL访问数据字典中声明的数据库表,不区分数据库类型,执行时会自动转换为对应的语句,且可以使用本地缓存。Native SQL使用特定于数据库的SQL语句,但是可以访问比Open SQL 更多的表,更多的操作,缺点也很明显&#x…...
shodan2-批量查找CVE-2019-0708漏洞
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
LabVIEW实现RS485通信
目录 1、RS485通信原理 2、硬件环境部署 3、串口通信函数 4、程序架构 5、前面板设计 6、程序框图设计 7、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常…...
【分页查询】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...
【QT入门到晋级】QT项目打生产环境包--(Linux和window)
前言 使用QTcreator完成正常编译后,在构建目录中有可执行程序生成,如果直接把可执行程序拷贝到干净的生产环境上是无法运行成功的,使用ldd(查看程序依赖包)会发现缺失很多QT的特性包,以及将介绍国产Linux桌…...
Milvus×Florence:一文读懂如何构建多任务视觉模型
近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…...
深入理解异步编程:使用 `asyncio` 和 `aiohttp` 进行并发请求
深入理解异步编程:使用 asyncio 和 aiohttp 进行并发请求 1. 异步编程简介2. 代码结构概览3. 代码详解3.1 fetch 函数3.2 fetch_all 函数3.3 main 函数3.4 主程序 4. 性能分析5. 总结 在现代的Web开发中,性能优化是一个非常重要的课题。特别是在处理大量…...
C++之虚函数
对基类中的方法进行重写; 主要是通过继承机制 V 表实现; 虚函数的引入与不加入虚函数的主要区别在于 动态多态性。通过将 Entity 类的 GetName 函数声明为 virtual,可以实现 运行时多态,这意味着程序会根据对象的实际类型调用相应…...
buildroot 制作Linux嵌入式文件系统,并添加telnet 以及ssh
在开始配置前,我们需要了解SSH和Telnet的基本概念。SSH(Secure Shell)为加密的网络协议,用于在不安全的网络中执行命令并管理网络服务。相对于SSH,Telnet是一个老旧且非加密的协议,用于进行远程登录 sshd 服…...
(Linux 系统)进程控制
目录 一、进程创建 1、fork函数初识 二、进程终止 1、正常终止 2、异常终止 三、进程等待 1、进程等待必要性 2、进程等待的方法: 四、获取子进程status 1、基本概念 2、进程的阻塞等待方式 3、进程的非阻塞等待方式 五、进程程序替换 1、六种替换函数…...
Redis进行性能优化可以考虑的一些策略
选择合适的数据结构 根据实际的需求选择合适的数据结构,以高效地访问和存储多个属性。 比如如果你需要存储用户的多个属性,如用户名、邮箱等,使用哈希可以比使用多个字符串键值对更节省内存 避免大key/value 较大地key和value会占用更多的…...
win10系统部署RAGFLOW+Ollama教程
本篇主要基于linux服务器部署ragflowollama,其他操作系统稍有差异但是大体一样。 一、先决条件 CPU ≥ 4核; RAM ≥ 16 GB; 磁盘 ≥ 50 GB; Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1。 如果尚未在本地计算机ÿ…...
新型大语言模型的预训练与后训练范式,Meta的Llama 3.1语言模型
前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整…...
【Spark源码分析】规则框架-草稿
规则批:规则集合序列,由名称、执行策略、规则列表组成。一个规则批里使用一个执行规则。 执行策略 FixedPointOnce 规则: #mermaid-svg-1cvqR4xkYpMuAs77 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px…...
力扣第 77 题 组合
题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按任意顺序返回答案。 示例 示例 1 输入: n 4, k 2输出: [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]示例 2 输入: n 1, k …...
postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等
在Postman中,您可以使用内置的动态变量和编写脚本的方式来获取随机数、唯一ID、时间日期以及截取指定位数的字符。以下是具体的操作方法: 一、postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等 获取…...
【汇编】逻辑指令
文章目录 一、逻辑运算指令(一)各逻辑运算指令格式及操作(1)逻辑非指令 NOT(2)逻辑与指令 AND(3)逻辑或指令 OR(4)异或指令 XOR(5)测试…...
LinkedList的了解
一、LinkedList的定义与类型 Java中的LinkedList类是一个双向链表(Doubly Linked List)。与单向链表(Singly Linked List)不同,双向链表中的每个节点不仅包含指向下一个节点的引用,还包含指向前一个节点的…...
2411mfc,修改按钮颜色
添加消息:ON_WM_CTLCOLOR() //在OnInitDialog()方法中添加{HWND hSatateWnd GetDlgItem(IDC_CHK)->GetSafeHwnd();SetWindowTheme(hSatateWnd, _T(""), _T(""));}头文件中: afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);HBRUSH O…...
NLP中的主题模型:LDA(Latent Dirichlet Allocation, 潜在狄利克雷分配)
探索自然语言处理中的主题模型:LDA与狄利克雷分布 主题模型是一种用于发现文档集合中潜在主题的概率生成模型。其中,LDA(Latent Dirichlet Allocation, 潜在狄利克雷分配)是最著名的主题模型之一。在 LDA 中,狄利克雷…...
javaweb Day11
Maven高级 1.分模块设计...
pnpm的menorepo项目配置eslint和prettier
1、使用eslint脚手架安装相关依赖并生成对应配置文件 pnpm dlx eslint/create-config 自动安装了以下几个插件 生成的配置文件如下所示,和csdn其他教程里面不一样,这是因为eslint升级成9.xx版本了 需要node版本20以上 eslint 9.x 升级或使用指南…...