当前位置: 首页 > news >正文

软件无线电(SDR)的架构及相关术语

        今天简要介绍实现无线电系统调制和解调的主要方法,这在软件定义无线电(SDR)的背景下很重要。

外差和超外差

无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率(称为外差),而第二种超外差是通过两个调制阶段来实现这种转换:第一个是从基带到中频(IF),第二个是从中频到射频(RF)。

图1 外差方案中的调制和解调上
图1 外差方案中的调制和解调上

        图1展示了外差方案中的调制和解调。在这种情况下,单级调制用于将信号从基带转换到RF频率,而单级解调状态则进行相反的转换,从RF回到基带。

超外差方案如图2所示,显示了发生的频移。特别要注意的是,中频信号通常被调制到几十到几百MHz的频率范围内,而最终的射频频段可能要高得多——高达数十GHz。

图2 使用中频(IF)的调制和解调
图2 使用中频(IF)的调制和解调


采样率的影响

        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所示。

图3 Direct-RF软件定义无线电(RFSoC)的架构
图3 Direct-RF软件定义无线电(RFSoC)的架构标题


中频采样SDR

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

图4:数字中频软件定义无线电的架构
图4:数字中频软件定义无线电的架构


基带采样SDR

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

图5:基带采样软件定义无线电的架构
图5:基带采样软件定义无线电的架构

数字化实施的优势

        比较图3~图5可以清楚地看出,ADC使用的采样率越高,可以进行数字处理的量就越大。

        使用数字实现进行调制和解调有几个优点,包括更高的操作精度,减少组件公差的影响和更强的抗老化效应,更小的物理尺寸和简化的物料清单,功耗也可能更低。

        在SDR的背景下也有额外的好处,特别是由于软件控制无线电操作的范围增加,以及由此带来的灵活性。在使用FPGA或Soc的情况下,还可以提供硬件处理的可重编程性,从而实现更基础的升级和功能变化。

关键无线电术语和参数

在继续后面的章节之前,有必要定义一些关键术语和概念,这些术语和概念将在讨论SDR以及一般无线电系统的背景下频繁出现。这些在图6中进行了说明,并在后面进行了描述。

图6:信号和射频带宽,以及调谐范围(图示了频率、幅度、0Hz频率、RF带宽、采样率fs、调谐范围、信号带宽等概念。)
图6:信号和射频带宽,以及调谐范围(图示了频率、幅度、0Hz频率、RF带宽、采样率fs、调谐范围、信号带宽等概念。)

射频(RF)带宽(收发器)

        RF带宽这个术语描述了无线电收发器能够产生或捕获的频率范围。在SDR(以及一般数字无线电)的背景下,这与ADC和DAC采样率有关。

如图6所示,RF带宽是ADC和DAC使用的采样频率的一半。这假设使用的是单个ADC和DAC,代表的是实信号(与复信号相对)。如果使用复输入/输出,则RF带宽可以翻倍至完整的采样频率,但这需要一对ADC和DAC。复信号的主题将在第7章中介绍。

信号带宽

当提到无线电信号时,带宽是指在传输信号中存在的频率范围。注意图6中绿色信号频谱标注的信号带宽。

当使用SDR时,信号的带宽是实现设计的一个特征(可以在软件中定义)。例如,设计的发射机可能产生带宽为10kHz或100MHz的信号,具体取决于其配置。一般来说,更大带宽的信号可以以更快的速率传输数据。

最大信号带宽受限于SDR的射频带宽,这是实现SDR所使用的物理硬件设备的属性。

相关文章:

软件无线电(SDR)的架构及相关术语

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

Python将Excel文件转换为JSON文件

工作过程中,需要从 Excel 文件中读取数据,然后交给 Python 程序处理数据,中间需要把 Excel 文件读取出来转为 json 格式,再进行下一步数据处理。 这里我们使用pandas库,这是一个强大的数据分析工具,能够方便地读取和处理各种数据格式。需要注意的是还需要引入openpyxl库,…...

排序算法之选择排序篇

思想: 每次从未排序的部分找出最小的元素,将其放到已排序部分的末尾 从数据结构中找到最小值,放到第一位,放到最前面,之后再从剩下的元素中找出第二小的值放到第二位,以此类推。 实现思路: 遍…...

sizeof和strlen区分,(好多例子)

sizeof算字节大小 带\0 strlen算字符串长度 \0之前...

A050-基于spring boot物流管理系统设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…...

[自然语言处理] NLP-RNN及其变体-干货

一、认识RNN模型 1 什么是RNN模型 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出. 一般单层神经网络结构: RNN单层网络结构: 以时间步对RNN进行展开后的单层…...

Elasticsearch ILM 索引生命周期管理讲解与实战

ES ILM 索引生命周期管理讲解与实战 Elasticsearch ILM索引生命周期管理:深度解析与实战演练1. 引言1.1 背景介绍1.2 研究意义2. ILM核心概念2.1 ILM的四个阶段2.1.1 Hot阶段2.1.2 Warm阶段2.1.3 Cold阶段2.1.4 Delete阶段3. ILM实战指南3.1 定义ILM策略3.1.1 创建ILM策略3.1.…...

重塑视频新语言,让每一帧都焕发新生——Video-Retalking,开启数字人沉浸式交流新纪元!

模型简介 Video-Retalking 模型是一种基于深度学习的视频再谈话技术,它通过分析视频中的音频和图像信息,实现视频角色口型、表情乃至肢体动作的精准控制与合成。这一技术的实现依赖于强大的技术架构和核心算法,特别是生成对抗网络&#xff0…...

联想Lenovo SR650服务器硬件监控指标解读

随着企业IT架构的复杂性和业务需求的增长,服务器的稳定运行变得至关重要。联想Lenovo SR650服务器以其高性能和稳定性,在各类应用场景中发挥着关键作用。为了保障服务器的稳定运行,监控易作为一款专业的IT基础设施监控软件,为联想…...

二十一、QT C++

1.1QT介绍 1.1.1 QT简介 Qt 是一个跨平台的应用程序和用户界面框架,用于开发图形用户界面(GUI)应用程序以及命令行工具。它最初由挪威的 Trolltech (奇趣科技)公司开发,现在由 Qt Company 维护&#xff…...

微服务上下线动态感知实现的技术解析

序言 随着微服务架构的广泛应用,服务的动态管理和监控变得尤为重要。在微服务架构中,服务的上下线是一个常见的操作,如何实时感知这些变化,确保系统的稳定性和可靠性,成为了一个关键技术挑战。本文将深入探讨微服务上…...

指针与引用错题汇总

int *p[3]; // 定义一个包含 3 个指向 int 的指针的数组int a 10, b 20, c 30; p[0] &a; // p[0] 指向 a p[1] &b; // p[1] 指向 b p[2] &c; // p[2] 指向 c // 访问指针所指向的值 printf("%d %d %d\n", *p[0], *p[1], *p[2]); // 输出: 10 20 30…...

短视频账号矩阵系统源码--独立saas技术部署

短视频矩阵系统通过多账号在多个平台上发布内容,形成一种网络效应。对于抖音平台而言,技术公司需具备特定接口权限方能进行开发工作。然而,视频发布及企业号评论与回复等功能的接口权限往往难以获取。通过构建抖音账号矩阵,利用多…...

leaflet 介绍

目录 一、leaflet 官网 二、leaflet 在项目中的引用 1、在head中引入 2、在main.js中引入 leaflet目前版本是1.9.4,在leaflet插件库中,很多插件因长时间未更新,适配的是1.7版本的,在选用插件的时候要查看版本适配。 leaflet详…...

总结贴:Servlet过滤器、MVC拦截器

一:Servlet过滤器 1.1解析 Filter 即为过滤,用于请求到达Servlet之前(Request),以及再Servlet方法执行完之后返回客户端进行后处理(HttpServletResponse)。简单说就是对请求进行预处理,对响应进行后处理 在请求到达Servlet之前,可以经过多个Filt…...

鸿蒙开发:自定义一个任意位置弹出的Dialog

前言 鸿蒙开发中,一直有个问题困扰着自己,想必也困扰着大多数开发者,那就是,系统提供的dialog自定义弹窗,无法实现在任意位置进行弹出,仅限于CustomDialog和Component struct的成员变量,这就导致…...

在Windows下编译支持https的wsdl2h

下载源码 在官网下载源码 安装Openssl 下载OpenSSL并安装,安装完成后需要将OpenSSL的路径添加到环境变量中 配置VS 1、打开工程 2、因为前面安装的OpenSLL是64位的,因此需要创建一个X64的配置 打开配置管理器,然后选择新建&#xff0…...

PHP和GD库如何根据像素绘制图形

使用PHP和GD库,你可以根据像素绘制各种图形,比如点、线、矩形、圆形等。GD库是PHP的一个扩展,它提供了一系列用于创建和处理图像的函数。以下是一个简单的示例,展示如何使用GD库根据像素绘制图形。 安装GD库 首先,确…...

webpack(react)基本构建

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具。它的主要功能是将各种资源(如 JavaScript、CSS、图片等)视为模块,并将它们打包成一个或多个输出文件,以便…...

《Opencv》基础操作<1>

目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

MySQL 主从同步异常处理

阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示&#xff…...