模拟集成电路设计系列博客——8.3.1 抖动与相位噪声

news/2024/7/7 19:37:53/文章来源:https://www.cnblogs.com/sasasatori/p/18278655

8.3.1 抖动与相位噪声

不像大部分集成电路中的模拟信号以电压或电荷来承载信息,对于时钟波形来说,其重要方面在于其穿越某些特定阈值时的特定时间点。抖动是这些特定时间点上的随机偏差,而相位噪声是这些时间点上的随即偏差,相位噪声则是抖动的频域表示。由于抖动和相位噪声由热噪声和其他所有电路中存在的其他噪声源导致,他们对任何片上时钟参考都会产生很大的限制,这使得其在PLL设计中至关重要。

一个典型的时钟信号如下图所示:

image

转换时间被标记为\(t_k\),这些时间可能是一个逻辑信号反转状态的时间,也有可能是开关切换状态的时间。对于这个例子来说,只需要考虑转换上升沿的情况,但在实际电路中,转换上升沿和转换下降沿都是值得关注的。对于理想时钟来说,所有的转换点都是等距的,从而\(t_k=kT_0\),这里\(T_0\)是时钟周期。但在实际时钟下,这些转换点会偏离它们的理想值。

具体来说,定义转换点时间与其理想值的偏离为离散时间序列\(\tau_k\)

\[t_k=kT_0+\tau_k \tag{8.3.1} \]

序列\(\tau_k\)为单位时间下时钟的绝对抖动,可以归一化到角频率:

\[\phi_k=\tau_k\cdot(2\pi/T_0) \tag{8.3.2} \]

绝对抖动是一个有用的分析工具,但是其在实验时无法直接进行测量,因为这样的话需要一个理想的时钟,但事实上是无法获取的。

例题1:

求得幅度为\(A\),角频率为\(\omega_0\)带有方差为\(\sigma_n^2\)的噪声\(n(t)\)的正弦信号的绝对抖动。

解答:

正弦信号可以表示为:

\[v(t)=Asin(\omega_0t)+n(t) \tag{8.3.3} \]

假定噪声\(n\)远小于信号的振荡幅度,即\(\sigma_n<<A\),转化时间\(v(t)\)略微偏离于其标准值\(kT_0\)。偏离量可以从围绕转换点的斜率\(A\omega_0\)来进行估计,噪声的采样\(n(t)\),标记为\(n_k\)

\[\tau_k\approx \frac{n_k}{A\omega_0} \tag{8.3.4} \]

该离散噪声过程\(n_k\)是方差为\(\sigma_n^2\)的白噪声,因此绝对抖动也是一个离散时间白噪声过程,方差为:

\[\sigma_{\tau}^2=\frac{\sigma_n^2}{A^2\omega_0^2} \tag{8.3.5} \]

在高频\(\omega_0\),并且正弦信号振幅\(A\)够大时,抖动受到其过零点附近的大斜率的影响而减小,通过角频率来描述,可以消除频率的影响:

\[\sigma_{\phi}^2=\sigma_\tau^2\cdot (\frac{2\pi}{T_0})^2=\frac{\sigma_n^2}{A^2} \tag{8.3.6} \]

例题2:

如下图所示,假定\(i(t)\)为一个理想正弦信号电流源,幅度为\(1mA\)\(R=1k\Omega\)\(C=1pF\)。求得\(v(t)\)的频率为\(1MHz\)时以及频率为\(1GHz\)时,绝对抖动\(v(t)\)的方差。

image

解答:

电压\(v(t)\)恰好是\((8.3.3)\)的形式,其中\(n(t)\)是由\(R\)的热噪声引起的高斯分布电压噪声。\(n(t)\)的方差为:

\[\sigma_n^2=\frac{kT}{C} \tag{8.3.7} \]

温度\(300K\)对应的均方值为\(64.4\mu V\)。幅度\(A\)取决于振荡频率\(f\),在\(1MHz\)时,幅度非常接近\((1mA)(1k\Omega)=1V\),因此代入\((8.3.5)\)有:

\[\sigma_\tau^2=\frac{(64.4\mu V)^2}{(1V)^2(2\pi 10^6)^2}=(10.2ps)^2 \tag{8.3.8} \]

\(1GHz\)时,\(v(t)\)的幅度受到RC低通滤波器的影响,\(A=0.157V\),因此:

\[\sigma_\tau^2=\sigma_\tau^2=\frac{(64.4\mu V)^2}{(0.157V)^2(2\pi 10^9)^2}=(0.065ps)^2 \tag{8.3.9} \]

注意以时间单位来看,\(1GHz\)情况下抖动变得更小,但是以角频率表达时,实际上\(1GHz\)下的抖动更大,这是由于\(v(t)\)的幅度减小了。

相位噪声是绝对抖动的频域表示。因此我们定义\(S_{\phi}(f)\),将带有随机抖动的时钟信号的相位噪声,用序列\(\phi_k\)的功率谱密度来描述。电压的噪声功率谱密度指的是在每\(1Hz\)单位频谱下电压信号的能量,因此其单位为\(V^2/Hz\)。类似的,\(S_{\phi}(f)\)确定了每\(1Hz\)单位频谱下\(\phi_k\)的能量(以\(rad^2\)为单位),因此\(S_{\phi}(f)\)的单位为\(rad^2/Hz\)。更进一步的,\(\phi_k\)的方差由\(S_{\phi}(f)\)在全频率下的积分给出。由于习惯上以时间单位而不是弧度来量化抖动,因此通常表示如下:

\[\sigma_\tau^2=(\frac{T_0}{2\pi})^2\int_{0}^{1/2T_0}S_{\phi}(f)df \tag{8.3.10} \]

对两侧取平方根可以得到绝对抖动的均方根:

\[\sigma_\tau=\frac{T_0}{2\pi}\sqrt{\int_{o}^{1/2T_0}S_{\phi}(f)df} \tag{8.3.11} \]

上面的两个公式是时域绝对抖动和相位噪声之间的关键关联。

例题3:

考虑如下图(a)所示的共源放大器,晶体管\(Q_1\)被直流电压\(V_{bias}\)偏置在饱和区,\(v_s\)是一个幅度为\(|V_s|\)的无噪声小信号正弦波。估计包括电阻的热噪声和晶体管的闪烁噪声引发的输出上的相位噪声。

解答:

小信号等效电路如下图(b)所示,电压噪声源\(v_{n1}\)建模了晶体管\(Q_1\)的闪烁噪声,且噪声频谱密度为:

\[V_{n1}^2(f)=\frac{K}{WLC_{ox}f} \tag{8.3.12} \]

噪声电流源\(i_n\)包含了电阻热噪声和晶体管闪烁噪声:

\[i_n^2(f)=4kT(\frac{2}{3})g_m+\frac{4kT}{R_d} \tag{8.3.13} \]

这使得\(v_o\)的形式如\((8.3.3)\),一个叠加了噪声的正弦电压。正弦的部分幅度为\(|V_s|g_{m1}(R_d||r_{o1})\),通过常规的噪声电路分析,可以得到下图(b)中的电压噪声频谱密度:

\[v_{o,n}^2(f)=[\frac{K}{WLC_{ox}f}g_{m1}^2(R_d||r_{o1})^2+4kT(\frac{2}{3})g_m(R_d||r_{o1})^2+\frac{4kT}{R_d}(R_d||r_{o1})^2] \tag{8.3.14} \]

假定正弦信号在\(v_o\)处的过零点受到噪声微小的影响,使用\((8.3.4)\)的近似,以相位的形式,我们有:

\[\phi_k\approx\frac{n_k}{|V_s| \tag{8.3.15}} \]

其中\(n_k\)是采样噪声电压\(v_{o,n}\),因此相位噪声为:

\[S_{\phi}(f)=\frac{(R_d||r_{o1})^2}{|V_s|^2}[\frac{K}{WLC_{ox}f}g_{m2}^2+4kT(\frac{2}{3}g_m+\frac{4kT}{R_d})] \tag{8.3.16} \]

注意此处有一个\(1/f\)噪声分量和一个白噪声分量。

image

还有一些其他测量抖动的方式。一个抖动的时钟意味着随时间变化的周期:

\[T_k=t_{k+1}-t_k=T_0+\tau_{k+1}-\tau_k \tag{8.3.17} \]

当前周期偏离其标准值\(T_0\)的偏差称为周期抖动:

\[J_k=T_k-T_0=\tau_{k+1}-\tau_k \tag{8.3.18} \]

这个公式意味着周期抖动可以通过绝对噪声序列\(\tau_k\)输入\((z-1)\)离散时间滤波器来获取。因此,其方差可以看作是相位噪声的积分被一个\((z-1)\)滤波器滤波:

\[\sigma_J^2=(\frac{T_0}{\pi})^2\int_0^{1/2T_0}sin^2(\pi f T_0)S_{\phi}(f)df \tag{8.3.19} \]

其中被积项\(sin^2(\pi fT_0)\)来自于\((z-1)\)滤波器。

周期噪声在实验中相比绝对噪声更好衡量,因为并不需要参考。更进一步的,周期抖动在数字系统中具有重要的实际意义,其中最大允许的逻辑延迟将取决于同步时钟的周期抖动。

通过考虑P个连续时钟周期的持续时间与其理想值\(PT_0\)的偏差,可以很容易地扩展周期抖动的概念:

\[J(P)_k=t_{k+P}-t_k-pT_0=\tau_{k+P}-\tau_{k} \tag{8.3.20} \]

可以将其称为P周期抖动,\(J(P)_k\)可以理解为通过绝对噪声序列\(\tau_k\)输入\((z^P-1)\)离散时间滤波器来获取。因此,其方差可以看作是相位噪声的积分被一个\((z^P-1)\)滤波器滤波:

\[\sigma_{J(P)}^2=(\frac{T_0}{\pi})^2\int_0^{1/2T_0}sin^2(\pi fP T_0)S_{\phi}(f)df \tag{8.3.21} \]

周期抖动是P周期抖动在\(P=1\)时的特殊情况,测量不同P值的\(\sigma_{J(P)}\)在实验中很容易完成,并且由于\((8.3.21)\)​中对不同P值应用了不同形状的滤波器,可以揭示有关相位噪声频谱特性的大量信息。

抖动的另一种测量是通过观察每个周期的持续时间与下一个周期之间的差异来获得的:

\[J_{k+1}-J_k \tag{8.3.22} \]

所谓的相邻周期抖动,有时也称为周期间抖动,数学上可以通过将\(J_k\)输入\((z-1)\)离散时间滤波器来获取,或者等效的将绝对噪声序列\(\tau_k\)输入\((z-1)^2\)离散时间滤波器来获取,因此其通过下面的积分与相位噪声关联:

\[\sigma_C^2=(\frac{T_0}{\pi})^2\int_0^{1/2T_0}sin^4(\pi f T_0)S_{\phi}(f)df \tag{8.3.23} \]

例题4:

例题1中的带有白噪声的正弦信号的周期抖动的均方根为?

解答:

同样,假设噪声远小于振荡幅度,\(\sigma_n<<A\),在例题1中我们分析了绝对抖动也是百兆,因此相位噪声恒定。结合\((8.3.5)\)\((8.3.10)\),有:

\[S_{\phi}(f)=(\frac{8\pi^2}{T_0})(\frac{\sigma_n^2}{A^2\omega_0^2})=\frac{2T_0\sigma_n^2}{A^2} \tag{8.3.24} \]

应用\((8.3.19)\)可以得到周期噪声的方差:

\[\sigma_J^2=\frac{2\sigma_n^2}{A^2\omega_0^2} \tag{8.3.25} \]

均方根为上面式子的平方根。

例题5:

时钟的过零点由频率\(f_m\)的正弦扰动调制,即:

\[\phi_k=\Phi_0sin(2\pi f_mt) \tag{8.3.26} \]

求绝对抖动,周期抖动和相邻抖动的均方根。

解答:

相位噪声\(S^2_{\phi}(f)\)\(f_m\)处具有离散的频谱音调:

\[S_{\phi}(f)=\frac{\Phi_0^2}{2}\delta(f-f_m) \tag{8.3.27} \]

相位噪声谱中的离散音调称为杂散,因为在\(S_{\phi}^2(f)\)\(f\)的图上,它们表现为垂直尖峰。使用\((8.3.10)\)中的积分很容易计算出绝对抖动:

\[\sigma_{\tau}^2=(\frac{T_0}{2\pi})^2(\frac{\Phi_0^2}{2})=\frac{1}{8}(\frac{T_0\Phi_0}{\pi})^2 \tag{8.3.28} \]

周期抖动因积分\((8.3.19)\)中的额外项而略有减少,因为从一个跃迁到下一个跃迁的绝对抖动变化小于它偏离的总范围:

\[\sigma_J^2=\frac{1}{2}(\frac{T_0\Phi_0}{\pi})^2sin^2(\pi f_mT_0) \tag{8.3.29} \]

请注意,如果相位调制很慢(即\(f_mT_0<<1\)),则周期抖动很小,因为从一个周期到下一个周期的变化很小。相邻周期抖动也是如此:

\[\sigma_J^2=2(\frac{T_0\Phi_0}{\pi})^2sin^4(\pi f_mT_0) \tag{8.3.30} \]

相位噪声是振荡波形相位的频谱表示,但在实践中很难观察到,因为它需要完美的时间参考。观察振荡波形本身的频谱要容易得多。我们首先分析时钟波形的功率谱密度(例如例题2中的\(v(t)\)\(S_v(f)\)

显然,它将集中在振荡频率\(\omega_0\)附近,有时称为载波频率。如果是一个周期没有变化的纯正弦曲线(因此,没有抖动),其显然将只在\(1/T_0\)处有一个音调。然而,实际信号将在载波周围的频率范围内具有功率,如下图所示:

image

抖动较大的信号在\(S_{v}(f)\)的尾部将具有更大的功率。然而,那些尾部的力量也是与振荡波形的平方幅度成正比。因此,为了获得抖动\(S_v(f)\)的度量,可以根据信号中的总功率进行归一化,对于正弦波,该功率为\(A^2/2\)​ 。将结果频谱下移至直流可提供以下抖动的替代频谱表示:

\[\mathcal{L}(\Delta f)=\frac{S_v(1/T_0+\Delta f)}{A^2/2} \tag{8.3.31} \]

\(\mathcal{L}(\Delta f)\)的单位是 \(Hz^{-1}\),但最常见的是以\(dBc/Hz\)为单位绘制其对数\(10log_{10}(\mathcal{L}(\Delta f))\)。参数\(\Delta f\)被称为偏移频率,表示与载波的频率偏移\(\Delta f\)处的信号频谱。

严格来说,\(\mathcal{L}(\Delta f)\)\(S_{\phi}(f)\)之间的关系非常复杂,但以下简单近似可以应用于\(S_{\phi}(f)\)非常小处的频谱分量:

\[\mathcal{L}(\Delta f)\approx \frac{S_{\phi}(\Delta f)}{2}, S_{\phi}(\Delta f)<<1 \tag{8.3.32} \]

上面公式中2的因数之所以出现,是因为\((8.3.31)\)中对\(\mathcal{L}(\Delta f)\)的定义忽略了\(S_v(f)\)的一边带。我们将看到,如上图中表示的那样,实际振荡器在较小的失调频率下总是具有非常大的相位噪声。因此,\((8.3.32)\)仅适用于大偏移频率。结合\((8.3.31)\)\((8.3.32)\)使得设计者可以仅通过观察频谱来估计信号的相位噪声。由于这种相等性,相位噪声图通常也以单位对数表示标记为\(dBc/Hz\),此处\(c\)表示\(\mathcal{L}(\Delta f)\)已对“载波”中的总功率进行归一化,尽管它的单位写得更准确的话应该是\(10log_{10}(rad^2/Hz)\)

在设计数字系统时,关键路径的延迟必须短于最小可能的时钟周期。因此,\(\tau_k\)的概率密度函数(PDF)及其导数也是时钟纯度的重要度量。请注意,抖动的频谱表示通常不能用于估计\(\tau_k\)的PDF。

例题6:

求有方差为\(\sigma_n^2\)的加性白高斯噪声\(n(t)\),幅度为\(A\),角频率为\(\omega_0\)的正弦信号的 PDF。

解答:

正弦信号可以描述为:

\[v(t)=Asin(\omega_0t)+n(t) \tag{8.3.33} \]

在例题1中,假定了噪声远小于振荡幅度\(\sigma_n<<A\),绝对抖动与其零点附近的正弦斜率呈线性关系:

\[\tau_k \approx \frac{n_k}{A\omega_0} \tag{8.3.34} \]

由于\(n_k\)是高斯分布的,因此绝对抖动也是高斯分布的,PDF如下:

\[f_{\tau}(t)=\frac{1}{\sigma_{\tau}\sqrt{2\pi}}exp(-\frac{t^2}{2\sigma_{\tau}^2}) \tag{8.3.35} \]

其中\(\sigma_{\tau}\)\((8.3.5)\)给出。

如果绝对抖动\(\tau_k\)具有高斯分布,则周期抖动、P 周期抖动和相邻周期抖动也是高斯分布的,因为根据\((8.3.18)\)\((8.3.20)\)\((8.3.22)\),它们是\(\tau_k\)的线性导数。

例题7:

需要驱动时钟周期始终至少为\(1 ns\)的数字系统。时钟有一个标称值周期\(T_0=1.1ns\)和高斯抖动分布。如果均方根周期抖动为\(5ps\),则概率是多少特定时钟周期小于\(1ns\)

解答:

每当周期抖动\(J_k<-0.1ns\)时,时钟周期将小于\(1 ns\)\(J_k\)的PDF是:

\[f_{\tau}(t)=\frac{1}{(5\cdot 10^{-12})\sqrt{2\pi}}exp(-\frac{t^2}{5\cdot 10^{-25}}) \tag{8.3.36} \]

因此,时钟周期小于 \(1 ns\) 的概率由\(f_J(t)\)\(-\infin\)\(-100ps\)的积分给出:

\[\int_{-\infin}^{-10^{-10}s}f_J(t)dt=2.75\cdot 10^{-89} \tag{8.3.37} \]

当由于随机噪声而产生抖动时,高斯分布很常见。这是因为噪声过程通常是许多独立噪声事件的叠加,因此大数定律倾向于使产生的抖动具有近似高斯分布。然而,当外部干扰是主要因素时,会出现其他抖动分布。

例如,下图将高斯抖动分布与在正弦相位调制下观察到的抖动 PDF 进行了比较。在实践中,电源电压的局部变化、数字数据模式和来自相邻信号的电磁干扰通常叠加在随机电路噪声上,以产生复杂的PDF。然后,测量设备可能能够将观察到的抖动PDF分解为其组成部分,从而为潜在的抖动源提供线索。

image

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

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

相关文章

Linux 中 uid、gid、euid、egid、groups 之间的关系

导航1 权限匹配流程 2 五种身份变化 3 有效用户/组 4 特权对 Shell 脚本无效 5 Sudo 与 SUID/SGID 的优先级 6 SUID、SGID、Sticky 各自的功能Linux最优秀的地方之一,就在于他的多人多工环境。而为了让各个使用者具有较保密的档案资料,因此档案的权限管理就变的很重要了。 Li…

通义灵码 Visual Studio 小白上手指南

本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。一、下载和安装指南 本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。 步骤 1:准备工作操作系统:Windows 10 及以上; 下载并安装 ****Visual Studio 2022 17.3.0 及以上版本。步骤 2:在…

mysql 8修改数据库用户密码

一、使用以下命令 ALTER USER root@localhost IDENTIFIED BY 1234; 二、在navicat中点击“用户”菜单然后点击“编辑”按钮修改用户密码

java中的函数式接口:(Consumer、BiConsumer、Supplier、Predicate、Function、BiFunction)

Consumer说明:(1)consumer接口来自java8中引入的Java.util.function包(2)Consumer是一个功能接口,用来作为lambda表达式或方法引用的任务目标(传递一个参数执行指定的方法)。 功能:Consumer的功能接口是一个接受单一参数并且不返回任何结果的操作。必要时,"结果&q…

ros microros 舵机控制原理

1. 什么是舵机: 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、驱动马达、齿轮组和位置反馈电位计等元件所构成,适用于那些需要角度不断变化并可以保持的控制系统。 2. 舵机的工作原理是:控制电路板接收来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减…

STM32时钟配置

STM32F10x时钟配置 根据参考手册可知STM32F10x系列的时钟树如下:图中给了说明了HSE、HSI、LSI、LSE的全称。HSE(The high speed external clock signal),高速外部时钟信号,需要4-16MHz的外部振荡器 HSI(The high speed internal clock signal),高速内部时钟信号,使用8MHz…

SpringBoot项目配置文件加密

前言 防止配置文件敏感信息泄露,去年公司出现过类似事件,也防止源码泄露,对项目中的配置文件进行加密 引入方式 pom文件引入以下依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifac…

Educational Codeforces Round 167 (Rated for Div. 2) A-D

A. Catch the Coin题意:在一个二维坐标系上有一个硬币每秒y轴坐标减一,而你每秒可以向旁边八个方向移动,问你有没有一个时刻你会和硬币重叠。 思路:注意到在y小于-2时,我们无论如何都追不到硬币,而其他时候我们可以采取向左下或者右下的策略来保持和硬币y轴下落同步移动的…

ASP.NET Core MVC 从入门到精通之HttpContext

原文链接:https://www.cnblogs.com/hsiang/p/17368101.html 什么是HttpContext? 在B/S模式开发的程序中,客户端是浏览器,服务器端Web服务程序,HttpContext是连接客户端和服务器端程序的桥梁,交代了当前请求的环境信息,它封装了请求[Request]和响应[Response]及其他所有信…

实战篇——SQL注入sqli-labs-master靶场实战一

实战篇——SQL注入sqli-labs-master靶场实战(1) SQL注入的原理 没有对用户的输入进行合法性判断或过滤,而是直接将其拼接至SQL查询语句当中作为命令执行,从而导致非法操作。 SQL注入的检测 也就是闭合方式的判断,根据报错信息的不同情况可以分为3类——(1)有报错信息 (2)无报…

不用虚拟机在Windows上安装Linux子系统(win11)

打开终端输入以下命令查看是否支持安装systeminfo最底下是4个yes代表支持 在开始菜单输入如下搜索 打开拉到最底下,勾选这两个选项 按照提示重启电脑 打开终端输入以下命令会自动安装最新的Ubuntu发行版wsl --install可以通过如下命令查看其他版本wsl --list --online安装过程…

manim边学边做--Tex

Tex类继承自MathTex,具体功能和MathTex差不多,有一些细节的差别。在实际的使用中,我感觉Tex在结合一般文本和公式时更方便一些,所以我用的比较多的是Tex。Tex在manim各个模块中的位置大致如上图中所示。 1. Tex与MathTex区别 Tex的主要参数和方法和MathTex是一样的,所以本…

[开源分享]好用的在线客服系统 PHP客服系统源码 聊天源码(开源代码+终身使用+安装教程+全新UI)

源码介绍 PHP在线客服系统源码采用全新UI,重新设计前端界面,后台采用php+mysql,免费开源源码。在线客服系统已成为企业与客户之间沟通的重要渠道。通过在线客服系统,企业可以方便地与客户进行实时沟通和解决问题,提升客户满意度。php客服系統源码主要功能要求: 全新UI 自动…

不只是前端,后端、产品和测试也需要了解的浏览器知识

一、我们为什么要了解浏览器? 1. 对于前端开发者 1.浏览器是用户体验的第一线。我们需要了解浏览器的工作原理,才能有效地设计和实现用户界面,确保良好的用户体验。 2.好的产品需要考虑浏览器兼容性。我们需要了解这些差异,以确保网站或应用在不同的浏览器中都能正常工作,…

从人工到自动化到AIOps再到ChatOps:大模型在运维领域的应用

一、引言 在信息技术飞速发展的今天,运维工作已经从最初的人工操作,逐步演变为自动化、AIOps(人工智能运维)和ChatOps(通过聊天的方式去运维)。这些变革不仅提升了运维效率,还显著保障了系统的稳定性。特别是借助大模型,运维同学能够更加高效地完成工作,并应对复杂的运…

ros microros 使用超声波雷达测量距离

我们使用的超声波模块一共有四个引脚,分别是TRIG 即发送引脚,用于发送超声波ECHO 即接收引脚,用于接收反射回来的超声波VCC 电源接5VGND 电源地 一、新建工程新建example18_sr04二、编写代码带注释的代码如下#include <Arduino.h> #define Trig 27 // 设定SR04连接的A…

tensorflow-gpu配置

1.安装Anaconda 下载地址:Anaconda | The Operating System for AI 2.查询tensorflow-gpu不同版本所对应的python、cuDNN和CUDA的版本 官网:在 Windows 环境中从源代码构建 | TensorFlow (google.cn) 3.使用conda安装相应的库# tensorflow_gpu-2.3.0 conda init conda crea…

Charles 使用

一、下载安装官网:https://www.charlesproxy.com/二、移动端抓包 2.1、安装证书 设置代理弹出对应的 代理ip 和端口号,在移动端的wifi 配置对应的代理,然后返回对应的证书地址 下载证书 安装 即可

ubuntu与windows双系统时间不同步

两个系统时间不同步是因为对于硬件时间(BIOS里的时间)的时区认定不一致,windows认为BIOS的时间是当前系统时区(中国时区:UTC+08(CST-8)),ubuntu认为BISO时间是UTC时区时间.两个系统在启动是按照BISO时间设置系统时间导致了系统时间差异。 处理思路无非,修改windows或者ub…