news 2026/6/10 16:15:13

位同步--FPGA实现Gardner算法(1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
位同步--FPGA实现Gardner算法(1)

自己学习,记录一下,AI+知乎+书

无需载波同步的位同步技术- Gardner算法

总概括:

就是通过观察“前后两个符号的中间那个点有没有归零”,来告诉 NCO “走快点”还是“走慢点”,从而让内插器始终抓在信号张开得最大的那个最佳时刻。

1.介绍Gardner算法

是一种定时误差算法,他通过观察,当前与上一次的采样点,来告诉我们采太快了,还是太慢了,同时告诉NCO这个误差,使得采样时刻改变,追求最佳采样点。
一般公式(数学版)如下:
e(k)=[y(k)−y(k−1)]×y(k−1/2)e(k) = [y(k) - y(k-1)] \times y(k-1/2)e(k)=[y(k)y(k1)]×y(k1/2)
逻辑:用前后两点的差(斜率)乘以中间点的值。
如图:

情况1:无误差,最佳采样时刻:y(k - 1/2)为0,e(k)为0。
情况2:采集太快了,y(k - 1/2)在最佳采样点左边,为正数。e(k)为负数,代表你(NCO)需要慢一点了。
情况3:采集太慢了,y(k - 1/2)在最佳采样点右边,为负数,e(k)为正数,代表你(NCO)需要快一点了。

**他的误差是怎么计算的?利用码元跳变(过零点)来检测误差
理想情况:如果一个符号是波峰,下一个是波谷,那么它们正中间的采样点(中间点)应该刚好是 0。
非理想情况:如果中间点不为 0,说明采样时刻偏了。
中间点偏正或偏负,结合前后符号的极性,就能算出偏移方向。


2.数据计算

核心矛盾:时钟不同步

在实际通信中,接收端的采样时钟(周期为TsT_sTs)通常是固定频率的本地晶振,它和发送端的符号时钟(周期为TiT_iTi)往往是不匹配、不同步的。


目的:重新采样(KiK_iKi周期下的)

公式 (8-19) :

y(kTi)=∑mx(mTs)hI(kTi−mTs)y(kT_i) = \sum_{m} x(mT_s)h_I(kT_i - mT_s)y(kTi)=mx(mTs)hI(kTimTs)
(k为整数,TiT_iTi为内插周期,k = T /TiT_iTi)
既然有了虚拟的连续曲线y(t)y(t)y(t),我们就在我们想要的时刻t=kTit = kT_it=kTi(内插时刻)去“摘取”信号值。
公式 (8-20) 是真正的数字实现:

y(t)=∑mx(mTs)hI(t−mTs)y(t) = \sum_{m} x(mT_s)h_I(t - mT_s)y(t)=mx(mTs)hI(tmTs)

  • 物理意义:想象我们把手中的数字点x(mTs)x(mT_s)x(mTs)通过一个理想的“低通滤波器”hI(t)h_I(t)hI(t)(即内插滤波器)。
  • 这就像是在坐标轴上根据现有的点,画出一条平滑的连续曲线y(t)y(t)y(t)。一旦有了这条曲线,理论上你可以在任何时间点ttt取值。
  • 关键点:在全数字接收机里,我们并不真的去还原连续信号。我们直接利用现有的x(mTs)x(mT_s)x(mTs)和滤波器系数hIh_IhI进行卷积运算,直接计算出y(kTi)y(kT_i)y(kTi)

总结:通俗的比喻

想象你在拍电影,但你的摄像机每秒只能拍 24 帧(这是1/Ts1/T_s1/Ts)。

  1. 现有数据:你手里只有这 24 帧画面。
  2. 需求:导演想要一段每秒 60 帧(这是1/Ti1/T_i1/Ti)的慢动作视频。
  3. 内插过程:你使用电脑算法,根据前后的画面,“计算”出原本不存在的两帧之间的画面。

这段话里的y(kTi)y(kT_i)y(kTi)就是那些被计算出来的、“补”上去的精准画面。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 7:43:41

【CMake】CMake 基础笔记

CMakeLists.txt 文件 CMakeLists.txt 是 CMake 的配置文件,用于定义项目的构建规则、依赖关系、编译选项等。每个 CMake 项目通常有一个或多个 CMakeLists.txt 文件。 文件结构和基本语法 1. 指定 CMake 最低版本 cmake_minimum_required(VERSION 3.10)2. 定义项目 …

作者头像 李华
网站建设 2026/6/3 20:17:46

AI原生应用开发:跨语言理解的最佳实践

AI原生应用开发:跨语言理解的最佳实践 关键词:AI原生应用开发、跨语言理解、最佳实践、自然语言处理、多语言模型 摘要:本文聚焦于AI原生应用开发中跨语言理解的最佳实践。详细介绍了跨语言理解的核心概念、原理和架构,通过代码示…

作者头像 李华
网站建设 2026/5/12 7:07:34

基于Simulink的智能车辆行为决策仿真

目录 手把手教你学Simulink--决策规划场景实例:基于Simulink的智能车辆行为决策仿真(变道场景) 一、引言:为什么研究变道场景行为决策?——智能驾驶的“效率与安全的平衡术” 挑战: 二、核心原理&#x…

作者头像 李华