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

面向通感一体化的非均匀感知信号设计

文章目录

    • 1 非均匀信号设计的背景分析
      • 1.1 基于OFDM波形的感知信号
      • 1.2 非均匀信号设计的必要性和可行性
      • 1.2 非均匀信号设计的必要性和可行性
    • 3 通感一体化系统中的非均匀信号设计方法
      • 3.1 非均匀信号的设计流程
        • (1)均匀感知信号设计
        • (2)非均匀采样
      • 3.2 时频资源的链路自适应方法
    • 4 非均匀感知信号的样机测试验证
        • (1)均匀信号设计
        • (2)基于谱分析的非均匀信号设计

1 非均匀信号设计的背景分析

在通感一体化系统中,一种典型的感知信号处理是,首先通过复用通信参考信号处理的信道估计及其前序步骤得到感知信道信息,然后通过二维快速傅里叶变换(2D-FFT, 2-dimensional Fast Fourier Transform)将感知信道信息从时间-频率域变换到时延 - 多普勒域 [13],以进行后续的感知信号处理。时延 - 多普勒谱的性能是衡量感知信号设计的重要指标。

1.1 基于OFDM波形的感知信号

在感知应用中,进行一次感知信号处理所对应的感知信号的时间长度为相干处理时长 (CPI, Coherent Processing Interval) [14]。设在一个CPI的时间跨度内,包含 M t M_t Mt个OFDM符号,并且每个OFDM符号包含 N t N_t Nt个子载波,则发送的时域信号可以表示为[15]:

x ( t ) = ∑ m = 0 M t − 1 ∑ n = 0 N t − 1 X ( m , n ) e j 2 π n t Δ f t u ( t − m T ) (1) x(t) = \sum_{m=0}^{M_t-1} \sum_{n=0}^{N_t-1} X(m,n) e^{j 2 \pi n_t \Delta f t} u(t - mT) \tag{1} x(t)=m=0Mt1n=0Nt1X(m,n)ej2πntΔftu(tmT)(1)

其中, Δ f \Delta f Δf表示子载波间隔, u ( t ) u(t) u(t)表示脉冲成型函数, T T T表示一个OFDM符号的持续时长(包括循环前缀 (CP, Cyclic Prefix)), X ( m , n ) X(m,n) X(m,n)为第 m m m个OFDM符号中第 n n n个子载波上的调制符号。需要说明的是,这里的 M t M_t Mt个OFDM符号包括了一个CPI时间范围内的感知信号和通信信号所占用的全部OFDM符号; N t N_t Nt子载波包括信号和感知信号所占用的全部子载波。因此, N t N_t Nt也是发送信号从频域转换到时域的逆快速傅里叶变换 (IFFT, Inverse Fast Fourier Transform) 的点数。

设从感知信号的发射机到接收机之间存在 K K K个路径,每个路段的延迟和多普勒频分别为 τ k \tau_k τk ν k \nu_k νk,则经过 K K K个路段的反射后,接收机的接收信号为:

y ( t ) = ∑ k = 0 K − 1 ρ k x ( t − τ k ) e j 2 π υ k t + n ( t ) (2) y\begin{pmatrix}t\end{pmatrix}=\sum_{k=0}^{K-1}\sqrt{\rho_k}x\begin{pmatrix}t-\tau_k\end{pmatrix}\mathrm{e}^{\mathrm{j}2\pi\upsilon_kt}+n\begin{pmatrix}t\end{pmatrix}\tag{2} y(t)=k=0K1ρk x(tτk)ej2πυkt+n(t)(2)

其中, ρ k \rho_k ρk表示第 k k k个路段的功率衰减系数, n ( t ) n(t) n(t)为方差为 σ n 2 \sigma_n^2 σn2的高斯白噪声。

接收机以采样率 N A Δ f N_A \Delta f NAΔf 进行时域信号采样,然后去除CP,并通过快速傅里叶变换 (FFT, Fast Fourier Transform) 将时域信号转换到频域,可以表示为:

Y ( m t , n t ) = ∑ k = 0 K − 1 ρ k X ( m t , n t ) e − j 2 π n t Δ f τ k e j 2 π m t T ν k + Ω ( m t , n t ) (3) Y(m_t,n_t) = \sum_{k=0}^{K-1} \sqrt{\rho_k} X(m_t,n_t) e^{-j 2 \pi n_t \Delta f \tau_k} e^{j 2 \pi m_t T \nu_k} + \Omega(m_t,n_t) \tag{3} Y(mt,nt)=k=0K1ρk X(mt,nt)ej2πntΔfτkej2πmtTνk+Ω(mt,nt)(3)

其中, Ω ( m t , n t ) \Omega(m_t,n_t) Ω(mt,nt)表示频域上的高斯白噪声。

考虑感知信号占用的子载波和OFDM符号均均匀地分布在上述的 N t N_t Nt 子载波和 M t M_t Mt 个OFDM符号中,且感知信号占用的子载波引索间隔为 δ f \delta_f δf,感知信号占用的OFDM符号索引间隔为 δ t \delta_t δt。不失一般性,考虑感知信号占用的子载波从 n = 0 n=0 n=0开始,感知信号占用的OFDM符号从 m = 0 m=0 m=0开始。另外,记感知信号占用的子载波数和OFDM符号数分别为 N s N_s Ns M s M_s Ms。感知信号的频率资源图如图1所示:

在这里插入图片描述

这里图片中 δ f \delta_f δf δ t \delta_t δt 错误成了 η f \eta_f ηf η t \eta_t ηt

1.2 非均匀信号设计的必要性和可行性

由于感知信号的频域位置和调制序列是已知的,可以通过信道道估计消除调制序列的影响,获得感知信道信息,表示为:

H ( m t , n t ) = Y ( m t , n t ) X ( m t , n t ) = ∑ k = 0 K − 1 ρ k e − j 2 π n t Δ f τ k e j 2 π m t T υ k , ( m t , n t ) ∈ S (4) \begin{aligned}H\begin{pmatrix}m_t,n_t\end{pmatrix}&=\frac{Y\left(m_t,n_t\right)}{X\left(m_t,n_t\right)}\\&=\sum_{k=0}^{K-1}\sqrt{\rho_k}\mathrm{e}^{-\mathrm{j}2\pi n_t\Delta f\tau_k}\mathrm{e}^{\mathrm{j}2\pi m_tT\upsilon_k},\left(m_t,n_t\right)\in\mathbb{S}\end{aligned} \tag{4} H(mt,nt)=X(mt,nt)Y(mt,nt)=k=0K1ρk ej2πntΔfτkej2πmtTυk,(mt,nt)S(4)

其中,集合 S \mathbb{S} S 表示感知信号占用的资源元素 (RE, Resource Element) 集合。对式(4)的感知信号执行2D-FFT运算可以得到时延-多普勒谱。

对于OFDM波形,2D-FFT运算包括:沿频率维执行IFFT将各个OFDM符号上的感知信道信息从频域转换到时域,然后通过FFT将各个时域单元上的数据从时域转换到多普勒域,最终得到的时延-多普勒图可以表示为:

R ( p , q ) = 1 N s M s ∑ k = 0 K − 1 ∑ n s = 0 N s − 1 ∑ m s = 0 M s − 1 ρ k e j 2 π n s ( p N s − δ f Δ f τ k ) e j 2 π m s ( δ t T υ k − q M s ) (5) \mathbf{R}\left(p,q\right)=\frac{1}{N_{s}M_{s}}\sum_{k=0}^{K-1}\sum_{n_{s}=0}^{N_{s}-1}\sum_{m_{s}=0}^{M_{s}-1}\sqrt{\rho_{k}}\mathrm{e}^{\mathrm{j}2\pi n_{s}\left(\frac{p}{N_{s}}-\delta_{f}\Delta f\tau_{k}\right)}\mathrm{e}^{\mathrm{j}2\pi m_{s}\left(\delta_{t}T\upsilon_{k}-\frac{q}{M_{s}}\right)} \tag{5} R(p,q)=NsMs1k=0K1ns=0Ns1ms=0Ms1ρk ej2πns(NspδfΔfτk)ej2πms(δtTυkMsq)(5)

1.2 非均匀信号设计的必要性和可行性

均匀感知信号的时频资源配置参数包括:感知信号占用的子载波数 N t N_t Nt、OFDM符号数 M t M_t Mt、子载波索引间隔 δ f \delta_f δf和OFDM符号索引间隔 δ t \delta_t δt。均匀感知信号的信号配置和应应用信号处理算法简单,并且具有较好的感知性能。然而,在实际的一体化场景下,均匀感知信号具有如下的特点:

  1. 资源开销较大:为了满足时延分辨率和多普勒频移辨识率的需求,感知信号通道需要在频域上占较大的带宽,在时域上占较大的时长。例如,为了满足对行人和车辆等目标的测量,感知信号带宽需要在百 MHz 量级以上,CPI 通常需要在十 ms 至百 ms 量级。同时,为了满足最大不模糊时延和最大不模糊多普勒的要求,感知信号所占的子载波搜索间隔 δ f \delta_f δf 和 OFDM 符号搜索间隔 δ t \delta_t δt 需要小于一定的数值,即使得感知信号在频域和时域满足奈奎斯特条件。因此,感知信号所占用的子载波数和 OFDM 符号数较多。进一步地,在终端的场景下,感知信号所占用的 RE 数随终端数线性增加,如图 2(a) 所示,32 端口的信道状态信息参考信号(CSI-RS,Channel State Information Reference Signal)在一个时隙,一个资源块(RB,Resource Block)中占了较多的 RE,如果在时域上每个时隙,频域上的每个 RB 重复这样的资源占用,那么其资源开销非常大。

在这里插入图片描述

  1. 信号配置灵活性差:为了实现高分辨率的感知,感知信号的时频资源的跨频段大,并且均匀采样的感知信号需要占用周期性的信号资源。在通常一体化的场景下,同时存在多种多样的通信业务(包括低时延高可靠业务和感知业务),对应地存在各种信号和信道的专用,很难保证此时特定周期重复的信号资源都能配置给感知信号。另一方面,在通常一体化的场景下,如果能较有效分配现有频谱(NR,New Radio)的参考信号,将会大大减少感知的资源开销,加速感知能力的落地。然而,现在在所有的各参考信号根据通信业务的需求设计,在较大的时隙跨上依然会通常是非均匀分布的,这就无法实现均匀采样的感知信号配置,如图 2(b) 所示。

在感知应用中,感知目标在时延和多普勒频移通常是稀疏的,那么可以在低于奈奎斯特采样率的采样点重建信号。也就是说,可以采用非均匀信号执行感知业务,从而克服上述均匀感知信号的挑战。

从信号处理的角度说,频域或时域的均匀信号设计,对应着时频资源均匀的周频特性移动;当均匀信号是奈奎斯特采样时,周期性搬移的时延或多普勒搬移不会发生混叠。而对于频域或时域的非均匀信号设计,则对应时延或多普勒频移的非周期性搬移,会发生一定程度上的时延或多普勒频移的混叠。时延或多普勒频移的混叠对于感知性能的影响可以通过式(5)的时延-多普勒频率考察。

对于均匀信号,式(5)中的 n s n_s ns m s m_s ms 的取值是连续的非负整数,对于给定的子载波查询间隔 δ f \delta_f δf 和 OFDM 符号查询间隔 δ t \delta_t δt,能够根据式(5)直接导出感知的最大不模糊时延和最大不模糊多普勒频移分析 [16]。

τ max = 1 / δ f Δ f and υ max ⁡ = 1 / δ t T \tau_{\text{max}} = 1/\delta_f \Delta f \quad \text{and} \quad \upsilon_{\max}=1/\delta_{t}T τmax=1/δfΔfandυmax=1/δtT

在均匀信号的基础上,通过抽取的方式将式(5)中的 n s n_s ns m s m_s ms 的取值设置成不连续的非负整数,则为非均匀信号。考虑式(5)中的时延-多普勒频移的峰值对应的时延或多普勒值与 n s n_s ns m s m_s ms 的连续性无关,因此,通过这种方法构造出的非均匀信号与对应的均匀信号具有相同的最大不模糊时延和最大不模糊多普勒。需要注意的是,这里是指非均匀信号占用的子载波或 OFDM 符号是由对均匀信号占用的子载波或 OFDM 符号进行非周期性抽取得到的,而如果是有显著的周期性抽取则上述子载波查询间隔 δ f \delta_f δf 或 OFDM 符号查询间隔 δ t \delta_t δt 的取值发生变化,则该结论不再成立。

在这里插入图片描述

图 3 显示了在时间维度采用非均匀信号设计的一个示例,非均匀信号与对应均匀信号的多普勒频移的对比,其中感知目标的多普勒为 0。在该示例中,均匀信号包含周期分布的 M s = 80 M_s = 80 Ms=80 个 OFDM 符号,非均匀信号则从中随机抽取的 40 个 OFDM 符号。除去由于更少的 OFDM 符号引起峰值的降低以外,非均匀信号的多普勒中还存在在于抑制信号,在相关文献中被称为伪影。

3 通感一体化系统中的非均匀信号设计方法

在通感一体化系统中,需要根据感知需求进行感知信号的时频资源分配。另一方面,在感知业务的实际执行过程中,感知需求会根据感知结果发生变化,这意味着需要对感知信号的时频资源进行链路自适应调整。

3.1 非均匀信号的设计流程

为了使得非均匀感知信号能够较好满足感知需求中分辨率能力最大不模糊量程范围的要求,本文提出非均匀感知信号的两步设计方法:首先进行均匀感知信号的设计,然后基于均匀感知信号进行非均匀采样得到非均匀感知信号。

(1)均匀感知信号设计

给定感知需求,采用均匀信号设计,感知信号子载波查询间隔 δ f \delta_f δf,感知信号占用的子载波数 N s N_s Ns,感知信号的 OFDM 符号查询间隔 δ t \delta_t δt,感知信号占用的 OFDM 符号数 M s M_s Ms,需要满足:
δ f ≤ ⌊ 1 τ max Δ f ⌋ (14) \delta_f \leq\left\lfloor \frac{1}{\tau_{\text{max}} \Delta f} \right\rfloor \tag{14} δfτmaxΔf1(14)

N s δ f ≥ ⌈ 1 Δ τ Δ f ⌉ (15) N_s \delta_f \geq \left\lceil \frac{1}{\Delta \tau \Delta f} \right\rceil \tag{15} NsδfΔτΔf1(15)

δ t ≤ ⌊ 1 υ max ⁡ T ⌋ (16) \delta_t\leq\left\lfloor\frac{1}{\upsilon_{\max}T}\right\rfloor \tag{16} δtυmaxT1(16)

M s δ t ≥ ⌈ 1 Δ ν T ⌉ (17) M_s \delta_t \geq \left\lceil \frac{1}{\Delta \nu T} \right\rceil \tag{17} MsδtΔνT1(17)

其中, τ max \tau_{\text{max}} τmax Δ τ \Delta \tau Δτ 分别表示感知需求中要求的最大不模糊时延和时延分辨率, v max v_{\text{max}} vmax Δ ν \Delta \nu Δν 分别表示感知需求中要求的最大不模糊多普勒和多普勒分辨率。

如果式(14)~(17)中的不等式取等号,则能够得到占用频资源最少的均匀信号设计。在实际信号配置中,上述参数数还会受到协议允许的参数数值的限制。以 NR 协议中的 CSI-RS 进行感知信号的配置为例,则感知信号子载波间隔 δ f \delta_f δf(用协议中参数可表示为 12/density)只能取值为 4、12 或 24 [31]。

(2)非均匀采样

根据前文所述的均匀信号的设计方法,从均匀信号占用的时频资源中进行非均匀采样,选择出一部分子载波或 OFDM 符号以承载感知信号,实现非均匀感知信号设计,如图 10 所示。与均匀信号相比,非均匀信号能够减少小感知信号占用的信号资源数,并能够避免其他部分子载波或 OFDM 符号以避免与其他信号的冲突。

在这里插入图片描述

3.2 时频资源的链路自适应方法

时频资源的链路自适应方法是根据实时的感知性能需求对感知信号占用的时频资源进行调整,减少感知信号占用的时频资源数值下降开销,或是增加大感知信号占用的时频资源数以提高感知性能。非均匀感知信号采用 3.1 节的两步设计方法,为时频资源的链路自适应提供了一个额外的自由度。

非均匀感知信号时频资源的链路自适应方法包括:均匀感知信号的链路自适应调节,非均匀采样的链路自适应调节。其中,均匀感知信号的链路自适应调节通过上述参数( δ \delta δ, N s N_s Ns, δ t \delta_t δt, M s M_s Ms)进行调节 [32],满足对感知目标的分辨率和最大不模糊量程范围的需求,以及满足感知精度的需求;感知精度可以通过前文所述的感知 SINR 来刻画。非均匀采样的链路自适应调节通过非均匀采样序列的调节,能够满足对感知目标量程和感知精度的需求,包括:

  1. 满足感知目标数目的需求:当环境中存在的感知目标(包括非感知目标的反射路径)的数目较小时,非均匀采样数 M M M 的值可以适当减少,从而能够节约更多的时频资源;反之,当感知目标的数目增大时,应相应增大 M M M 的值,以保证非均匀感知的自由度。

  2. 满足感知精度的需求:当感知精度性能较好时,在满足自由度的前提下,可适当减少非均匀采样数 M M M 的值,从而能够节约信号资源;而当感知精度性能较差时,应增大非均匀采样数 M M M 的值,以提升感知性能;在极端情况下,应将非均匀采样数 M M M 的值调整为均匀采样数 N N N,即不采用均匀信号设计。

结合感知目标数量和感知精度的需求,非均匀采样数 M M M 的值的取值情况如图 11 所示。在感知精度性能较好且感知目标数较小, M M M 可以取较小值;在感知精度性能较差且感知目标数较大时, M M M 必须取较大值。

这部分原论文有着明显的校对错误,M N 打错了

4 非均匀感知信号的样机测试验证

为了更直观地展示在时频域采用非均匀感知信号设计的可行性和性能,本文针对第 2 节中介绍的三种非均匀信号设计方法,采用 vivo 自研的通感一体化样机进行测试,并与均匀信号设计进行对比。在样机测试中,以行人作为感知目标。样机的硬件配置可参见文献 [33],作为非均匀信号设计基础的均匀信号的参数如表 1 所示。

表中的参数,感知信号带宽为 384 MHz,感知子载波之间的间隔为 4.8 MHz,对应的时延分辨率为 2.6 ns,最大不模糊时延范围为 208.3 ns;感知信号 CPI 为 200 ms,感知 OFDM 符号之间的间隔为 2.5 ms,对应的多普勒分辨率为 5 Hz,最大不模糊多普勒频移范围为 400 Hz。上述参数给出的感知性能能够满足室内行人感知的需求。

在这里插入图片描述

由于环境中存在大量的静态物体(如墙壁、地面)的反射,为了对运动感知目标进行检测,采用杂波对消方法消除静态物体反射回波的影响,具体方法参见文献 [33]。

(1)均匀信号设计

作为对照的基线,图 12(a) 显示了在采用均匀信号配置时,对行人进行感知所得到的时延-多普勒谱,在(30 Hz, 68 ns) 处的谱峰为感知目标对应的时延-多普勒单元,其感知 SINR 约为 38.2 dB。根据恒虚警检测理论中的单元平均方法设置参考窗用以统计噪声加干扰功率[34],在时延维和多普勒维的前参考窗和后参考窗长度均设为 6、保护单元数设置为 1,得到感知 SINR 约为 41.2 dB。很明显时延-多普勒谱在多普勒维是稀疏的。进一步地,图 12(b) 显示了在时间维 FFT 之前的时延,感知信号在时延维也具有稀疏性,其稀疏程度低于多普勒维的稀疏程度。因此,在时延维可以采用 M / N M/N M/N 值较小的均匀信号,而在频率维则需要采用 M / N M/N M/N 值稍大的均匀信号。

这段话我没太听懂

在这里插入图片描述

(2)基于谱分析的非均匀信号设计

由于感知信号在时延维的稀疏度低于多普勒维的稀疏程度,这是由于频率集均匀信号中 80 个载波中取得 40 个载波,在时间维从均匀信号的 0 个子载波中取得 23 个载波,再构造出均匀信号。与均匀信号相比,非均匀信号能够节省 85.3%的资源开销,感知目标对应的信号功率降低约 8.4 dB。如 1.1 节所述,为了得到影响功率低的非均匀信号,需要通过序列搜索的方式得到非均匀采样序列,这里在频率维的非均匀采样序列同图 4(a)。

相关文章:

面向通感一体化的非均匀感知信号设计

文章目录 1 非均匀信号设计的背景分析1.1 基于OFDM波形的感知信号1.2 非均匀信号设计的必要性和可行性1.2 非均匀信号设计的必要性和可行性 3 通感一体化系统中的非均匀信号设计方法3.1 非均匀信号的设计流程(1)均匀感知信号设计(2&#xff0…...

React将props传递给一个组件

React 组件通讯:从单向数据流到跨层级交互的深度实践 ——基于 Props 的通讯机制解析与高阶模式探索 一、Props 的本质:不可变数据管道 React 的 props(properties)机制构建了单向数据流的核心范式。每个父组件通过 props 向子…...

头歌实训作业 算法设计与分析-贪心算法(第2关:最优装载问题)

任务描述 有一批集装箱要装上一艘载重量为C的轮船,共有n个集装箱,其中集装箱i的重量为Wi。 最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。 测试说明 输入和输出说明: 第1行为集装箱数目n和载重限…...

HarmonyOS基于ArkTS卡片服务

卡片服务 前言 Form Kit(卡片开发框架)提供了一种在桌面、锁屏等系统入口嵌入显示应用信息的开发框架和API,可以将应用内用户关注的重要信息或常用操作抽取到服务卡片(以下简称“卡片”)上,通过将卡片添加…...

Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解

在现代软件开发中,性能测试是确保应用程序稳定性和响应速度的关键环节。 今天,我们就来深入了解一款国产化功能强大的 Elasticsearch 负载测试工具——INFINI Loadgen。 一、INFINI Loadgen 简介 Github地址:https://github.com/infinilabs/l…...

Python算法详解:动态规划

动态规划(Dynamic Programming,简称 DP)是计算机科学中一种高效解决问题的算法思想。它通过将复杂问题分解为更小的子问题,记录中间结果,避免重复计算,从而提升效率。本文将从动态规划的基础思想出发&#…...

python3+TensorFlow 2.x(二) 回归模型

目录 回归算法 1、线性回归 (Linear Regression) 一元线性回归举例 2、非线性回归 3、回归分类 回归算法 回归算法用于预测连续的数值输出。回归分析的目标是建立一个模型,以便根据输入特征预测目标变量,在使用 TensorFlow 2.x 实现线性回归模型时&…...

lombok 没生效 java: 找不到符号 符号: 方法 setName(java.lang.String)

今天使用lombok 添加了 Data注解 set方法却没起效 解决方法 1 给lombok 添加版本号 再maven刷新下 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version><optional>…...

uiautomator2教程

一、简介 uiautomator2 是一个 Python 库&#xff0c;用于 Android 的 UI 自动化测试&#xff0c;底层基于 Google uiautomator。 二、安装 1、安装adb 2、pip install uiautomator2 3、设备安装 atx - agent&#xff0c;python -m uiautomator2 init 4、安装weditor&…...

旅游风景的代码项目

敦煌莫高窟&#xff1a;用代码打开千年艺术的大门 ——一个零基础也能看懂的神奇项目 前言&#xff1a;当古老艺术遇上现代代码 想象一下&#xff0c;你坐在电脑前&#xff0c;指尖轻轻一点&#xff0c;就能穿越到敦煌莫高窟——看飞天的衣袂飘飘、听千年的驼铃声声。这不是科…...

【后端开发】字节跳动青训营之性能分析工具pprof

性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接&#xff1a; 项目代码链接实验指南pprof使用指南 一、测试程序介绍 package mainimport ("log""net/http"_ "net/http/pprof" // 自…...

【测试】-- 认识测试

1. 软件测试定义 软件测试就是验证软件产品特性&#xff08;功能、性能、界面、易用性等&#xff09;是否满足用户的需求。 2. 测试的岗位 软件测试开发工程师&#xff08;测开&#xff09; 开发&#xff1a;开发测试效率工具&#xff08;自动化、性能测试、覆盖率等&#x…...

浏览器hid 和蓝牙bluetooth技术区别

HID与蓝牙技术区别 引言 在前端开发中&#xff0c;与外部设备的交互越来越重要&#xff0c;尤其是在移动设备和物联网设备日益普及的今天。HID&#xff08;Human Interface Device&#xff09;和蓝牙&#xff08;Bluetooth&#xff09;是两种常用的技术&#xff0c;用于实现设备…...

PCIE模式配置

对于VU系列FPGA&#xff0c;当DMA/Bridge Subsystem for PCI Express IP配置为Bridge模式时&#xff0c;等同于K7系列中的AXI Memory Mapped To PCI Express IP。...

mysql 学习3 SQL语句--整体概述。SQL通用语法;DDL创建数据库,查看数据库,删除数据库,使用数据库;

SQL通用语法 SQL语句分类 DDL data definition language : 用来创建数据库&#xff0c;创建表&#xff0c;创建表中的字段&#xff0c;创建索引。因此成为 数据定义语言 DML data manipulation language 有了数据库和表以及字段后&#xff0c;那么我们就需要给这个表中 添加数…...

Swing使用MVC模型架构

什么是MVC模式? MVC是一组英文的缩写,其全名是Model-View-Controller,也就是“模型-视图-控制器”这三个部分组成。这三个部分任意一个部分发生变化都会引起另外两个发生变化。三者之间的关系示意图如下所示: MVC分为三个部分,所以在MVC模型中将按照此三部分分成三…...

Java定时任务实现方案(二)——ScheduledExecutorService

这篇笔记&#xff0c;我们要来介绍实现Java定时任务的第二个方案&#xff0c;使用ScheduledExecutorService&#xff0c;以及该方案的优点和缺点。 ScheduledExecutorService是Java并发包java.util.concurrent中用于执行定时任务和周期性任务的接口&#xff0c;它拓展了Executo…...

Agent群舞,在亚马逊云科技搭建数字营销多代理(Multi-Agent)(下篇)

在本系列的上篇中&#xff0c;小李哥为大家介绍了如何在亚马逊云科技上给社交数字营销场景创建AI代理的方案&#xff0c;用于社交动态的生成和对文章进行推广曝光。在本篇中小李哥将继续本系列的介绍&#xff0c;为大家介绍如何创建主代理&#xff0c;将多个子代理挂载到主代理…...

Leecode刷题C语言之收集所有金币可获得的最大积分

执行结果:通过 执行用时和内存消耗如下&#xff1a; int dfs(int node, int parent, int f, int* coins, int k, int **children, int *childCount, int **memo) {if (memo[node][f] ! -1) {return memo[node][f];}int res0 (coins[node] >> f) - k;int res1 coins[no…...

STM32_SD卡的SDIO通信_基础读写

本篇将使用CubeMXKeil, 创建一个SD卡读写的工程。 目录 一、SD卡要点速读 二、SDIO要点速读 三、SD卡座接线原理图 四、CubeMX新建工程 五、CubeMX 生成 SD卡的SDIO通信部分 六、Keil 编辑工程代码 七、实验效果 实现效果&#xff0c;如下图&#xff1a; 一、SD卡 速读…...

新手理解:Android 中 Handler 和 Thread.sleep 的区别及应用场景

新手理解&#xff1a;Android 中 Handler 和 Thread.sleep 的区别及应用场景 Handler 是啥&#xff1f;Handler 的几个核心功能&#xff1a; Thread.sleep 是啥&#xff1f;Thread.sleep 的核心特点&#xff1a; 两者的区别它们的应用场景1. Handler 的应用场景2. Thread.sleep…...

C语言-----扫雷游戏

扫雷游戏的功能说明 &#xff1a; • 使⽤控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认随机布置10个雷 • 可以排查雷&#xff1a; ◦ 如果位置不是雷&#xff0c;就显⽰周围有⼏个雷 ◦ 如果位置是雷&#xff0c;就…...

监控与调试:性能优化的利器 — ShardingSphere

在分布式数据库系统中&#xff0c;监控和调试是确保系统高效运行的关键。ShardingSphere 提供了多种监控和调试工具&#xff0c;帮助开发者实时跟踪和优化性能&#xff0c;识别瓶颈&#xff0c;进行故障排查&#xff0c;从而提升系统的稳定性和响应速度。本文将介绍如何使用 Sh…...

Kubernetes相关知识入门详解

一、Pod的滚动升级 1.服务升级的一般思路&#xff1a;停止与该服务相关的所有服务pod&#xff0c;重新拉去更新后的镜像并启动。这种方法存在一个比较现实的问题是逐步升级导致较长时间的服务不可用。 2.Kubernetes滚动升级的思路&#xff1a;通过滚动升级的命令创建新的rc&…...

多层 RNN原理以及实现

数学原理 多层 RNN 的核心思想是堆叠多个 RNN 层&#xff0c;每一层的输出作为下一层的输入&#xff0c;从而逐层提取更高层次的抽象特征。 1. 单层 RNN 的数学表示 首先&#xff0c;单层 RNN 的计算过程如下。对于一个时间步 t t t&#xff0c;单层 RNN 的隐藏状态 h t h_t…...

Unity阿里云OpenAPI 获取 Token的C#【记录】

获取Token using UnityEngine; using System; using System.Text; using System.Linq; using Newtonsoft.Json.Linq; using System.Security.Cryptography; using UnityEngine.Networking; using System.Collections.Generic; using System.Globalization; using Cysharp.Thr…...

java+vue项目部署记录

目录 前言 一、java和vue 二、部署记录 1.获取代码 2.运行前端 3.运行后端 三、其他 1.nvm 总结 前言 近期工作需要部署一套javavue前后分离的项目&#xff0c;之前都略有接触&#xff0c;但属于不及皮毛的程度&#xff0c;好在对其他开发语言、html js这些还算熟&am…...

PID 控制算法(二):C 语言实现与应用

在本文中&#xff0c;我们将用 C 语言实现一个简单的 PID 控制器&#xff0c;并通过一个示例来演示如何使用 PID 控制算法来调整系统的状态&#xff08;如温度、速度等&#xff09;。同时&#xff0c;我们也会解释每个控制参数如何影响系统的表现。 什么是 PID 控制器&#xf…...

深入MapReduce——计算模型设计

引入 通过引入篇&#xff0c;我们可以总结&#xff0c;MapReduce针对海量数据计算核心痛点的解法如下&#xff1a; 统一编程模型&#xff0c;降低用户使用门槛分而治之&#xff0c;利用了并行处理提高计算效率移动计算&#xff0c;减少硬件瓶颈的限制 优秀的设计&#xff0c…...

在Spring Boot中使用SeeEmitter类实现EventStream流式编程将实时事件推送至客户端

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…...

Qt实践:一个简单的丝滑侧滑栏实现

Qt实践&#xff1a;一个简单的丝滑侧滑栏实现 笔者前段时间突然看到了侧滑栏&#xff0c;觉得这个抽屉式的侧滑栏非常的有趣&#xff0c;打算这里首先尝试实现一个简单的丝滑侧滑栏。 首先是上效果图 &#xff08;C&#xff0c;GIF帧率砍到毛都不剩了&#xff09; QProperty…...

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…...

OpenCV文字绘制支持中文显示

OpenCV版本&#xff1a;4.4 IDE&#xff1a;VS2019 功能描述 OpenCV绘制文本的函数putText()不支持中文的显示&#xff0c;网上很多方法推荐的都是使用FreeType来支持&#xff0c;FreeType是什么呢&#xff1f;FreeType的官网上有介绍 FreeType官网 https://www.freetype.or…...

jenkins-k8s pod方式动态生成slave节点

一. 简述&#xff1a; 使用 Jenkins 和 Kubernetes (k8s) 动态生成 Slave 节点是一种高效且灵活的方式来管理 CI/CD 流水线。通过这种方式&#xff0c;Jenkins 可以根据需要在 Kubernetes 集群中创建和销毁 Pod 来执行任务&#xff0c;从而充分利用集群资源并实现更好的隔离性…...

消息队列篇--基础篇(消息队列特点,应用场景、点对点和发布订阅工作模式,RabbmitMQ和Kafka代码示例等)

1、消息队列的介绍 消息&#xff08;Message&#xff09;是指在应用之间传送的数据&#xff0c;消息可以非常简单&#xff0c;比如只包含文本字符串&#xff0c;也可以更复杂&#xff0c;可能包含嵌入对象。 消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09…...

Jetpack架构组件学习——使用Glance实现桌面小组件

基本使用 1.添加依赖 添加Glance依赖: // For AppWidgets supportimplementation "androidx.glance:glance-appwidget:1.1.0"// For interop APIs with Material 3implementation "androidx.glance:glance-material3:1.1.0"// For interop APIs with Mater…...

go读取excel游戏配置

1.背景 游戏服务器&#xff0c;配置数据一般采用csv/excel来作为载体&#xff0c;这种方式&#xff0c;策划同学配置方便&#xff0c;服务器解析也方便。在jforgame框架里&#xff0c;我们使用以下的excel配置格式。 然后可以非常方便的进行数据检索&#xff0c;例如&#xff…...

Linux系统下速通stm32的clion开发环境配置

陆陆续续搞这个已经很久了。 因为自己新电脑是linux系统无法使用keil&#xff0c;一开始想使用vscode里的eide但感觉不太好用&#xff1b;后面想直接使用cudeide但又不想妥协&#xff0c;想趁着这个机会把linux上的其他单片机开发配置也搞明白&#xff1b;而且非常想搞懂cmake…...

快慢指针及原理证明(swift实现)

目录 链表快慢指针一、快慢指针基本介绍二、快慢指针之找特殊节点1.删除链表的倒数第k个结点题目描述解题思路 2.链表的中间节点题目描述解题思路 三、快慢指针之环形问题1.判断环形链表题目描述解题思路 2.判断环形链表并返回入环节点题目描述解题思路 3.变种——判断快乐数题…...

web前端3--css

注意&#xff08;本文一切代码一律是在vscode中书写&#xff09; 1、书写位置 1、行内样式 //<标签名 style"样式声明"> <p style"color: red;">666</p> 2、内嵌样式 1、style标签 里面写css代码 css与html之间分离 2、css属性:值…...

一文大白话讲清楚webpack基本使用——5——babel的配置和使用

文章目录 一文大白话讲清楚webpack基本使用——5——babel的配置和使用1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. babel-loader的配置和使用2.1 针对ES6的babel-loader2.2 针对typescript的babel-loader2.3 babel配置文件 一文大白话讲清楚webpack基…...

Python自动化运维:一键掌控服务器的高效之道

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在互联网和云计算高速发展的今天,服务器数量的指数增长使得手动运维和管理变得异常繁琐。Python凭借其强大的可读性和丰富的生态系统,成为…...

基于quartz,刷新定时器的cron表达式

文章目录 前言基于quartz&#xff0c;刷新定时器的cron表达式1. 先看一下测试效果2. 实现代码 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&…...

HTML常用属性

HTML标签的常见属性包括许多不同的功能&#xff0c;可以为元素提供附加信息或控制元素的行为。以下是一些常见的属性及其解释&#xff1a; 1. src 描述&#xff1a;src&#xff08;source&#xff09;属性指定一个资源的路径&#xff0c;通常用于图像、音频、视频等标签。常见…...

在 Babylon.js 中使用 Gizmo:交互式 3D 操作工具

在 3D 应用程序中&#xff0c;交互式操作对象&#xff08;如平移、旋转、缩放&#xff09;是一个常见的需求。Babylon.js 提供了一个强大的工具——Gizmo&#xff0c;用于在 3D 场景中实现这些功能。本文将介绍如何在 Babylon.js 中使用 Gizmo&#xff0c;并展示如何通过代码实…...

蓝桥杯练习日常|递归-进制转换

蓝桥云课760数的计算 一、递归 题目&#xff1a; 我的解题代码&#xff1a; #include <iostream> using namespace std; int sum0; int main() {// 请在此输入您的代码int n;cin>>n;int fun(int n);fun(n); cout<<sum<<\n;return 0; } // void fu…...

LabVIEW滤波器选择与参数设置

在信号处理应用中&#xff0c;滤波器是去除噪声、提取目标信号的重要工具。LabVIEW 提供多种类型的滤波器&#xff08;如低通、高通、带通、带阻&#xff09;&#xff0c;用户需要根据采样频率、信号特性和应用需求合理选择滤波器类型及参数设置。本文以 采样率 100kHz&#xf…...

【c语言日寄】Vs调试——新手向

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

C#中的Timers.Timer使用用法及常见报错

System.Timers.Timer 是一个基于服务器的计时器&#xff0c;它可以在应用程序中定期触发事件。这个计时器特别适合用于多线程环境&#xff0c;并且不应该与用户界面(UI)直接交互。在 ASP.NET 中&#xff0c;通常使用 System.Timers.Timer 来处理周期性的任务。 主要使用步骤&am…...

chrome小插件:长图片等分切割

前置条件&#xff1a; 安装有chrome谷歌浏览器的电脑 使用步骤&#xff1a; 1.打开chrome扩展插件 2.点击管理扩展程序 3.加载已解压的扩展程序 4.选择对应文件夹 5.成功后会出现一个扩展小程序 6.点击对应小程序 7.选择图片进行切割&#xff0c;切割完成后会自动保存 代码…...