什么是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、定义雪花算…...

APP的设置页面,应该怎样尽可能减少用户的输入操作呢
一、引言 在当今数字化时代,移动应用程序(APP)已经成为人们生活中不可或缺的一部分。无论是社交娱乐、工作学习还是日常生活,我们都离不开各种 APP 的帮助。而 APP 的设置页面作为用户调整应用参数、个性化定制功能的重要入口&am…...

Node.js:内置模块
Node.js:内置模块 Node.jsfs模块读取文件写入文件__dirname path模块路径拼接文件名解析 http模块创建服务 Node.js 传统的JavaScript是运行在浏览器的,浏览器就是其运行环境。 浏览器提供了JavaScript的API,以及解析JavaScript的解析引擎&a…...

3. keil + vscode 进行stm32协同开发
1. 为什么使用vscode 主要还是界面友好,使用习惯问题,vscode 从前端,js, c/c, qt, 仓颉,rust都有很好插件的支持,并且有romote, wsl 等很多插件可以提高效率, 唯一的问题就是要使用插件进行环境…...

React 组件生命周期与 Hooks 简明指南
文章目录 一、类组件的生命周期方法1. 挂载阶段2. 更新阶段3. 卸载阶段 二、函数组件中的 Hooks1. useState2. useEffect3. useContext4. useReducer 结论 好的,我们来详细讲解一下 React 类组件的生命周期方法和函数组件中的钩子(hooks)。 …...

【springcloud】gateway网关的作用
目录 1. 说明2. 路由转发3. 负载均衡4. 安全认证与授权5. 熔断与降级6. 请求限流7. 监控与日志8. 过滤器功能 1. 说明 1.在Spring Cloud中,Gateway网关扮演着至关重要的角色。2.基于Spring Framework 5、Spring Boot和Project Reactor构建的API网关,专为…...

「C/C++」C++11 之<thread>多线程编程
✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明目…...

HTML前端页面设计静态网站-仿百度
浅浅分享一下前端作业,大佬轻喷~ <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>百度(伪)</title><style>body {margin: 0;padding: 0;}.top-bar {dis…...

百度SEO是否还有用?福州百度SEO专家林汉文为你深度解析
大家好,我是林汉文,一名专注于百度SEO优化的专家,最近有很多人问我:百度SEO还有用吗?在如今快速变化的数字营销环境中,这确实是一个值得探讨的问题。今天,我就来为大家详细分析百度SEO的现状&am…...

数学建模学习(134):使用Python基于WISP的多准则决策分析
WISP算法技术性文章 1. 算法介绍 WISP(Weighted Independent Set Problem)是一种优化算法,主要用于解决图论中的加权独立集问题。加权独立集问题是一个经典的组合优化问题,涉及从一个图中选择一个独立的顶点集,使得所选顶点的总权重最大。这个问题在计算机科学、运筹学、…...

.net core NPOI以及NOPI mapper
我们在日常开发中对Excel的操作可能会比较频繁,好多功能都会涉及到Excel的操作。在.Net Core中大家可能使用Npoi比较多,这款软件功能也十分强大,而且接近原始编程。但是直接使用Npoi大部分时候我们可能都会自己封装一下,毕竟根据二…...