锁相环 vivado FPGA
原理
- 同步状态/跟踪状态:相位差在2kπ附近,频率差为0
- 到达上述状态的过程称为捕获过程
- 锁相环的捕获带:delta w的最大值,大于这个值的话就不能捕获
- 鉴相器(PD-phase discriminator):相乘加LPF,相差提取到电压函数sin的相位中
- LF(Loop Filter):对PD产生的电压函数进行变换
- VCO:将电压信息转移到瞬时频率上,与电压是一次函数关系(但是输入电压范围有限,才保持线性)
- VCO反馈给PD:PD要的是相位,也就是瞬时频率的积分。最终VCO反馈的是LF输出电压的积分,也就是输入相差的积分。(PID中I的意思)
- 准同步,相差较小时(+30度时,误差5%以内),LF输出值正比于相差
LF原理与FPGA实现
模拟LF
RC/无源比例/有源比例(常用)
- 有源比例传递函数
- 以tau表示的传递函数,从上到下分别是:电压传递/开环相位传递/闭环相位误差/闭环相位传递,具体含义如图:
表格中,理想积分指的是有源比例,对应电路©其中tau的公式如下:
τ 1 = ( R 1 + A R 1 + R 2 ) C \tau_{1}=\left(R_{1}+A R_{1}+R_{2}\right) C τ1=(R1+AR1+R2)C τ 2 = R 2 C \quad \tau_{2}=R_{2} C τ2=R2C
A是运放的开环增益。
这样带来的问题是,数字滤波器中这些电路参量的意义不明,故引入 ω n 振荡器中心频率 , ξ 阻尼系数,通常取 1 2 \omega _{n}振荡器中心频率 ,\xi阻尼系数,通常取\frac{1}{\sqrt2} ωn振荡器中心频率,ξ阻尼系数,通常取21
以下是转换变量后的传递函数
至此的问题
- ω n 怎么定 \omega_{n}怎么定 ωn怎么定
- s怎么定
- 知道H后filter怎么设计
——2.答:双线性变换变成z式子,就有了离散的F(z)
s = 2 T 1 − z − 1 1 + z − 1 s=\frac{2}{T} \frac{1-z^{-1}}{1+z^{-1}} s=T21+z−11−z−1
z = 1 + T 2 s 1 − T 2 s z=\frac{1+\frac{T}{2} s}{1-\frac{T}{2} s} z=1−2Ts1+2Ts
代入\tau式后如下图,得到C的tau\T表达式
信号流图画法参考下图例子:
流图如下:
C的omega\xi表达式:
系统稳定的条件:
锁相环的性能参数:
- 快捕时间:
- 概念:理想二阶锁相环的捕获全过程包含频率捕获与相位捕获两个过程,通常又把保证锁相环只有相位捕获一个过程的最大固有频差称为快捕带,频率捕获过程所需要的时间称为频率捕获时间,相位捕获过程所需要的时间称为快捕时间。通常频率捕获时间远大于相位捕获时间,所以通常所说的捕获时间都是指频率捕获时间,而不考虑相位捕获时间的影响。但在频率捕获时间很短或要求快速相位捕获的情况下,计算相位捕获时间也是必要的。
- 计算:
问题:快捕带应当有什么要求?
当前使用的C1/C2计算方法:
用C的tau表达式
加上xi的固定取值
加上下面这个LF截止频率的式子,确定fc后,即可解出tau1/2,带入C1/C2,即可得到LF式子
下一步就是弄清楚上面这个fc公式的含义
环路滤波器fc公式理解
LF是一个低通滤波器,其波特图示例如下图:
IIR滤波器不具有线性相位,但是同样的幅频条件下所需的阶数小很多。下面是这个低通滤波截止频率的计算过程,源头是有源比例积分滤波器的传递函数(也叫理想积分滤波器):
待定的系数:K,fc,Wn,t1,t2
已有方程个数:3
待定个数:2,可取K,fc、
波特图分析法
- 表示开环传递函数Ho的幅频、相频特性
- 横轴用对数,dB坐标;纵轴用“度”,线性坐标
- 波特准则:利用开环频响来判断闭环的稳定性(锁相环路能否稳定跟踪)
即:如果增益在穿越0dB时(fT),相位滞后小于180度,则稳定。有一定使用条件但是对于锁相环一般都成立 - 相位裕度:其概念等价于上述波特准则
公式:arg[Ho(fT)]+180
如果是正的,则稳定。如果负则不稳定。正的越多越好,说明相位滞后比较少,比较容易稳定。
工程上通常要求相位裕度在30-60度
如何画开环FT(传递函数)的bode图
K = 50 ;
fc = 100 ;
g = tf([K*fc],[1 fc K*fc]) ;
bode(g);
hold on ;
- 解释:tf(numerator,denominator)=tf([K*fc],[1 fc K*fc])
从高次到低次,以数组的形式输入系数。该传递函数是
该式是RC积分滤波器的闭环相位传递函数H(s),推导如下:
绘图代码:
K = 50 ;
fc = 100 ;
g = tf([K*fc],[1 fc K*fc]) ;
bode(g);
hold on ;fc = 10 ;
g = tf([K*fc],[1 fc K*fc]) ;
bode(g);
hold on ;fc = 0.1 ;
g = tf([K*fc],[1 fc K*fc]) ;
bode(g);
hold on ;
注意,这里绘制的是闭环ft曲线,不能用bode principle
增益相关
注意计算K时和后面计算C时的单位
VCO
- 公式:
ω v ( t ) = ω o + K 0 u c ( t ) \omega_{\mathrm{v}}(t)=\omega_{\mathrm{o}}+K_{0} u_{\mathrm{c}}(t) ωv(t)=ωo+K0uc(t) - Ko:VCO的频率控制灵敏度 or 增益系数
- 锁相环的效果如下图:输入信号电压越大,输出频率越高
- 在数字系统中,这里的V,输入信号电压,对应的是NCO的频率控制字PINC
PD
- 公式:
u d ( t ) = U d sin θ e 1 ( t ) ≈ U d θ e 1 ( t ) = K d θ e 1 ( t ) u_{\mathrm{d}}(t)=U_{\mathrm{d}} \sin \theta_{\mathrm{e} 1}(t) \approx U_{\mathrm{d}} \theta_{\mathrm{e} 1}(t)=K_{\mathrm{d}} \theta_{\mathrm{e} 1}(t) ud(t)=Udsinθe1(t)≈Udθe1(t)=Kdθe1(t) - Kd:为鉴相器的鉴相增益,单位V/rad,计算公式如下:
Ui:输入数据有效位宽10位(ADC),则最大幅值2^9=512
Uo: NCO输出数据位宽10位
Bpd:Ui和Uo相乘,10位*10位得到19位。不使用20位是为了节约资源。因为只有两个负数最大值-512相乘时才会出现20位的情况。计算过程展示如下:
B I N : 10 _ 0000 _ 0000 × 10 _ 0000 _ 0000 = 0100 _ 0000 _ 0000 _ 0000 _ 0000 BIN:10\_0000\_0000\times10\_0000\_0000=0100\_0000\_0000\_0000\_0000 BIN:10_0000_0000×10_0000_0000=0100_0000_0000_0000_0000
D E C : − 2 9 × − 2 9 = 2 18 DEC:-2^{9}\times-2^{9}=2^{18} DEC:−29×−29=218
20位有符号数的表示范围是: − 2 19 → 2 19 − 1 -2^{19}\to2^{19}-1 −219→219−1
19位有符号数的表示范围是: − 2 18 → 2 18 − 1 -2^{18}\to2^{18}-1 −218→218−1
则可以通过将2^18替换为2^18-1,实现资源最大化利用
K d = 2 B P D − 2 K_d=2^{B_{PD}-2} Kd=2BPD−2
而上述计算Kd的公式中,Bpd也是使用了同样的位宽策略,10位与10位相乘,输出采用19位。如果直接使用20位位宽,则应当为Bpd-3
相关文章:

锁相环 vivado FPGA
原理 同步状态/跟踪状态:相位差在2kπ附近,频率差为0到达上述状态的过程称为捕获过程锁相环的捕获带:delta w的最大值,大于这个值的话就不能捕获鉴相器(PD-phase discriminator):相乘加LPF&…...

英语科技写作 希拉里·格拉斯曼-蒂(英文版)pdf下载
下载链接: 链接1:https://pan.baidu.com 链接2:/s/1fxRUGnlJrKEzQVF6k1GmBA 提取码:b69t 由于是英文版,可能有些看着不太方便,可以在网页版使用以下软件中英文对照着看,看着更舒服,…...
《Dynamic Statistical Learning in Massive Datastreams》论文阅读笔记
论文地址: https://www3.stat.sinica.edu.tw/ss_newpaper/SS-2023-0195_na.pdf 论文题目翻译:《在大规模数据流中的动态统计学习》 核心观点: 动态跟踪和筛选框架(DTS):论文提出了一个在线学习和模型更新的新框架&…...

【数据分享】2008-2022年我国省市县三级的逐日NO2数据(excel\shp格式)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据和2013-2022年的省市县三级的逐日SO2数据(均可查看之前的文章获悉详情)! 本次…...

JavaEE (1)
web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行 交互. 流程图如下 Web服务器是指驻留于因特网上某种类型计算机的程序. 可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览; 它是一个容器&…...

事务、函数和索引
什么是事务? 事务(Transaction),就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内 的所有SQL都将被取消执行。 特点 一个事务中如果有一个数据库操作失败,那么整个事务…...

Android APP 基于RecyclerView框架工程(知识体系积累)
说明:这个简单的基于RecyclerView的框架作用在于自己可以将平时积累的一些有效demo整合起来(比如音视频编解码的、opengles的以及其他也去方向的、随着项目增多,工程量的增加,后期想高效的分析和查找并不容易)…...

【iOS】GCD
参考文章:GCD函数和队列原理探索 之前写项目的时候,进行耗时的网络请求使用GCD处理过异步请求,但对一些概念都很模糊,这次就来系统学习一下GCD相关 相关概念 什么是GCD? Grand Center Dispatch简称GCD,是…...

C语言 | Leetcode C语言题解之第282题给表达式添加运算符
题目: 题解: #define MAX_COUNT 10000 // 解的个数足够大 #define NUM_COUNT 100 // 操作数的个数足够大 long long num[NUM_COUNT] {0};long long calc(char *a) { // 计算表达式a的值// 将数字和符号,入栈memset(num, 0, sizeof(num));in…...
如何使用 API list 极狐GitLab 容器镜像仓库中的 tag?
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…...
粒子群算法PSO优化BP神经网络(PSO-BP)回归预测——Python和MATLAB实现
下面是一个使用Python实现的粒子群算法(PSO)优化反向传播神经网络(BP)的示例代码。 以下是具体的代码实现: python import numpy as np from sklearn.datasets import make_regression from sklearn.model_selection…...
React-router路由配置及跳转
1、V6对比V5的修改内容 1、API: useNavigate 代替了useHistory 。 2、废弃了Route组件的exact属性。 3、组件 <Routes>代替了<Switch> 4、组件NavLink中移除了 activeStyle activeClassName 属性。 2、安装依赖react-router-dom npm install react-router-dom…...

vue3【实战】可编辑的脱敏信息
<script lang"ts" setup> import { ref, onMounted } from "vue"; let real_name ref("朝阳");let name ref("");onMounted(() > {name.value des_name(real_name.value); });function focusing() {name.value real_name…...

S71200 - 笔记
1 S71200 0 ProfiNet - 2 PLC编程 01.如何零基础快速上手S7-1200_哔哩哔哩_bilibili 西门子S7-1200PLC编程设计学习视频,从入门开始讲解_哔哩哔哩_bilibili...

linux系统查历史cpu使用数据(使用sar 查询cpu和网络占用最近1个月历史数据)。
一 sar 指令介绍 在 Linux 系统中,sar 是 System Activity Reporter 的缩写,是一个用于收集、报告和保存系统活动信息的工具。它是 sysstat 软件包的一部分,提供了丰富的系统性能数据,包括 CPU、内存、网络、磁盘等使用情况&am…...

Edge浏览器加载ActiveX控件
背景介绍 新版Edge浏览器也是采用Chromium内核,虽然没有谷歌浏览器市场占有率高,但是依托微软操作系统的优势,Edge浏览器还是发展很强劲,占据着市场第二的位置。随着微软停止服务IE浏览器,曾经风光无限的IE浏览器页退出…...

BUG与测试用例设计
一.软件测试的生命周期 需求分析→测试计划→测试设计,测试开发→测试执行→测试评估→上线→运行维护 二.BUG 1.bug的概念 (1)当且仅当规格说明(需求文档)是存在的并且正确,程序与规格说明之间的不匹配才是错误. (2)当需求规格说明书没有提到的功能,判断标准以最终用户为准…...
怎么在使用select2时,覆盖layui的下拉框样式
目录 1.覆盖下拉框样式代码 2.自定义样式 3.样式使用 1.覆盖下拉框样式代码 .layui-form-select .layui-select-title {border: none !important; /* 去除边框 */background-color: transparent !important; /* 去除背景色 */display: none;/* 其他你想要覆盖的样式 */} 2.自…...
MacOSM1 配置Miniconda环境,并设置自启动
文章目录 设置环境变量设置自启动参考 设置环境变量 cd vim .zshrc输入一下内容 # 配置Conda CONDA_HOME/Users/hanliqiang/miniconda3 PATH$CONDA_HOME/bin:$PATH生效配置 source .zshrc设置自启动 conda init zsh.zshrc 文件中将会出现以下内容 # >>> conda i…...

poi库简单使用(java如何实现动态替换模板Word内容)
目录 Blue留言: Blue的推荐: 什么是poi库? 实现动态替换 第一步:依赖 第二步:实现word模板中替换文字 模板word: 通过以下代码:(自己建一个类,随意取名…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...

C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势
一、WebRTC与智能硬件整合趋势 随着物联网和实时通信需求的爆发式增长,WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能,对实时…...