【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博客https://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

相关推荐
2401_857439692 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
孤亭远见2 小时前
COMSOL with Matlab
matlab
SoraLuna3 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
xlsw_3 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
Dream_Snowar4 小时前
速通Python 第三节
开发语言·python
XH华4 小时前
初识C语言之二维数组(下)
c语言·算法
南宫生4 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
图南楠5 小时前
simulink离散传递函数得到差分方程并用C语言实现
matlab
不想当程序猿_5 小时前
【蓝桥杯每日一题】求和——前缀和
算法·前缀和·蓝桥杯
高山我梦口香糖5 小时前
[react]searchParams转普通对象
开发语言·前端·javascript