数据通信与计算机网络——数据与信号
主要内容
·模拟与数字
·周期模拟信号
·数字信号
·传输减损
·数据速率限制
·性能
注:数据必须被转换成电磁信号才能进行传输。
一、模拟与数字
数据以及表示数据的信号可以使用模拟或者数字的形式。数据可以是模拟的也可以是数字的,模拟数据是连续的采用连续值;数字数据有离散状态,采用离散值。
信号可以是模拟的也可以是数字的,模拟信号在一个范围内可以有无穷多个数值(强度等级),而数字信号只能有有限个值。
图3.1 模拟信号和数字信号的比较
模拟信号和数字信号可以是周期的或非周期的,在数据通信中,通常使用周期模拟信号和非周期数字信号。
二、周期模拟信号
周期模拟信号可以分为简单类型或复合类型两种。
简单类型模拟信号,即正弦波(sine wave),不能再分解为更简单的信号,而复合型模拟信号则是由多个正弦波信号组成的。
决定正弦波的三个参数:峰值振幅、频率和相位。
图 3.2 正弦波
例3.1:
家用电源的功率可以用峰值振幅为155V到170V的正弦波表示。但是,大家都知道美国家用的电压是110V到120V。不一样的原因在于这些均方根(rms)值。信号平方后再计算平均振幅。峰值等于 2½ × rms。
图 3.3 相位和频率相同但振幅不同的两个信号
图 3.4 振幅和相位相同但频率不同的两个信号
例3.3:
家用电的频率是60Hz,这个正弦波的周期就可以确定如下:
例3.4:
用微秒表示周期为100ms。
例3.5:
一个信号的周期是100ms。那么它以千赫为单位表示的频率是多少?
相位描述了波形相对于时间0的位置。
图 3.5 振幅和频率相同但相位不同的正弦波
例3.6:
正弦波相对于0时刻的偏移量是1/6周期,相位的角度值和弧度值是多少?
图 3.6 波长和周期
波长与周期之间的关系:
波长 = 传播速度 × 周期
图 3.7 正弦波的时域图和频域图
用频域图中单个峰值可表示时域图中一个完整正弦波。
例3.7:
当我们处理多个正弦波时,频域更简洁更有用。 例如,图3.8显示了三个不同振幅和频率的正弦波,它们通过频域中的三个尖峰表示。
图 3.8 三个正弦波的时域和频域
单一频率的正弦波在数据通信中没有用处,我们需要发送复合信号,复合信号由许多简单正弦波组成。按照傅里叶分析,任何复合信号都是由具有不同频率、相位和振幅的简单正弦波组合而成的。
如果复合信号是周期性的,分解得到的是一系列具有离散频率的信号;如果复合信号是非周期性的,分解得到的是具有连续频率的正弦波组合。
例3.8:
图3.9显示了频率为f的周期复合信号。这种信号不是数据通信中的典型信号。我们可以把它看成三个告警系统,每一个有不同的频率。这个信号的分析可以让我们理解如何分解信号。
图 3.9 复合周期信号
图 3.10 复合周期信号在时域和频域中的分解(f为基础频率/第一谐波)
例3.9:
图3.11表示了一个非周期复合信号。它可以在一个或两个词发音时由麦克风或电话机产生。这种情况下,复合信号不可能是周期的,因为我们不可能以完全相同的音调重复相同的词或语句。
图 3.11 非周期信号的时域和频域
信号的带宽是信号最高频率与最低频率的差值。
图 3.12 周期复合信号和非周期复合信号的带宽
例3.10:
如果一个周期信号分解为5个正弦波信号,频率分别为100,300,500,700和900Hz,那么其带宽是多少?假定所有分量的最大振幅都为10V,试画出该信号的频谱。
解: 设 fh 为最高频率,fl 为最低频率,B为带宽,则:
频谱只有5个尖峰,分别位于100,300,500,700和900Hz的位置(见图3.13)。
图 3.13 例3.10的带宽
例3.11
一个周期信号的带宽是20Hz,其最高频率是60Hz,最低频率是多少?如果信号包含具有相同振幅的所有整数频率,试画出其频谱。
解: 设 fh 为最高频率,fl 为最低频率,B为带宽,则:
频谱包含所有整数频率。用一系列尖峰表示(见图3.14)。
图 3.14 例3.11的带宽
例3.15
非周期复合信号的另一个例子是老式模拟黑白电视接收的信号。电视屏幕由像素组成。如果我们假定分辨率为525×700,那么每个屏幕就会有367,500个像素。如果屏幕每秒扫描30次,每秒就是367,500×30= 11,025,000个像素。最坏的情况是黑色像素和白色像素交替。每个周期我们能发送两个像素。因此,每秒我们需要11,025,000 / 2 = 5,512,500个周期(或Hz)。所需的带宽是5.5125 MHz。
三、数字信号
数据除了可以用模拟信号表示外,还可以使用数字信号表示。例如,1可以编码成正电平,0可以编码为零电平。一个数字信号有多个电平,那每个电平就可以发送多位。
图 3.16 两个数字信号:一个有两个电平而另一个有四个电平
例3.16:
一个数字信号有8个电平,那么每个电平需要多少个位表示?我们根据下面公式进行计算:
得到每个信号电平用3位表示。
例3.17:
一个数字信号有9个电平,问每个电平可表示多少位?我们根据公式计算,得出每个信号电平用3.17个位表示。但是,这个答案是不现实的。每个电平发送的位数必须是整数并且是2的幂。这个例子中,4位用来表示一个电平。
例3.18:
假定一页平均24行,每一行80个字符,假定每个字符需要8位,我们需要每分钟100页的速率下载文本文档,所需的通道比特率(每秒钟发送的位数bps)是多少?
解:
100×24×80×8/60 = 1536000/60 bps=25600bps
例3.19:
数字化语音通道是通过数字化4kHz带宽的模拟语音信号形成的。我们需要以最高频率的2倍对信号进行采样(即每赫兹两个样本)。我们假定每个样本需要8位,那么所需的比特率是多少?
解:
例3.20:
HDTV使用数字信号广播高质量视频信号。HDTV屏幕通常为16:9,每屏有1920×1080 个像素,每秒刷新30次,24位代表一种颜色像素。高清晰电视(HDTV)的比特率是多少?
解:
注
1、基于傅里叶分析,数字信号是复合模拟信号,带宽无穷大;
2、傅里叶分析可以用来分解数字信号;
3、如果数字信号是周期性的,分解后的信号可以表示为无穷大带宽和离散频率的频域(图3.17);
4、如果数字信号是非周期性的,分解后的信号仍然是无穷大带宽,但频率是连续的(图3.17)。
图 3.17 周期数字信号和非周期数字信号的时域和频域
数字信号的传输
数字信号是无穷大带宽的复合模拟信号,有两种传输方式:基带传输和宽带传输(使用调制)。
基带传输(以信号本身的频谱进行传输):通过通道发送数字信号,该信号不转换成模拟信号,它需要一个带宽下限频率为0的低通通道(带宽从频率0开始)。
宽带传输:把数字信号转换成模拟信号进行传输,允许使用带通通道,即带宽不从频率0开始的通道。
基带传输
带宽只组成一条通道的专用介质,例如连接两台计算机的电缆。
图 3.18 基带传输
图 3.19 两条低通通道的带宽
图 3.20使用专用介质的基带传输
只有我们有无穷大或非常大带宽的低通通道,保持数字信号形状的数字信号基带传输才是可能的。
例3.21:
专用通道(介质的整个带宽用于一条单通道)的一个例子是LAN。几乎现在的每一个有线LAN使用专用通道用于两个站之间的互相通信。在多点连接的总线拓扑结构LAN中,每个时刻只有两个站可以互相通信(时间共享),而其他站限制发送数据。在星型拓扑结构LAN中,每个站和集线器(或交换机)之间的整个通道用于这两个实体间的通信。
有限带宽的低通通道
把数字信号近似成模拟信号,近似程度取决于可用的带宽。
大致近似(最小带宽):
假定数字信号比特率为N,用模拟信号来大致近似这个信号;
最坏情况,即数字信号中变化的最大数:01010101…或10101010…,需要的频率f = N/2;
最好情形:0000…或1111…,需要的频率为0;
所需带宽为N/2;
为了更好近似,可以增加更多谐波,所需带宽相应增加。
图 3.21 对于最坏情形的数字信号使用一个谐波的大致近似
图 3.22 更好近似:使用三个谐波(1/3/5)模拟数字信号
基带传输中,所需的带宽与比特率成正比;如果我们需要更快地发送位,我们就需要更大的带宽。
表 3.2 带宽需求量
例3.22:
如果我们需要使用基带传输发送 1Mbps,那么低通通道所需的带宽是多少?
解:
答案取决于所需的准确性。
a. 最小带宽、大致近似时,B = 比特率/2,即500 kHz。
b. 使用第一和第三谐波可以得到更好的结果,所需带宽是B = 3 × 500 kHz = 1.5 MHz。
c. 使用第一、第三和第五谐波仍然可以得到更好的结果,所需带宽是 B = 5 × 500 kHz = 2.5 MHz。
例3.23:
我们有一条带宽为100kHz的低通通道,那么这条通道的最大比特率是多少?
解: 如果我们使用第一谐波可以得到最大比特率,比特率是2倍有效带宽,即200kbps。
宽带传输
图 3.23 带通通道的带宽
如果可用通道是带通通道,我们不能直接发送数字信号到通道;我们需要在传输前把数字信号转换成模拟信号。
图 3.24 数字信号在带通通道传输的调制过程
例3.24:
使用调制的宽带传输的一个例子是通过电话用户线传输计算机数据,电话用户线连接住所到中心电话局。这些线路设计用有限带宽承载语音。这个通道通常被看做带通通道。我们从计算机把数字信号转换成模拟信号,然后发送模拟信号。我们要安装两个转换器用来在发送端把数字信号转换成模拟信号以及在接收端把模拟信号转换回数字信号。
例3.25:
数字蜂窝电话——为了更好地接收,数字蜂窝电话把模拟信号转换成数字信号(见第16章)。虽然分配给公司提供数字蜂窝电话服务的带宽很广,但是我们不能不经转换发送数字信号。原因是,我们在主叫方和被叫方之间只有一条可用的带通通道。我们需要在发送前把数字信号转换成复合模拟信号。
四、传输减损
信号通过介质进行传输,但是其传输并非是完美无缺的,不完美的地方导致了信号减损,这意味着信号在介质的开始一端和结束一端是不相同的,接收到的信号并非就是发出的信号。
通常会发生三种类型的减损:衰减、失真和噪声。
衰减
图 3.26 衰减(失去一些能量克服介质的阻抗,发热)
分贝
为了说明信号损失或增益的强度,工程上使用分贝的概念; 分贝(decibel,dB)用于计算两种信号之间或者同一信号在两个不同位置之间的相对强度:
dB = 10log10(P2/P1)
P1和P2分别是信号在位置1和位置2的功率
例3.26:
假设信号通过一种传输介质传输后,它的功率降低了一半。这可以表示为P2=(1/2)P1,这种情况下衰减(损失的能量)可以计算为:
因此,–3dB(分贝)或者3dB衰减等价于功率损失了一半。
例3.27:
假定信号通过一个放大器,它的功率增大为原来的10倍。这表示P2=10P1。在这种情况下,放大量(功率增益)可以计算为:
例3.28:
工程人员使用分贝来计算信号强度变化的原因之一是,当涉及计量多处(级联)而不仅仅是两处的信号强度时,分贝数可以相加(或相减)。在图3.27中,一个信号从位置1传输到位置4,在这种情况下,分贝可以计算为:
图 3.27 例3.28的分贝
例3.29:
有时候分贝用来以毫瓦计量信号功率。这种情况下,它成为dBm,计算为dBm = 10log10Pm , 这里Pm是以毫瓦为单位的功率。如果信号的dBm=−30,计算它的功率。 解: 我们计算信号的功率如下:
例3.30:
电缆中的损耗一般定义为每公里分贝数(dB/km)。如果电缆每公里分贝数为−0.3dB/km,信号在电缆开始端的功率为2mW,则在5km处信号的功率是多少?
解: 电缆中的损耗为5×(−0.3) = −1.5 dB。我们计算功率如下:
失真
失真意味着信号改变了形态或形状。导向媒体上信号传播速度随频率的不同而改变,所以 各信号成分延迟的差异会产生相位的差异,即接收方的信号成分与发送方的信号成分存在相位差异。
图 3.28 失真
噪声
热噪声:电缆中的电子随机移动产生的额外信号
感应噪声:来源于发动机和设备(工作时相当于发射天线)
串扰:电缆之间的相互影响
脉冲噪声:一种尖峰信号,来自输电线、闪电等
图 3.29 噪声
信噪比SNR(signal-to-noise ratio)
信噪比:信号功率与噪声功率的比率,较高意味着信号较少的被噪声破坏,较低意味着被噪声较多的破坏。
SNR = 平均信号功率/平均噪声功率
以分贝描述:SNR dB = 10log10SNR
例3.31:
对于无噪声通道的SNR和SNRdB是:
注:我们在现实中不会得到这样的比率,它是理论上的。
图 3.30 SNR的两种情形: 高 SNR和低 SNR
五、数据速率限制
数据通信中一个非常重要的问题是:在一个通道中能够以多快的速率发送数据,即每秒钟的比特数。数据速率取决于:有效带宽、使用信号的电平数、通道的质量。
为计算数据速率,有两个理论上的定理或公式:
无噪声通道:奈奎斯特定理
噪声通道:香农容量公式
奈奎斯特定理
对于无噪声通道,奈奎斯特定理定义了理论上的最大比特率:
比特率 = 2×带宽×log2L
其中,带宽指通道的带宽,L表示信号电平的个数
注:增加信号电平数会增加接收方的负担,减弱系统的可靠性。
例3.32:
奈奎斯特公式是否适用于基带传输中描述的直觉上的比特率?
解: 当只有两个电平时它们匹配。我们说,在基带传输中,如果我们在最坏情况只使用第一谐波,那么比特率是2倍带宽。但是,奈奎斯特公式比我们直觉上得到的更通用,它可以应用到基带传输和调制,也可以应用到有两个或多个信号电平的情况。
例3.33:
考虑带宽为3000Hz的无噪声通道,传输两种电平的信号,则最大比特率计算为:
例3.34:
考虑同样的无噪声通道,传输具有四种信号电平的信号(每一种电平发送两个位),最大比特率可以计算为:
例3.35:
通过带宽为20kHz的无噪声通道发送265kbps,我们需要多少个信号电平? 解: 我们使用奈奎斯特公式如下:
因为结果不是2的幂,所以我们需要增加电平数或者减小比特率。如果我们有128个电平,比特率是280kbps;如果我们有64个电平,比特率是240kbps。
香农容量公式
对于噪声通道,香农容量公式定义了理论上的最高数据速率。
通道容量 = 带宽×log2(1+SNR)
其中,带宽指通道的带宽,SNR是信噪比
注意:公式没有指出信号电平数,定义了通道特性。
例3.36:
考虑一个极端的噪声通道,其信噪比的值接近于0。换句话说,噪声很强而信号很弱,对于该通道,其容量C计算为:
这意味着通道的容量为0,与带宽无关。换句话说,通过该通道不能接收到任何数据。
例3.37:
我们可以计算一条常规电话线路理论上的最高比特率。通常情况下,电话线路的带宽为3000Hz,信噪比通常为3162。对于这一通道,其容量计算为:
这表示电话线路的最高比特率是34,860bps。如果要使数据发送速率比这更快,则可增大线路的带宽或者提高信噪比。
例3.38:
信噪比通常以分贝给定。假定SNRdB = 36,通道带宽是2MHz。理论上的通道容量计算为:
例3.39:
为了实际操作方便,当SNR很大时,假定SNR + 1几乎与SNR相等,理论通道容量可以简化为:
例如,我们可以计算前一例子的理论容量为:
例3.39推导过程
例3.40-使用两种限制条件:
有一个1MHz带宽的通道,通道的信噪比是63,合适的比特率以及信号电平是多少?
解: 首先,使用香农公式确定上限:
尽管香农公式计算结果是6Mbps,但这是上限。为了获得更好的性能,可选择低一些的值,如4Mbps。然后使用奈奎斯特公式计算信号电平的数量:
注:香农容量公式给出数据速率的上限,奈奎斯特定理给出所需的信号电平数。
六、性能
网络中的一个重要问题是网络的性能—网络怎么算好?衡量性能的技术术语:
·带宽:以赫兹或比特率表示
·吞吐量:发送速度快慢的实际衡量值,小于带宽
·延迟:第一个比特从源开始发出到整个报文完全到达目标所经历的时间,包括传播时间(指一个比特从源端到达目标端所需要的时间,等于:距离/信号传播速度)、传输时间(指源端将整个报文传输出去需要的时间,等于:报文长度/带宽)、排队时间和处理延迟
·带宽与延迟的乘积:定义了充满链路的位数
·抖动:不同分组有不同的延迟,某些应用敏感
带宽
在网络中,我们在两种情况下使用术语带宽: 第一种,以赫兹衡量的带宽指复合信号包含的频率范围或者通道能通过的频率范围; 第二种,以每秒比特数衡量的带宽指通道或链路中位传输的速率。
例3.41:
用于语音或数据的用户线带宽是4kHz。使用复杂的调制解调器把数字信号转换成模拟信号,这种线路用于数据传输的带宽可以达到56,000bps。
例3.42:
如果电话公司提高线路的质量,把带宽增加到8kHz,通过例3.42提到的相同技术,可以发送 112,000bps。
吞吐量
例3.43
带宽为10Mbps的网络每分钟只能平均传输12,000个帧,每个帧平均携带10,000个位。那么这个网络的吞吐量是多少?
解: 我们可以计算吞吐量为:
注:这个例子中的吞吐量几乎是带宽的五分之一。
例3.44
如果两点之间的距离是12,000km,传播时间是多少?假定电缆中的传播速度是2.4×108 m/s。 解: 我们可以计算传播速度为:
注:这个例子说明如果源和目标之间有直接电缆,一个位经过大西洋只需要50ms。
例3.45:
如果网络的带宽是1Gbps,那么2500个字节的报文(一封电子邮件)的传播时间和传输时间是多少?假定发送方和接收方之间的距离是12,000km,光以速度2.4×108m/s传输。 解: 我们计算传播时间和传输时间为:
注:在这个例子中,因为报文较短而带宽较高,主导因素是传播时间而不是传输时间,传输时间可忽略不计。
例3.46:
如果网络带宽是1Mbps,那么5M字节的报文(一张图像)的传播时间和传输时间是多少?假定发送方和接收方之间的距离是12,000km,以速度2.4×108m/s传输 解: 我们计算传播时间和传输时间为:
注:因为报文较长而带宽不是很高,所以主导因素是传输时间而不是传播时间,传播时间可以忽略不计。
延迟
图 3.31 在情形1中用位充满链路
图 3.32 在情形2下用位充满链路
带宽与延迟的乘积
例3.48:
我们把两点间的链路看做管道。管道的横截面表示带宽,管道的长度表示延迟。我们可以说管道的容量定义了带宽延迟乘积,如下图所示。
带宽延迟乘积定义了能充满链路的位数。
相关文章:

数据通信与计算机网络——数据与信号
主要内容 模拟与数字 周期模拟信号 数字信号 传输减损 数据速率限制 性能 注:数据必须被转换成电磁信号才能进行传输。 一、模拟与数字 数据以及表示数据的信号可以使用模拟或者数字的形式。数据可以是模拟的也可以是数字的,模拟数据是连续的采用…...

【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南
LangChain4j和SpringBoot入门指南 LangChain4jLangchain4j API语言模型消息类型内存对象ChatMemory接口的主要实现设置 API 密钥SpringBoot Configuration配置ChatLanguageModelStreamingChatLanguageModel初始化ChatModel对象模型配置分析介绍说明通过JavaConfig创建ChatModel…...
Flask 基础与实战概述
一、Flask 基础知识 什么是 Flask? Flask 是一个基于 Python 的轻量级 Web 框架(微框架)。 特点:核心代码简洁,给予开发者更多选择空间。 与 Django 对比: Django 创建空项目生成多个文件,Flask 仅需一个文件即可实现简单应用(如 "Hello, World!")。 Flask …...
东芝Toshiba e-STUDIO2110AC打印机信息
基本信息 产品类型:数码复合机颜色类型:彩色涵盖功能:复印、打印、扫描接口类型:标配为 Ethernet(RJ45)10/100/1000BASE - T、USB2.0 高速;选配为 Wireless Lan、IEEE802.11b/g/n、blueteeth。中…...

Vue3 GSAP动画库绑定滚动条视差效果 绑定滚动条 滚动条动画 时间轴
介绍 GSAP 用于创建高性能、可控制的动画效果。由 GreenSock 团队开发,旨在提供流畅、快速、稳定的动画效果,并且兼容各种浏览器。 提供了多个插件,扩展了动画的功能,如 ScrollTrigger(滚动触发动画)、Dra…...

grafana-mcp-analyzer:基于 MCP 的轻量 AI 分析监控图表的运维神器!
还在深夜盯着 Grafana 图表手动排查问题?今天推荐一个让 AI 能“读图说话”的开源神器 —— grafana-mcp-analyzer。 想象一下这样的场景: 凌晨3点,服务器告警响起。。。你睁着惺忪的眼睛盯着复杂的监控图表 😵💫花…...
git commit 执行报错 sh: -/: invalid option
目录 目录 1. 检查 Git 钩子脚本(核心步骤)2. 临时绕过钩子(快速提交)3. 修复钩子依赖环境4. 重新初始化 Husky(如适用)5. 验证用户配置 Tips: 如果是 clone 下来的新项目直接进行 步骤 4 。…...
uniapp 设置手机不息屏
在使用 UniApp 开发应用时,有时需要在设备长时间未操作时实现息屏保护功能,以节省电量和保护屏幕。以下是如何在 UniApp 中实现这一功能的步骤。 示例一 // 保持屏幕常亮 uni.setKeepScreenOn({keepScreenOn: true });// 监听应用进入后台事件 uni.onH…...

【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)
题目:B3622 枚举子集(递归实现指数型枚举) 题目描述 今有 n n n 位同学,可以从中选出任意名同学参加合唱。 请输出所有可能的选择方案。 输入格式 仅一行,一个正整数 n n n。 输出格式 若干行,每行…...

(LeetCode 每日一题)3170. 删除星号以后字典序最小的字符串(贪心+栈)
题目:3170. 删除星号以后字典序最小的字符串 思路:贪心栈,时间复杂度0(n)。 对于每一个‘ * ’,优先选最右边的最小字符,才会使最终得到的字符串最小。 用栈,来记录每个字符的位置下标。细节看注释。 C版本…...
Protobuf 中的类型查找规则
a.proto syntax "proto2"; //protoc3生成代码兼容proto2语法 package pkgA; message Example { }ba.proto package pkgB.pkgA; message Example { }b.proto syntax "proto3"; //protoc3生成代码兼容proto2语法 package pkgB; import "test1/a.pr…...
Python项目中添加环境配置文件
在Python项目中添加配置文件有多种方式,每种方式对应不同的依赖包和读取方法。以下是 7种主流配置管理方案,包含安装命令、配置示例和变量读取方法: 1. .env 文件(推荐简单项目) 依赖包: python-dotenv pip install …...
【区块链基础】区块链的 Fork(分叉)深度解析:原理、类型、历史案例及共识机制的影响
区块链的 Fork(分叉)全面解析:原理、类型、历史案例及共识机制的影响 在区块链技术的发展过程中,Fork(分叉)现象是不可避免且极具影响力的一个环节。理解区块链分叉的形成原因、具体表现以及共识机制对分叉的作用,对于深入把握区块链技术架构及其治理机制至关重要。 本…...
IOS 打包账号发布上传和IOS Xcode证书配置
xcode下载 https://developer.apple.com/download/all/ App发布 https://appstoreconnect.apple.com/ https://appstoreconnect.apple.com/teams/83ba877c-af24-4fa5-aaf2-e9b9b6066e82/apps/6473148620/testflight/groups/eb983352-b2e2-4c29-bbb7-071bf7287795 https://devel…...

使用 HTML + JavaScript 实现文章逐句高亮朗读功能
在这个信息爆炸的时代,我们每天都要面对大量的文字阅读。无论是学习、工作还是个人成长,阅读都扮演着至关重要的角色。然而,在快节奏的生活中,我们往往难以找到足够的安静时间专注于阅读。本文用 HTML JavaScript 实现了一个基于…...
【CSS-4】掌握CSS文字样式:从基础到高级技巧
文字是网页内容的核心载体,良好的文字样式设计不仅能提升可读性,还能增强网站的整体视觉效果。本文将全面介绍CSS中控制文字样式的各种属性和技巧,帮助您打造专业级的网页排版。 1. 基础文字属性 1.1 字体设置 (font-family) body {font-f…...

双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
安科瑞刘鸿鹏 摘要 在“双碳”战略和能源结构转型的大背景下,企业储能电站逐步成为提升能源利用效率、增强用能韧性的重要手段。随着系统规模扩大与运行复杂度提升,如何对光伏、储能、负荷等流进行实时调控,成为智慧用能的关键。ACCU100微…...

3. 简述node.js特性与底层原理
😺😺😺 一、Node.js 底层原理(简化版) Node.js 是一个 基于 Chrome V8 引擎构建的 JavaScript 运行时,底层核心由几部分组成: 组成部分简要说明 1.V8 引擎 将 JS 编译成机器码执行࿰…...

OpenCV CUDA模块图像处理------创建一个模板匹配(Template Matching)对象函数createTemplateMatching()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 创建一个用于在 GPU 上执行模板匹配的 TemplateMatching 对象。 该函数返回一个指向 TemplateMatching 的智能指针(Ptr)…...

【Kubernetes】K8s 之 ETCD - 恢复备份
ETCD 是一个高可用的分布式键值存储,常用于存储配置信息和服务发现等。当系统出现故障或数据损坏时,能够快速恢复成先前的状态是维护系统稳定性的关键。ETCD 提供了备份和恢复功能,以确保数据持久性和可靠性,一起来看看如何操作吧…...
CMS、G1、ZGC、Shenandoah 的全面对比
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! Java 垃圾回收器从最早的 Serial 一步步演化,如今已经有了多款高性能、低延迟的 GC 垃圾收集器可选,比如 CMS、G1、…...

RabbitMQ 学习
MQ 的相关概念 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。…...

如何轻松、安全地管理密码(新手指南)
很多人会为所有账户使用相同、易记的密码,而且常常多年不换。虽然这样方便记忆,但安全性非常低。 您可能听说过一些大型网站的信息泄露事件,同样的风险也可能存在于您的WordPress网站中。如果有不法分子获取了访问权限,您的网站和…...

AWS App Mesh实战:构建可观测、安全的微服务通信解决方案
摘要:本文详解如何利用AWS App Mesh统一管理微服务间通信,实现精细化流量控制、端到端可观测性与安全通信,提升云原生应用稳定性。 一、什么是AWS App Mesh? AWS App Mesh 是一种服务网格(Service Mesh)解…...

9.axios底层原理,和promise的对比(2)
😺😺😺 和promise的对比 完全可以直接使用 Promise 来发 HTTP 请求,比如用原生 fetch Promise 就可以实现网络请求功能👇 ✅ 用 Promise fetch 的写法(原生) fetch(‘https://api.example.c…...

用HTML5 Canvas打造交互式心形粒子动画:从基础到优化实战
用HTML5 Canvas打造交互式心形粒子动画:从基础到优化实战 引言 在Web交互设计中,粒子动画因其动态美感和视觉吸引力被广泛应用于节日特效、情感化界面等场景。本文将通过实战案例,详细讲解如何使用HTML5 Canvas和JavaScript实现一个「心之律…...
Gartner《How to Create and Maintain a Knowledge Base forHumans and AI》学习报告
核心观点 本研究是一份 Gartne关于如何创建和维护面向人类与人工智能(AI)的知识库的研究报告。报告强调了知识库在知识管理(KM)中的核心地位,尤其是在生成式人工智能(GenAI)时代,一个结构良好的知识库是知识管理成功的关键,反之则可能成为整个知识管理实践的失败点。…...

【软件工具】批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项
批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项 1、操作步骤1-5: 安装与启动:安装成功后,在桌面或开始菜单找到软件图标,双击启动。 导入图片:进入软件主界面,点击 “导入图片” 按钮&a…...
PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
torch.cumprod 是 PyTorch 中用于 计算张量沿指定维度的累积乘积(cumulative product) 的函数。 1、函数原型 torch.cumprod(input, dim, *, dtypeNone, outNone) → Tensor参数说明: 参数说明input输入张量dim累积乘积的维度dtype可选&…...
docker镜像下载到本地,并导入服务器
应用场景 : 本地环境可以连接外网,但服务器连接不了外网,直接用docker pull 命令执行拉起镜像报异常。 1.本地拉取xuxueli/xxl-job-admin:2.2.0及查看所有下载的镜像 docker pull xuxueli/xxl-job-admin:2.2.0 docker images 2.保存镜像到…...