什么是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、定义雪花算…...
从SolidWorks到Geant4仿真:我的第一个粒子探测器CAD模型导入全记录(含CADMesh避坑点)
从SolidWorks到Geant4仿真:我的第一个粒子探测器CAD模型导入全记录(含CADMesh避坑点) 作为一名刚接触粒子探测器仿真的研究生,我花了整整两周时间才成功将SolidWorks设计的模型导入Geant4进行模拟。这个过程远比想象中复杂&#x…...
Go语言开源漏洞扫描器Abyss-Scanner:架构解析与CI/CD集成实践
1. 项目概述:一个为安全而生的开源漏洞扫描器最近在整理自己的开源项目工具箱,发现一个挺有意思的工具,叫 Abyss-Scanner。这名字起得挺有深意,“深渊扫描器”,听起来就有点探索未知、发现潜在风险的味道。简单来说&am…...
Linuxbonding链路稳定性治理方法
Linuxbonding链路稳定性治理方法这是一篇面向中级 Linux 使用者的技术文章,主题聚焦在bonding链路,重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中,bonding链路相关问题往往不会以单一错误形式出现,而是混杂在日志、权限…...
开源机械爪控制库:从PID算法到ROS集成的全栈开发指南
1. 项目概述:一个开源的机械爪设计与控制库最近在机器人硬件开发的圈子里,开源项目“MeyerZhou/openclaw”引起了不少创客和机器人爱好者的注意。简单来说,这是一个专注于机械爪(或称机械手、夹爪)设计与控制的代码库和…...
芯片老化座的工作温度范围?
在芯片测试领域,老化座(Burn-in Socket)是保障半导体器件长期可靠性的关键设备。它不仅要在极端温度下稳定工作,还要确保测试数据的精准度。今天,我们以HMILU(深圳市鸿怡电子有限公司)为例&…...
ncmdumpGUI:3步解决网易云音乐ncm格式播放限制的终极方案
ncmdumpGUI:3步解决网易云音乐ncm格式播放限制的终极方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经在网易云音乐下载了心爱的歌曲…...
Arm CoreLink PCK-600电源管理架构与寄存器编程详解
1. Arm CoreLink PCK-600电源控制架构解析在嵌入式系统设计中,电源管理单元(PMU)是实现高效能耗控制的核心组件。Arm CoreLink PCK-600作为业界领先的电源控制解决方案,其架构设计体现了现代SoC电源管理的先进理念。PCK-600系列采…...
轻量级服务器监控面板:从原理到部署实战
1. 项目概述:一个开源监控面板的诞生最近在折腾服务器和容器化应用,发现一个挺普遍的需求:当你手头有几台服务器,上面跑着几个Docker容器,或者一些自己写的服务,你总想知道它们现在“活”得怎么样。CPU是不…...
Redis高效开发工具集:从SCAN迭代到数据迁移的Python实践
1. 项目概述:一个Redis开发者的“瑞士军刀”如果你和我一样,日常开发中重度依赖Redis,那你一定遇到过这些场景:想快速查看某个大Key的内存占用,得写脚本遍历;想分析某个Pattern下的所有键,得手动…...
OpenClaw实战教程:声明式配置驱动的高效数据抓取方案
1. 项目概述:一个关于“OpenClaw”的实战教程 最近在GitHub上看到一个挺有意思的项目,叫“OpenClawTuto”。光看名字,你可能会有点摸不着头脑,这“OpenClaw”到底是个啥?是某种开源机械爪?还是一个代号&…...
