【MATLAB源码-第28期】基于matlab的16QAM定时同步仿真,采用gardner算法,Costa锁相环。

操作环境:

MATLAB 2022a

1、算法描述

正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此被称作正交载波。这种调制方式因此而得名。

同其它调制方式类似,QAM通过载波某些参数的变化传输信息。在QAM中,数据信号由相互正交的两个载波的幅度变化表示。

模拟信号的相位调制和数字信号的PSK可以被认为是幅度不变、仅有相位变化的特殊的正交幅度调制。由此,模拟信号频率调制和数字信号FSK也可以被认为是相位调制(PSK)的特例,因为它们本质上就是相位调制。这里主要讨论数字信号的QAM,虽然模拟信号QAM也有很多应用,例如NTSC和PAL制式的电视系统就利用正交的载波传输不同的颜色分量。

类似于其他数字调制方式,QAM发射信号集可以用星座图方便地表示。星座图上每一个星座点对应发射信号集中的一个信号。设正交幅度调制的发射信号集大小为 N,称之为N-QAM。星座点经常采用水平和垂直方向等间距的正方网格配置,当然也有其他的配置方式。数字通信中数据常采用二进制表示,这种情况下星座点的个数一般是2的幂。常见的QAM形式有16-QAM、64-QAM、256-QAM,以及未来5G采用之512-QAM及1024-QAM。星座点数越多,每个符号能传输的信息量就越大。但是,如果在星座图的平均能量保持不变的情况下增加星座点,会使星座点之间的距离变小,进而导致误码率上升。因此高阶星座图的可靠性比低阶要差。

当对数据传输速率的要求高过8-PSK能提供的上限时,一般采用QAM的调制方式。因为QAM的星座点比PSK的星座点更分散,星座点之间的距离因之更大,所以能提供更好的传输性能。但是QAM星座点的幅度不是完全相同的,所以它的解调器需要能同时正确检测相位和幅度,不像PSK解调只需要检测相位,这增加了QAM解调器的复杂性。在本文中,我们主要对16-QAM这种调制解调方式进行仿真。
 

**锁相环(PLL)** 是一种控制系统,用于将一个参考信号的相位与一个输入信号的相位同步。它在许多领域中都有应用,如通信、无线电、音频、视频和计算机系统。锁相环通常由以下几个关键组件组成:

1. **相位比较器(Phase Comparator):** 这个组件比较输入信号和参考信号的相位差异,并输出一个反映这种差异的电压或数字信号。
2. **低通滤波器(Low-Pass Filter):** 这个组件用于平滑相位比较器的输出,以便获得一个稳定的控制电压或信号。
3. **振荡器(Oscillator):** 这是一个产生频率稳定的信号的元件,其频率可以通过调节控制电压来改变。在锁相环中,振荡器的频率可以被控制,以便使其输出的信号与参考信号的频率和相位保持同步。
4. **分频器(Divider):** 这个组件将振荡器的输出分频,生成一个或多个较低频率的信号,用于各种应用中。


**Gardner同步算法** 是一种数字通信系统中的时钟同步算法,适用于传输信道可能引入不确定延迟的情况。以下是算法的详细步骤:
1. **采样阶段:** 接收端以恒定的采样率对接收信号进行采样,得到一系列采样值。
2. **差异计算:** 算法计算相邻两个采样点之间的差异,即它们之间的信号值差。这个差异值代表了信号在传输路径中可能遭受的延迟。
3. **错误计算:** 对于每对相邻采样点,将差异值乘以它们的乘积,得到一个误差值。这个误差值可以指示接收时钟的相位相对于发送时钟的偏移。
4. **相位调整:** 根据误差值的正负,调整本地时钟的相位。如果误差为正,表示接收时钟比发送时钟快,因此需要减小本地时钟的相位;如果误差为负,则需要增加本地时钟的相位。
5. **循环迭代:** 重复以上步骤,直到接收时钟的相位与发送时钟的相位基本一致,从而实现精确的时钟同步。

总体而言,Gardner同步算法通过不断计算信号差异和调整本地时钟相位,逐步减小时钟偏移,从而实现精确的时钟同步,即使在信道质量不佳的情况下也能够有效工作。这对于数字通信系统中的数据恢复和解调至关重要。

2、仿真结果演示

3、关键代码展示

4、MATLAB 源码获取

点击下方原文链接获取

【MATLAB源码-第28期】基于matlab的16QAM定时同步仿真,采用gardner算法,Costa锁相环。_16qam的gardner-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Koukesuki/article/details/132908223?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171314820016800197022129%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171314820016800197022129&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-132908223-null-null.nonecase&utm_term=28&spm=1018.2226.3001.4450

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows ubuntu 子系统,肿瘤全外篇,3. gatk中的BaseRecalibrator,HaplotypeCaller,ApplyVQSR

2中,我们对测序数据进行了比对,bam排序,标记重复和建立索引。这次我们就直接可以进入gatk流程了。 1.碱基质量校正。 BaseRecalibrator 是 GATK(Genome Analysis Toolkit)工具集中的一个工具,用于校正测序…

02 - Git 之命令 + 删除 + 版本控制 + 分支 + 标签 + 忽略文件 + 版本号

1 Git相关概念 1.1 以下所谈三个区,文件并不只是简单地在三个区转移,而是以复制副本的方式转移 使用 Git 管理的项目,拥有三个区域,分别是 Working area工作区(亦称为 工作树Working Tree)、stage area …

[渗透测试学习] Monitored-HackTheBox

Monitored-HackTheBox 信息搜集 nmap扫描一下端口 nmap -sV -sC -v --min-rate 1000 10.10.11.248扫描结果如下 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0) 80/tcp open http Apache httpd …

视觉位置识别与多模态导航规划

前言 机器人感知决策是机器人移动的前提,机器人需要对周围环境实现理解,而周围环境通常由静态环境与动态环境构成。机器人在初始状态或者重启时需要确定当前所处的位置,然后根据用户的指令或意图,开展相应移动或抓取操作。通过视觉…

【分治】Leetcode 排序数组

题目讲解 912. 排序数组 算法讲解 我们这里使用三指针&#xff0c;将数组分成三块&#xff1a;<key 和 key 和 >key,如果当前指针指向的数字<key&#xff0c;我们就swap(nums[left]), nums[i] 。如果当前的数字key &#xff0c;就让i。如果当前的数字>key&…

geolife笔记/python笔记:trackintel.io.read_geolife

此函数解析 geolife_path 目录中可用的所有 geolife 数据 trackintel.io.read_geolife(geolife_path, print_progressFalse) 参数&#xff1a; geolife_path (str) 包含 geolife 数据的目录路径 print_progress (Bool, 默认为 False)如果设置为 True&#xff0c;则显示每个…

退出 beeline

退出 beeline 的命令是 !quit或 !exit 或者&#xff0c;直接来 Ctrl-D 我们下期见&#xff0c;拜拜&#xff01;

java自定义排序规则

java自定义排序规则 背景&#xff1a;开发的一个查询功能&#xff0c;主要字段&#xff1a;账号、币种等&#xff0c;业务提供了一个显示顺序&#xff0c;没有什么规则的排序&#xff0c;例如 3,1,6,2 无规则的顺序 思路&#xff1a;通过提供的顺序来指定排序规则 代码&#…

Linux 内核复合页(compound page)原理分析

源码基于&#xff1a;Linux5.15 约定&#xff1a; 芯片架构&#xff1a;ARM64内存架构&#xff1a;UMACONFIG_ARM64_VA_BITS&#xff1a;39CONFIG_ARM64_PAGE_SHIFT&#xff1a;12CONFIG_PGTABLE_LEVELS &#xff1a;3 1. 简介 复合页(Compound Page) 只是将两个或更多物理上…

【笔试强训】DFS、优先队列、滑动窗口笔试题目!

文章目录 1. 单词搜索2. 除 2 操作3. dd 爱框框 1. 单词搜索 题目链接 解题思路&#xff1a; DFS (深度优先遍历)&#xff0c;用一个 pos 记录要匹配单词 word 的位置&#xff0c;每次与 pos 进行匹配判断&#xff08;这样做的好处是不用把答案存下来&#xff09; 注意细节…

算法:期望场景;鲁棒优化

部分代码 for i1:T stst[D_DGk(i)*min_P_DG<P_DGk(i)<D_DGk(i)*max_P_DG]; end for i2:T indicatorD_DGk(i)-D_DGk(i-1); rangei:min(T,iT_up-1); st st[D_DGk(range)>indicator]; end for i2:T indicatorD_DGk(i-1)-D_DGk(i); rangei:min(T…

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化

时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化 目录 时序分解 | Matlab实现TVF-EMD时变滤波器的经验模态分解信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现TVF-EMD(时变滤波器的经验模态分解)可直接替换 Matlab语言 1.…

IDEA远程调试debug

IDEA远程调试debug jar包启动脚本配置IDEA配置 通俗的说&#xff1a;本地有代码&#xff0c;服务器项目出现问题&#xff0c;环境的中间件配置不同&#xff0c;用idea远程调试&#xff0c;能快速定位问题&#xff0c;解决问题。 jar包启动脚本配置 jdk5-8写法 java -Xdebug -…

xftp、xshell连不上虚拟机解决方法

一、检查连接虚拟机ip看是否正确 查看虚拟机系统 IP ifconfig 二、检查虚拟机防火墙是否关闭 查看防火墙状态(ubuntu) sudo ufw status 关闭防火墙 sudo ufw disable 查看防火墙状态(centos) systemctl status firewalld.service 关闭防火墙 systemctl stop firewalld.se…

基于Python dlib的实时人脸识别,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

【STM32】西南交大嵌入式系统设计实验:环境配置

把走过的坑记录一下&#xff0c;希望后来人避坑 No ST-Link device detected.问题解决 如果跟着指导书出现这个问题&#xff1a; 直接跳过这一步不用再更新固件&#xff0c;后面直接创建项目写程序就行了。 在keil里配置成用DAP_link即可。 详细的可以看这篇文章&#xff1a…

30. 【Android教程】吐司提示:Toast 的使用方法

在使用 Android 手机的时候&#xff0c;有没有遇到过如图中这种类型的消息提示&#xff1f; 这个在 Android 中被称为 Toast&#xff0c;用来短暂的展示一些简短的提示信息。相比弹窗来讲它对用户的打扰更小&#xff0c;在提示一段时间之后会自动消失&#xff0c;通常用来提示当…

【Python-基础】字符串合集

字符串格式化 f # 例如: # f{train_path}/{f}: 将train_path字符串和f字符串结合 # f{root}.csv:将root字符串和.csv字符串结合判断字符串是否以…结尾 root.endswith(".csv") # True未待完续…

java 溯本求源之基础(十七)之Monitoring--jstatd

目录 1.简介 2.jstatd 命令概述 2.1功能和工作原理 2.2 使用场景 2.3 运行条件 3.命令行选项解析 3.1常用选项 4. 实际应用示例 4.1 内部 RMI 注册表配置 4.1.1 基础示例&#xff1a; 4.1.2 外部 RMI 注册表配置 4.1.3启用 RMI 日志记录 5.总结 1.简介 jstatd 是 Jav…

Abp中ef操作新增重复子级数据问题

在偶然开发中&#xff0c;导入的多条数据中&#xff0c;可能都存在同一个字段生成主外键关联子级数据的逻辑&#xff0c;此时循环去生成子级数据&#xff0c;会导致重复添加子级数据&#xff0c;有点绕吧&#xff0c;那就那实例说吧 如下&#xff1a;实现导入两条论文数据&…