什么是QAM
什么是调制呢?
调制就是把信号形式转换成适合在信道中传输的一个过程。可分为基带调制和载波调制。我们这里所说的调制都是载波调制。
什么是载波调制呢?
就是把调制信号骑到载波上,方法就是用调制信号去控制载波的参数,使载波的一个参数或者几个参数按照调制信号的规律变化。
载波调制根据调制信号的类型,又可以分为模拟调制和数字调制。
如果调制信号是连续的模拟信号的话,这样的调制就是模拟调制,我们在文章《信号调制,这样是不是就懂了?》介绍的三种最基本的调制方式:AM,FM和PM都是模拟调制的一类。
图片
通过这一个操作,就可以让信号搭上载波的快速列车,然后传输出去。经过调制的信号,称为已调信号,在接收端可以通过解调的方式把信号恢复出来。
调幅和调频都比较容易理解,一个是幅度的变化,一个是频率的变化。那怎么又多出来一个QAM呢?
AM既然是调幅,前面的那个Q是什么呢?Quadrature,正交的意思,QAM就是正交幅度调制。在通信这个学科里面,正交是指这两个信号有90°的相位差。也就是在QAM里面,既有相位调制,又有幅度调制。这一改还不得了,不仅有4QAM,8QAM,16QAM… 甚至还有1024QAM。一下子就把调制的信息翻了好多倍,牛x的不得了了。
QAM的原理是什么呢?
我们从一个最简单的信号说起。
图片
按照三角函数公式展开就是
图片
这样就把信号s(t)展开成了两个相位相差90°的正交信号的和,这个两个正交信号分量就是 In-phase 信号和 Quadrature 信号,
图片
这两个正交分量如下图所示,相位相差90°。
图片
这两路正交信号呢,经过DA变换器之后,就来到了我们模拟通道,我们需要对这两个信号分别进行调制,让这两个信号都搭上射频载波的高速列车。模拟部分对QAM的处理并不复杂,I /Q 信号可以共用一个频率源LO,然后通过混频器直接上变频即可,只是在Q通道,本振信号需要90°的相移,以匹配Q(t)正交特性。
图片
所以呢,对于QAM载波调制,从原理图上可以看出,我们仅需要分别对I(t)和Q(t)进行混频即可,然后合路成一路信号S(t)进入到射频通道的另一个环节。所以对于模拟信号的QAM调制,也就是这么个回事。
数字信号QAM调制
既然说到数字调制,那我们就简单复习一下数字调制的三种基本方式:振幅键控ASK,频移键控FSK和相移键控PSK。
振幅键控ASK,类似于模拟调制中的AM,即用01 高低电平来调制载波信号的振幅。
频移键控FSK,类似于模拟调制中的FM,即用01电平去调制载波信号的频率;
相移键控PSK,也就是用01电平去调制载波信号的相位。
下图给出了数字调制的三种基本调制的已调信号波形。
图片
QAM正交幅度调制来到数字调制这里就活跃起来了,既然主信号分成了 I 、Q 两路信号,每个信号分量都有其各自的幅度和相位。那变化的花样可就多了。什么16QAM,64QAM,256QAM,wifi7 现在玩到了4kQAM,即4096-QAM,牛叉的不要不要的。
为什么m-QAM这个m越大越牛叉呢?
在数字信号中,我们引入了一个比特 bit 的概念,这个比特就是比特币的比特,代号是B,好贵啊,1 比特币现在值15万元, OMG。
图片
数字信号的BIT就是二进制数字中0和1的位,信息量的度量单位,为信息量的最小单位。二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特。一个比特位里面可以含2个信息(0或者1),4比特就可以包含2^4 个信息。所以比特位越多,所能传输的信息量就越大。所以从理论上来说,m-QAM中的m越大,所能传输的信息量就越大,传输速率也就越快。所以呢最新的wifi7标准直接干到了4k-QAM,一个信号包含12个bit位。
图片
QAM是怎么实现的呢?
我们回到上文QAM的原理部分,继续刷数学公式。
图片
上式中的I(t)和Q(t)信号的幅度提出来玩一下:
图片
这两个正交分量的幅度AI 和AQ 又是一组正交的函数。我们可以取多个不同的A和Φ,来得到多组不同的I(t)和Q(t)信号,也就是可以完成主信号 S(t)的多种调制。
若A值取±A,Φ值取±90°,这就有四组不同的组合,也就是4-QAM调制,也就是QPSK。同理,通过A和Φ的不同组合,就可以得到16-QAM,甚至64-QAM,甚至更多。
为了更好的理解,我们引入了星座图的概念,下面这个动图,生动的展示了16-QAM调制的幅度和相位选值以及其对应的二进制码元:Amp 就是A的选值,Phase 就是上式中的相位Φ的选值。
图片
每个点对应的波形图可以参考下图所示。
图片
星座图比较直观地展示了m-QAM的信号矢量信息。更大的m,只需要更多的点来表示即可。下图给出了Wifi5 的256-QAM和wifi6的1024-QAM 星座图。
图片
QAM信号是怎么产生的呢?
常用的方法有两种:正交调幅法和复合相移法
以16-QAM调制为例,正交调幅法就是用两路独立的正交4ASK信号叠加,形成16QAM信号。
图片
而复合相移法就是用两路独立的QPSK信号叠加,形成16QAM信号。下图中红圈上的四个点表示第一个QPSK的信号矢量的位置,在这四个位置上,可以叠加第二个QPSK矢量,下图蓝色圈上的四个点。
图片
到这,对于QAM调制的基本原理,相信大家都有了一个初印象。那是不是就可以直接搞更大的QAM,不仅上4k,还有8k,不是QAM的m越大,无线通信系统的数据速率和频谱效率会越高吗?但是事情往往有两面性,QAM调制的m越大,对噪声和干扰的要求也就越高。
Wifi这种室内短距应用,噪声条件比较理想,更高阶的QAM还有发挥的空间,但是对于移动无线通信,室外噪声环境极其恶劣,更高阶的QAM,挑战极其大。所以现在的5G通信,256QAM是一个比较折中的调制方式。
相关文章:
什么是QAM
什么是调制呢? 调制就是把信号形式转换成适合在信道中传输的一个过程。可分为基带调制和载波调制。我们这里所说的调制都是载波调制。 什么是载波调制呢? 就是把调制信号骑到载波上,方法就是用调制信号去控制载波的参数,使载波…...

GraphQL 与 Elasticsearch 相遇:使用 Hasura DDN 构建可扩展、支持 AI 的应用程序
作者:来自 Elastic Praveen Durairaju GraphQL 提供了一种高效且灵活的数据查询方式。本博客将解释 Hasura DDN 如何与 Elasticsearch 配合使用,以实现高性能和元数据驱动的数据访问。 此示例的代码和设置可在此 GitHub 存储库 - elasticsearch-subgraph…...
面试题整理 3
总结了某公司面试遇到的值得整理记录的面试题,比较侧重于Redis方面。 目录 Redis持久化配置 RDB AOF Redis rdb日志文件路径编辑 命令行参数设置 Redis事务 Redis事务介绍 Redis事务阶段 watch监听 Mysql隔离级别 1.READ UNCOMMITTED 2.READ COMMITTED …...

数据结构(Java)—— 认识泛型
1. 包装类 在学习泛型前我们需要先了解一下包装类 在 Java 中,由于基本类型不是继承自 Object ,为了在泛型代码中可以支持基本类型, Java 给每个基本类型都对应了一个包装类型。 1.1 基本数据类型和对应的包装类 基本数据类型包装类byteByt…...
处理后的视频如何加上音频信息?
总方案:原来模型对图像进行每帧处理,保留后的视频自然失去了audio信息,因此先用ffmpeg处理得到audio,原输出video加上audio即可,也采用ffmpeg处理。 imageio库用于读取和写入视频文件,并且你正在使用img_cartoon模型处理每一帧图像。然而,这段代码只处理了视频的图像部…...
02LangChain 实战课——安装入门
LangChain安装入门 一、大语言模型简介 大语言模型是利用深度学习技术,尤其是神经网络,来理解和生成人类语言的人工智能模型。这些模型因其庞大的参数数量而得名,能够理解和生成复杂的语言模式。它们通过预测下一个词来训练,基于…...
Python函数中关键字参数、位置参数、默认参数有何不同
在Python中,函数的参数分为三种类型:关键字参数(key arguments)、位置参数(positional arguments)和默认参数(default arguments)。它们的主要区别在于调用时如何传递值,…...

PNG 格式和 JPG 格式都什么时候用
通常我们都知道,如果是针对网络传输或者网站的格式,我们多会使用 PNG 格式。 如果是照片,大部分都是 JPG 格式的。 那么我们网站常用的截图应该保存为什么格式呢? 照片截图 照片截图应该保存为 JPG 格式。 虽然现在我们多存储…...

Qt 练习做一个登录界面
练习做一个登录界面 效果 UI图 UI代码 <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Dialog</class><widget class"QDialog" name"Dialog"><property name"ge…...

计算机视觉实验一:图像基础处理
1. 图像的直方图均衡 1.1 实验目的与要求 (1)理解直方图均衡的原理与作用; (2)掌握统计图像直方图的方法; (3)掌握图像直方图均衡的方法。 1.2 实验原理及知识点 直方图均衡化是通过灰度变换将一幅图象转换为另一幅均衡直方图,即在每个灰度级上都具有相同的象素…...
【WebApi】C# webapi 后端接收部分属性
在C#的Web API后端接收部分属性,可以使用[FromBody]特性配合JsonPatchDocument或者Delta来实现。这里提供一个使用JsonPatchDocument的示例。 首先,定义一个模型类:public class User public class User {public int Id {get; set; }...
Java 使用 Redis
Java 使用 Redis 1. 引言 Redis是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等。由于Redis基于内存,其读写速度非常快,因此被广泛应用于需要高速缓存和实时通讯的场景。…...

【ONE·Linux || 高级IO(二)】
总言 主要内容:多路转接:epoll学习。 文章目录 总言5、多路转接:epoll5.1、相关概念与接口5.1.1、基本函数认识5.1.1.1、epoll_create5.1.1.2、epoll_ctl5.1.1.3、epoll_wait 5.1.2、epoll的工作原理5.1.2.1、准备工作(…...

将 IBM WatsonX 数据与 Milvus 结合使用,构建用于知识检索的智能 Slack 机器人
在当今快节奏的工作环境中,快速轻松地访问信息对于保持生产力和效率至关重要。无论是在 Runbook 中查找特定说明,还是访问关键知识转移 (KT) 文档,快速检索相关信息的能力都可以产生重大影响。 本教程将指导您构建一个…...

2024 网鼎杯 CTF --- Crypto wp
文章目录 青龙组Crypto1Crypto2 白虎组Crypto1Crypto2 朱雀组Crypto2Crypto3part1part2part3part4 青龙组 Crypto1 题目: from Crypto.Util.number import * from secret import flagp getPrime(512) q getPrime(512) n p * q d getPrime(299) e inverse(d,…...

深度学习基础知识-损失函数
目录 1. 均方误差(Mean Squared Error, MSE) 2. 平均绝对误差(Mean Absolute Error, MAE) 3. Huber 损失 4. 交叉熵损失(Cross-Entropy Loss) 5. KL 散度(Kullback-Leibler Divergence&…...
《逆向记录》
这里写自定义目录标题 1.什么是vmp加密VMP加密的工作原理VMP加密的应用场景和优缺点实际应用案例 2.什么是ast混淆3.魔改算法总结 1.什么是vmp加密 VMP加密(Virtual Machine Protection)是一种软件保护技术,旨在通过虚拟化和加密技术来保…...
chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB
目录 chatgpt3.5权重参数有多少MB llama7B权重参数有多少MB chatgpt3.5权重参数有多少MB 关于ChatGPT 3.5的权重参数占用的存储空间大小,虽然直接给出具体的MB数值可能较为困难(因为这取决于多种因素,如参数表示的精度、是否进行了压缩等),但可以根据其参数量来估算一个…...

ST IoT Wireless 物联网与无线技术 研讨会
一、研讨会背景与目的 ◆ 意法半导体致力于提供可靠且经济实惠的无线连接解决方案,包含Wireless NFC Security & Esim等产品。 ◆ 将智能物体连接到互联网和云,或者从更广泛的意义上说,连接到物联网(IoT)。 ◆ 远程监控、配…...
PHP实现雪花算法生成唯一ID
引言 雪花算法是Twitter开源的分布式ID生成算法,可以产生64位的ID。其中第一位是固定的正数标识,41位用于存储时间戳,剩下的为机器ID和序列号。通过时间戳、机器ID和序列号的组合,确保每个ID都是唯一的。 PHP代码 1、定义雪花算…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...