当前位置: 首页 > news >正文

自动驾驶感知——毫米波雷达

文章目录

  • 1. 雷达的基本概念
    • 1.1 毫米波雷达分类
    • 1.2 信息的传输
    • 1.3 毫米波雷达的信号频段
    • 1.4 毫米波雷达工作原理
      • 1.4.1 毫米波雷达测速测距的数学原理
      • 1.4.2 毫米波雷达测角度的数学原理
      • 1.4.3 硬件接口
      • 1.4.4 关键零部件
      • 1.4.5 数据的协议与格式
    • 1.5 车载毫米波雷达的重要参数
    • 1.6 车载毫米波雷达的三种典型应用
  • 2. FMCW雷达的工作流程
    • 2.1 线性调频脉冲信号
    • 2.2 混频器
    • 2.3 单目标距离估计
    • 2.4 多目标距离估计
    • 2.5 单目标速度估计
    • 2.6 多目标速度估计
  • 参考文献
  • 声明

1. 雷达的基本概念

    无线电探测及测距(Radio Detection and Ranging), 发射电磁波并接收目标反射的回波信号,通过对比发射信号与回收信号,获取目标的位置、速度等信息。

1.1 毫米波雷达分类

    雷达的分类
• 所发射电磁波的频段,决定了雷达的基本性能特点
• 超视距雷达、微波雷达、毫米波雷达、激光雷达、…
在这里插入图片描述

  • 按照用途分类:军用,气象,导航,车载
  • 按照波长分类:米,分米,厘米,毫米
  • 按照波形分类:脉冲,连续波

按照波长和用途分类

  • 长波雷达(米,分米),分辨率低,穿透性强
    ➢一般用于广播,军事预警,卫星通讯等:
  • 短波雷达(厘米,毫米),分辨率高,穿透性差
    ➢一般用于测绘,短程通讯,车载应用等

按照波形分类

  • 脉冲雷达
    ➢通过脉冲发送和接收的时间差来确定目标的距离
    ➢不能确定目标的速度
  • 连续波雷达
    ➢发射信号在时间上是连续的
    ➢发射信号的频率是随着时间变化的(调频连续波)

1.2 信息的传输

◼ 调制:将调制信号(待传输信息)混合到载波信号(起到载运作
用的信号)的过程,可分为调频,调幅,调相。
◼ 解调:相反的过程,即从混合信号中恢复出待传输信息。
◼ 带宽:调制信号频谱的宽度,带宽高有利于传输更多数据。
在这里插入图片描述

  • 毫米波雷达使用的电磁波波长介于1-10mm,波长短、频段宽,比较 容易实现窄波束,雷达分辨率高,不易受干扰
  • 早期被应用于军事领域,随着雷达技术的发展与进步,毫米波雷达传 感器开始应用于汽车电子、无人机、智能交通等多个领域。

在这里插入图片描述

1.3 毫米波雷达的信号频段

频率24GHz77GHz
探测范围 探测距离短,探测角度(FOV)大探测距离长,探测角度小
频段限制24GHz频段因与其他无线电设备共享,必须限制发射功率独占频段
带宽小于1GHz可达4GHz
优势在中短距测距有明显优势;探测范围FOV更大波长更短波束更窄;识别精度高且穿透力更强;带宽更大可兼顾远中近不同场景
代表产品大陆 ARS208,Hella 24GHz角雷达大陆 ARS408,BOSCH LRR4

1.4 毫米波雷达工作原理

    在车载毫米波雷达中,目前主要有三种调制方案:调频连续波(Frequency
Modulated Continuous Wave, FMCW),频移键控(Frequency Shift Keying, FSK)以及相移键控(Phase Shift Keying, PSK)。
    主流车载毫米波雷达所采用的的调制信号为调频连续波FMCW。

    其基本原理是在发射端发射一个频率随时间变化的信号,经目标反射后被接收机接收,通过反射信号和接收信号之间的混频,得出两个信号的频率差,随后通过电磁波传播公式多普勒效应公式求出目标距离和速度.

⚫ 测距测速是通过分析发射和接收的调频连续之间的区别来实现
⚫ 测量角度是通过计算不同天线单元之间的延时差来计算

1.4.1 毫米波雷达测速测距的数学原理

在这里插入图片描述
    这里首先分析 0<t<T/20<t<T/20<t<T/2 时收发信号的关系。在调频连续波雷达中,本振信号的频率在半个周期内是随时间成线性关系变化的,即fLO(t)=f0+kt(0<t<T2){f_{LO}}(t) = {f_0} + kt{\rm{ }}(0 < t < \frac{T}{2})fLO(t)=f0+kt(0<t<2T)    其中 f0f_0f0 是初始时刻的频率,kkk 是频率随时间变化的斜率。因为频率是相位关于时间 ttt 的导数,因此相位可以表示为频率关于时间 ttt 的积分,即ϕ(t)=2π∫f(t)dt=πkt2+2πf0t+ϕ0\phi (t) = 2\pi \int {f(t)dt = \pi k{t^2} + 2\pi {f_0}t + {\phi _0}} ϕ(t)=2πf(t)dt=πkt2+2πf0t+ϕ0    其中 ϕ0\phi _0ϕ0 是初始相位,因此本振信号关于时间的表达式可以写成VLO(t)=V1cos⁡(πkt2+2πf0t+ϕ0){V_{LO}}(t) = {V_1}\cos (\pi k{t^2} + 2\pi {f_0}t + {\phi _0})VLO(t)=V1cos(πkt2+2πf0t+ϕ0)    其中 V1V_1V1 是本振信号的幅度,由于该本振信号的频率是随时间呈连续周期性变化的,所以称之为调频连续波,本振信号经过功率放大器(Power Amplifier, PA)放大后,由天线发射到自由空间中,这里把 PA 和天线的总增益记为 G1G_1G1,则发射信号为VTX(t)=G1V1cos⁡(πkt2+2πf0t+ϕ0){V_{TX}}(t) = {G_1}{V_1}\cos (\pi k{t^2} + 2\pi {f_0}t + {\phi _0})VTX(t)=G1V1cos(πkt2+2πf0t+ϕ0)    该信号经过空气传播到目标表面,被目标反射,最后由接收机接收,信号往返的传播时间为 τττ,若雷达和目标的距离为r(t)r(t)r(t),则τ=2r(t)c=2(r0+vt)c\tau = \frac{{2r(t)}}{c} = \frac{{2({r_0} + vt)}}{c}τ=c2r(t)=c2(r0+vt)    其中 ccc 为电磁波在空气中的传播速度,r0r_0r0 是初始距离,vvv 为雷达和目标间的相对速度。
    电磁波在空气中传播和被目标反射的过程也会带来一定损耗,损耗系数记作 α1α_1α1,则接收信号可以表示为VRX(t)=α1G1V1cos⁡(πk(t−τ)2+2πf0(t−τ)+ϕ0){V_{RX}}(t) = {\alpha _1}{G_1}{V_1}\cos (\pi k{(t - \tau )^2} + 2\pi {f_0}(t - \tau ) + {\phi _0})VRX(t)=α1G1V1cos(πk(tτ)2+2πf0(tτ)+ϕ0)    这里再介绍以下混频的概念:
混频:输出信号频率等于两输入信号频率之和、差或其他组合的电路。
常用方法:cos⁡α⋅cos⁡β=[cos⁡(α+β)+cos⁡(α−β)]/2\cos \alpha \cdot \cos \beta = [\cos (\alpha + \beta ) + \cos (\alpha - \beta )]/2cosαcosβ=[cos(α+β)+cos(αβ)]/2

    接收信号经过低噪声放大器(Low Noise Amplifier, LNA)放大后,与本振信号进行混频。混频后的信号包含了高频分量和低频分量,将该信号通过一个低通滤波器可得(假设通带内的增益为单位增益):VIF(t)=α1G1G2V12cos⁡(2πkτt+2πf0τ−πkτ2){V_{IF}}(t) = {\alpha _1}{G_1}{G_2}{V_1}^2\cos (2\pi k\tau t + 2\pi {f_0}\tau - \pi k{\tau ^2})VIF(t)=α1G1G2V12cos(2πkτt+2πf0τπkτ2)    求导,即可求出中频频率(混频后的信号经低通滤波后所得低频分量,又叫中频频率 f𝐼𝐹f_{𝐼𝐹}fIF(intermediate frequency)为,是RX与TX之差。)fIF(t)≈2kr0c+2f0vc{f_{IF}}(t) \approx \frac{{2k{r_0}}}{c} + \frac{{2{f_0}v}}{c}fIF(t)c2kr0+c2f0v在这里插入图片描述    只知道上式是无法求出速度和距离的,所以需要用到三角波的原理进行求解,三角波有两个斜率,一正一负,可以得到两个表达式,进而可以求解出距离rrr和速度vvv。三角波的周期为 TTT,最低频率、最高频率和中心频率分别为 fa、fb、fcf_a、f_b、f_cfafbfc,其带宽 B=fb−faB=f_b-f_aB=fbfa,三角波的斜率为k=2BT=2(fb−fa)Tk = \frac{{2B}}{T} = \frac{{2({f_b} - {f_a})}}{T}k=T2B=T2(fbfa)    上升、下降区间的中频频率分别为 𝑓1𝑓_1f1, 𝑓2𝑓_2f2,斜率为kkk, 光速为ccc,变频后的结果如下f1=2krc+2fcvc{f_1} = \frac{{2kr}}{c} + \frac{{2{f_c}v}}{c}f1=c2kr+c2fcvf2=−2krc+2fcvc{f_2} = \frac{{ - 2kr}}{c} + \frac{{2{f_c}v}}{c}f2=c2kr+c2fcv    因此可以解出速度和距离v=(f1+f2)c4fcv = \frac{{({f_1} + {f_2})c}}{{4{f_c}}}v=4fc(f1+f2)cr=(f1−f2)c4kr = \frac{{({f_1} - {f_2})c}}{{4k}}r=4k(f1f2)c

1.4.2 毫米波雷达测角度的数学原理

     一对收发机所采集到的信号是不具备角度信息的, 因此需要采用多路发射多路接收的架构,或者采用相控阵架构。
    短波长和小天线孔径就很有必要了,
短波长意味着波束更窄,能量更加集中
更小的孔径尺寸意味着系统上能集成更多的天线单元
     这些都有利于提高角分辨率。在这里插入图片描述

天线阵列示意图

1.4.3 硬件接口

⚫ 天线向外发射毫米波,接收目标反射信号
⚫ 信号处理器完成回波信号处理
⚫ 算法芯片完成原始点云目标的进一步处理
⚫ CAN接口完成毫米波处理数据的发送以及配置信息的输入
在这里插入图片描述

1.4.4 关键零部件

毫米波雷达的天线接发系统
• PCB板实现MMIC(单片微波集成电路)
• 包括接收电路单元,负责发射与接收连续调频波
毫米波雷达的信号处理芯片
• 包含信号处理器和算法芯片
• 完成回波信号处理与目标感知结果的计算

1.4.5 数据的协议与格式

传输层协议:网口UDP/IP协议,或者CAN接口

  • 控制器局域网总线(CAN,Controller Area Network)是一种用 于实时应用的串行通讯协议总线

数据格式:按照CAN编码机制,确定雷达的输入配置信息与输出数据格式

  • CAN报文
    13个字节 信息段(5Byte)+数据段(8Byte)
    数据段按照事先规定好的报文规则进行编码和解码
  • CAN报文解析使用方法
    在这里插入图片描述
    数据内容:不同内容使用不同的CAN协议
    Cluster类型:包含3类message:
  • Header(数量n)
  • +n个数据消息(距离/角度/速度)
  • +n个质量消息(数据的方差)(1≤n ≤ 256)

1.5 车载毫米波雷达的重要参数

常见参数:

  • 测量性能 测距范围
    距离/水平角/速度 分辨率 (可对两个物体进行区分的最小单位)
    距离/水平角/速度 精度 (测量不确定性)

  • 操作条件 雷达发射功率、传输能力、电源、功耗、操作温度

1.6 车载毫米波雷达的三种典型应用

在这里插入图片描述
    毫米波雷达具有全天侯适应性,是高级别自动驾驶实现必备的环境感知传感器.
    77GHz及79GHz雷达是未来车载毫米波雷达的发展方向,国内正处于快速追赶时期在这里插入图片描述

2. FMCW雷达的工作流程

PS:此部分主要是为了简单理解FMCW雷达的工作原理,是对第一章内容的补充。
    总结一下,FMCW雷达的工作流程:

  • 合成器生成一个线性调频信号 ;
  • 发射天线( TX )发射线性调频信号;
  • 接收天线( RX )捕获目标对线性调频信号的反射;
  • 混频器将RX和TX信号合并到一-起,生成一个中频(IF )信号。
    在这里插入图片描述

2.1 线性调频脉冲信号

对于一个脉冲信号

  • 信号的频率随时间的变化线性升高
  • 起始频率fcf_cfc,持续时间TcT_cTc,带宽BBB,频率变化率SSS
    在这里插入图片描述

2.2 混频器

作用:将TX和RX的信号合并生成一个新的信号IF

TX发射信号:x1=sin⁡(2πf1t+ϕ1){x_1} = \sin (2\pi {f_1}t + {\phi _1})x1=sin(2πf1t+ϕ1)
RX接收信号:x2=sin⁡(2πf2t+ϕ2){x_2} = \sin (2\pi {f_2}t + {\phi _2})x2=sin(2πf2t+ϕ2)
中频信号IF:xout=sin⁡(2π(f1−f2)t+ϕ1−ϕ2)=sin⁡(2πΔft+Δϕ)\begin{array}{c}{x_{out}} = \sin (2\pi ({f_1} - {f_2})t + {\phi _1} - {\phi _2})\\ = \sin (2\pi \Delta ft + \Delta \phi )\end{array}xout=sin(2π(f1f2)t+ϕ1ϕ2)=sin(2πΔft+Δϕ)

对于单个静止目标,RX和TX脉冲 之间的时间差是固定为τττ。因此,频率差也是固定的,也就是说IF是一个频率恒定的单音信号。IF的Δf\Delta fΔfΔϕ\Delta \phiΔϕ用以估计速度和距离。

2.3 单目标距离估计

PS:此处估计为了简要分析,雷达与目标的相对速度为0.

在这里插入图片描述
RX和TX之间的时间差为τ=2rc\tau = \frac{{2r}}{c}τ=c2rrrr为距离,ccc为光速。由此可以推出τ=2rc⇒r=Δf⋅c2S\tau = \frac{{2r}}{c} \Rightarrow r = \frac{{\Delta f \cdot c}}{{2S}}τ=c2rr=2SΔfc

从上式可以看出,最大探测距离rrr受限于Δf\Delta fΔf的最大值,Δf\Delta fΔf受限于以下两个因素:

  1. 带宽BBB:Δf<B\Delta f<BΔf<B,因此r<B⋅c2Sr < \frac{{B \cdot c}}{{2S}}r<2SBc
  2. IF信号的采样频率FSF_SFS:FS>2ΔfF_S>2\Delta fFS>f
    假设一个chirp内的采样频率为NNN,FS=N/TcF_S=N/T_cFS=N/Tc,可得
    r<FS⋅c4S=N⋅c4TcS=N⋅c4Br < \frac{{{F_S} \cdot c}}{{4S}} = \frac{{N \cdot c}}{{4{T_c}S}} = \frac{{N \cdot c}}{{4B}}r<4SFSc=4TcSNc=4BNc

最大探测距离主要受限于FsF_sFs,并且与BBB成反比

2.4 多目标距离估计

在这里插入图片描述
图片来源

  • 来自三个目标的RX接收信号,每个信号有不同的延时,延时和与目标的距离成正比。
  • 不同的RX接收信号转化为多个单音信号,每个信号的频率差是恒定的(fb1,fb2,fb3)f_{b1},f_{b2},f_{b3})fb1,fb2,fb3)
  • 混频器输出的是多个单音信号的叠加。对该信号进行FFT操作,会产生一个具有不同的峰值的频谱,每个峰值表示在特定距离处的目标。

距离分辨率是指雷达能区分两个不同目标的最小距离。傅里叶变换理论指出:观测时间窗口T,可以分辨间隔超过1/T1/T1/T Hz的频率分量。因此,两个目标反射信号频率差的差值需要满足∣Δf1−Δf2∣>1Tc\left| {\Delta {f_1} - \Delta {f_2}} \right| > \frac{1}{{{T_c}}}Δf1Δf2>Tc1根据测距公式:∣Δf1−Δf2∣=2SΔrc\left| {\Delta {f_1} - \Delta {f_2}} \right| = \frac{{2S\Delta r}}{c}Δf1Δf2=c2SΔr可以得到最小分辨距离Δr>c2STc=c2B\Delta r > \frac{c}{{2S{T_c}}} = \frac{c}{{2B}}Δr>2STcc=2Bc因此,从式子中我们可以得到提高分辨率的方法:提高带宽BBB,延长chirp信号。

2.5 单目标速度估计

FMCW雷达会发射两个间隔TcT_cTc的线性调频脉冲(两个Chirp) ,相应的IF信号为:在这里插入图片描述
在这里有两个近似条件:

  1. 在一个chirp时间(Tc=40μs{T_c} = 40\mu sTc=40μs)内,目标的移动距离可以近似看成不变。
  2. TX与RX的频率基本不变:Δf1≈Δf2\Delta {f_1} \approx \Delta {f_2}Δf1Δf2

相位计算公式:Δϕ=2πfτ=2πcτλ=4πrλ\Delta \phi = 2\pi f\tau = \frac{{2\pi c\tau }}{\lambda } = \frac{{4\pi r}}{\lambda }Δϕ=2πfτ=λ2πcτ=λ4πr其中,fff是发射信号频率,τττ是时间延迟,λλλ是发射信号波长,rrr是目标距离。
相位变化为Δϕ1−Δϕ2=4π(r1−r2)λ=4πvTcλ\Delta {\phi _1} - \Delta {\phi _2} = \frac{{4\pi ({r_1} - {r_2})}}{\lambda } = \frac{{4\pi v{T_c}}}{\lambda }Δϕ1Δϕ2=λ4π(r1r2)=λ4πvTcλ=4×10−3,v=10m/s\lambda = 4 \times {10^{ - 3}},v=10m/sλ=4×103v=10m/s估算,得到相位变化为0.4π0.4\pi0.4π,较大。
因此得到速度的估计公式:v=(Δϕ1−Δϕ2)λ4πTcv = \frac{{(\Delta {\phi _1} - \Delta {\phi _2})\lambda }}{{4\pi {T_c}}}v=4πTc(Δϕ1Δϕ2)λ限制∣Δϕ1−Δϕ2∣<π{\left| {\Delta {\phi _1} - \Delta {\phi _2}} \right| < \pi }Δϕ1Δϕ2<π时有效,则得到v<λ4Tcv < \frac{\lambda }{{4{T_c}}}v<4Tcλ
在这里插入图片描述

2.6 多目标速度估计

发射一组M个等间隔线性调频脉冲(M个Chirp),
在这里插入图片描述
对N这个维度进行FFT处理(距离FFT) ,得到M个频谱。

  • 如果目标距离相同,速度不同,M个频谱的峰值相同,但相位不同,包含来自多个目标的相位成分。
  • 如果目标距离不同,速度不同,M个频谱都会出现多个峰值,每个峰值的相位都不同。

对M这个维度进行FFT处理(速度FFT) ,可以分离多个相位分量。
在这里插入图片描述
速度分辨率:雷达能区分两个不同目标的最小速度差。
傅里叶变换理论指出:两个离散频率ω1\omega_1ω1ω2\omega_2ω2在满足∇ω=ω1−ω2>2π/M\nabla \omega = {\omega _1} - {\omega _2} > 2\pi /Mω=ω1ω2>2π/M时,是可以分辨的。∇ϕ1−∇ϕ2=4πTcλ(v1−v2)>2π/M\nabla {\phi _1} - \nabla {\phi _2} = \frac{{4\pi {T_c}}}{\lambda }({v_1} - {v_2}) > 2\pi /Mϕ1ϕ2=λ4πTc(v1v2)>2π/M(v1−v2)>λ2TcM=λ2Tf({v_1} - {v_2}) > \frac{\lambda }{{2{T_c}M}} = \frac{\lambda }{{2{T_f}}}(v1v2)>2TcMλ=2TfλTfT_fTf为一帧的时间在这里插入图片描述
提高速度分辨率的方法:提高帧时间,Chirp时 间固定的话等价于增加Chirp个数。

在这里插入图片描述

参考文献

[1] Milovanovic Vladimir M… On fundamental operating principles and range-doppler estimation in monolithic frequency-modulated continuous-wave radar sensors[J]. Facta universitatis - series: Electronics and Energetics,2018,31(4).

声明

本人所有文章仅作为自己的学习记录,若有侵权,联系立删。本系列文章主要参考了清华大学、北京理工大学、哈尔滨工业大学、深蓝学院、百度Apollo等相关课程。

相关文章:

自动驾驶感知——毫米波雷达

文章目录1. 雷达的基本概念1.1 毫米波雷达分类1.2 信息的传输1.3 毫米波雷达的信号频段1.4 毫米波雷达工作原理1.4.1 毫米波雷达测速测距的数学原理1.4.2 毫米波雷达测角度的数学原理1.4.3 硬件接口1.4.4 关键零部件1.4.5 数据的协议与格式1.5 车载毫米波雷达的重要参数1.6 车载…...

取电芯片全协议都可兼容

乐得瑞PD协议芯片/PD取电芯片/PD受电端协议芯片 支持5/9/12/15/20v定制 1、概述 LDR6328S 是乐得瑞科技有限公司开发的一款兼容 USB PD、QC 和 AFC 协议的 Sink 控制器。 LDR6328S 从支持 USB PD、QC 和 AFC 协议的适配器取电&#xff0c;然后供电给设备。比如可以配置适配器输…...

自己总结优化代码写法

jdk1.7新特性详解 开发期间略知jdk1.7的一些特性&#xff0c;没有真正的一个一个得展开研究&#xff0c;而是需要说明再去查&#xff0c;导致最整个新特性不是特别的清楚&#xff0c;这种情况以后得需要改变了&#xff0c;否则就会变成代码的奴隶。现在正好有时间可以细细的研…...

Java体系最强干货分享—挑战40天准备Java面试,最快拿到offer!

如何准备java面试&#xff0c;顺利上岸大厂java岗位&#xff1f; 主攻Java的人越来越多&#xff0c;导致行业越来越卷&#xff0c;最开始敲个“hello world”都能进大厂&#xff0c;现在&#xff0c;八股、全家桶、算法等等面试题横行&#xff0c;卷到极致&#xff01;就拿今年…...

云计算|OpenStack|错误记录和解决方案(不定时更新)

前言&#xff1a; openstack的部署和使用是难度比较大的&#xff0c;难免会出现各种各样的问题&#xff0c;因此&#xff0c;本文将把一些在部署和使用openstack社区版时出现的错误做一个记录&#xff0c;并就每一个错误分析和解决问题。&#xff08;尽量记录比较经典的错误&a…...

项目实战-NewFixedThreadPool线程池

目录 什么是线程池 线程池的类型 1.CachedThreadPool 2.FixedThreadPool 3.ScheduledThreadPool 4.SingleThreadPool 5.newWorkStealingPool 线程池的好处 1、线程池的重用 2、控制线程池的并发数 3、线程池可以对线程进行管理 线程池的示例 1.Client启动类 2.具体…...

导数与微分总复习——“高等数学”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰来复习一下之前学过的知识点&#xff0c;也就是导数与微分的总复习&#xff0c;依旧是高等数学的内容&#xff0c;主要是明天就要考高等数学了&#xff0c;哈哈哈&#xff0c;下面&#xff0c;让我们一起进入高等数学…...

Linux软件安装

1.Linux安装JDK 1.安装位置 /opt 2.安装包 jdk-8u171-linux-x64.rpm 3.安装步骤 1.将安装包上传到虚拟机中 [rootlocalhost opt]# ls jdk-8u171-linux-x64.rpm2.执行安装命令 [rootlocalhost opt]# rpm -ivh jdk-8u171-linux-x64.rpm 准备中... #####…...

【表面缺陷检测】基于YOLOX的PCB表面缺陷检测(全网最详细的YOLOX保姆级教程)

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 Hello,大家好,我是augustqi。 今天给大家分享一个表面缺陷检测项目:基于YOLOX的PCB表面缺陷检测(保姆级教程)。多的…...

【C#基础】C# 程序基础语法解析

序号系列文章0【C#基础】初识编程语言C#1【C#基础】C# 程序通用结构总结 文章目录前言基础语法1. using 关键字2. namespace 关键字3. class 关键字4. 成员字段5. 成员方法6. Main 方法7. new 关键字8. 标识符9. 关键字结语前言 &#x1f604; 大家好&#xff0c;我是writer桑&…...

【webpack】webpack 中的插件安装与使用

一、webpack 插件的作用 通过安装和配置第三方的插件&#xff0c;可以拓展 webpack 的能力&#xff0c;从而让 webpack 用起来更方便。最常用的 的webpack 插件有如下两个&#xff1a; 1.webpack-dev-server&#xff08;实时打包构建&#xff09; 类似于 node.js 阶段用到的 no…...

生物素-磺基-活性酯,Sulfo-NHS Biotin科研用试剂简介;CAS:119616-38-5

生物素-磺基-活性酯,Sulfo-NHS Biotin 结构式&#xff1a; ​ 编辑 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 英文名称&#xff1a;Sulfo-NHS-Biotin Sulfosuccinimidyl biotin 中文名称&#xff1a;磺酸基-Biotin-N-琥珀酰亚胺基酯 CAS&…...

Debain安装命令

目录 一、安装sudo命令 二、安装jdk8 三、更换软件源 四、Debian 安装 yum 五、安装zip、unzip、curl、lrzsz、NUMA 六、安装Maven 五、问题 一、安装sudo命令 1&#xff09;执行sudo命令&#xff0c;提示 -bash: sudo: command not found的解决方法 apt-get install s…...

2023-02-10 - 6 聚合

当用户使用搜索引擎完成搜索后&#xff0c;在展示结果中需要进行进一步的筛选&#xff0c;而筛选的维度需要根据当前的搜索结果进行汇总&#xff0c;这就用到了聚合技术。聚合的需求在很多应用程序中都有所体现&#xff0c;例如在京东App中搜索“咸鸭蛋”&#xff0c;然后单击搜…...

Servlet实现表白墙

目录 一、表白墙简介 二、代码实现 1、约定前后端交互的接口 2、后端代码实现 3、前端代码实现 三、效果演示 一、表白墙简介 在表白墙页面中包含三个文本框&#xff0c;分别表示表白者&#xff0c;表白对象&#xff0c;表白内容&#xff0c;在文本框中输入内容之后&…...

[python入门㊸] - python测试函数

目录 ❤ 测试函数 ❤ 单元测试和测试用例 ❤ 可通过的测试 ❤ 不能通过的测试 ❤ 测试未通过时怎么办 ❤ 添加新测试 ❤ 测试函数 学习测试&#xff0c;得有测试的代码。下面是一个简单的函数&#xff1a; name_function.py def get_formatted_name(first, last):…...

通讯录文件操作化

宝子&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重…...

为什么 Web3 社交将超越其 Web2 同行

我们最近听到了很多关于 web3 社交媒体平台的消息。但如果你没有跟上&#xff0c;你可能想知道为什么我们已经有了 Twitter、Facebook、Instagram 等&#xff0c;我们还需要 web3 社交。好吧&#xff0c;这一切都取决于谁拥有权力。 在 web2 中&#xff0c;权力掌握在寻求收入最…...

当资深程序员深夜去“打劫”会发生什么?——打家劫舍详解

文章目录一、前言二、概述三、打家劫舍第一晚四、打家劫舍第二晚五、打家劫舍第三晚......一、前言 大家好久不见&#xff0c;正如标题所示&#xff0c;今天我不打算聊一些枯燥的算法理论&#xff0c;我们来聊一聊程序员有多厉害&#xff01; 注意&#xff01;&#xff01;&am…...

linux 线程

文章目录1、线程的概念1.1、进程 vs 线程1.2、线程的种类2、线程的控制2.1、线程的创建2.2、线程的退出2.3、线程的取消2.4、线程的等待2.5、线程的分离2.5、线程清理函数线程清理函数响应的时机线程清理函数不响应的时机3、线程的同步和互斥3.1、锁机制3.1.1、锁的类型3.1.2、…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...