2.4 卷积1

2.4 卷积1

2.4 卷积

在了解了系统及其脉冲响应之后,人们可能会想知道是否有一种方法可以通过任何给定的输入信号(不仅仅是单位脉冲)确定系统的输出信号。卷积就是这个问题的答案,前提是系统是线性且时不变的(LTI)。

Tips:大概是卷积的意义吧,由输入确定系统的输出。

2.4.1 常规卷积

我们从实际信号和具有实际脉冲响应的LTI系统开始。

假设我们有一个任意信号 s [ n ] s[n] s[n]。然后, s [ n ] s[n] s[n] 可以通过以下逻辑分解为平移单位脉冲的缩放和。将 s [ n ] s[n] s[n] 与一个单位脉冲相乘,脉冲被平移了 m m m 个样本,即 δ [ n − m ] \delta[n - m] δ[nm]。由于 δ [ n − m ] \delta[n - m] δ[nm] 在除了 n = m n = m n=m 之外的所有地方都等于 0,这将使得所有的 s [ n ] s[n] s[n] 值在 n ≠ m n \neq m n=m 时乘以 0,而在 n = m n = m n=m 时乘以 1。因此,结果序列将在 n = m n = m n=m 处具有一个脉冲,其值等于 s [ m ] s[m] s[m]。这一过程在图2.6中得到了清晰的说明。

image

图2.6:将信号 s [ n ] s[n] s[n] 与一个偏移 m m m 的单位冲激信号相乘

可以数学地表示为:

$$s[n] \delta[n - m] = s[m] \delta[n - m]$$

用另一个偏移 m ′ m' m 重复相同的过程,得到:

$$s[n] \delta[n - m'] = s[m'] \delta[n - m']$$

我们说,此时提取出值 s [ m ′ ] s[m'] s[m]。因此,如果这个乘法过程在所有可能的延迟 − ∞ < m < ∞ -\infty < m < \infty <m< 上重复,并且所有生成的信号相加在一起,结果将是序列 s [ n ] s[n] s[n] 本身。

$$s[n] = \cdots + s[-2]\delta[n+2] + s[-1]\delta[n+1] + s[0]\delta[n] + s[1]\delta[n-1] + s[2]\delta[n-2] + \cdots$$$$= \sum_{m=-\infty}^{\infty} s[m] \delta[n-m] \tag{2.3}$$

总结来说,上述方程表明,信号 s [ n ] s[n] s[n] 可以表示为加权单位冲激信号的和,其中每个单位冲激信号 δ [ n − m ] \delta[n - m] δ[nm] 的幅度为 s [ m ] s[m] s[m]。这样的和的一个例子如图2.7所示。

image

图2.7:将信号 s [ n ] s[n] s[n] 分解为缩放和偏移的冲激信号

LTI系统对缩放单位冲激的响应

现在考虑当这样的信号作为输入给具有冲激响应 h [ n ] h[n] h[n] 的LTI系统时会发生什么。

  • 冲激响应 —— LTI系统对单位冲激 δ [ n ] \delta[n] δ[n] 的响应是 h [ n ] h[n] h[n]
  • 由于时不变性,系统对一个移位的单位冲激 δ [ n − m ] \delta[n - m] δ[nm] 的响应是 h [ n − m ] h[n - m] h[nm]
  • 由于线性特性的缩放性质,系统对一个缩放并移位的单位冲激 s [ m ] ⋅ δ [ n − m ] s[m] \cdot \delta[n - m] s[m]δ[nm] 的响应是 s [ m ] ⋅ h [ n − m ] s[m] \cdot h[n - m] s[m]h[nm]
  • 由于线性特性的加法性质,系统对多个移位单位冲激的响应是各自输出的总和。

输入 —— 输出 对应关系:

输入输出
δ [ n ] \delta[n] δ[n] h [ n ] h[n] h[n]
δ [ n − m ] \delta[n - m] δ[nm] h [ n − m ] h[n - m] h[nm]
α 1 ⋅ δ [ n − m ] \alpha_1 \cdot \delta[n - m] α1δ[nm] α 1 ⋅ h [ n − m ] \alpha_1 \cdot h[n - m] α1h[nm]
α 2 ⋅ δ [ n − m ′ ] \alpha_2 \cdot \delta[n - m'] α2δ[nm] α 2 ⋅ h [ n − m ′ ] \alpha_2 \cdot h[n - m'] α2h[nm]
α 1 ⋅ δ [ n − m ] + α 2 ⋅ δ [ n − m ′ ] \alpha_1 \cdot \delta[n - m] + \alpha_2 \cdot \delta[n - m'] α1δ[nm]+α2δ[nm] α 1 ⋅ h [ n − m ] + α 2 ⋅ h [ n − m ′ ] \alpha_1 \cdot h[n - m] + \alpha_2 \cdot h[n - m'] α1h[nm]+α2h[nm]

这导致了一个输入-输出序列为:

$$\begin{aligned} &+ ....... & \rightarrow & \quad ....... \\ &+ \quad s[-2] \cdot \delta[n + 2] & \rightarrow & \quad s[-2] \cdot h[n + 2] \\ &+ \quad s[-1] \cdot \delta[n + 1] & \rightarrow & \quad s[-1] \cdot h[n + 1] \\ &+ \quad s[0] \cdot \delta[n] & \rightarrow & \quad s[0] \cdot h[n] \\ &+ \quad s[1] \cdot \delta[n - 1] & \rightarrow & \quad s[1] \cdot h[n - 1] \\ &+ \quad s[2] \cdot \delta[n - 2] & \rightarrow & \quad s[2] \cdot h[n - 2] \\ &+ \quad ....... & \rightarrow & \quad ....... \\ \end{aligned}$$
  • 最终: s [ n ] s[n] s[n] ∑ m = − ∞ ∞ s [ m ] ⋅ h [ n − m ] \sum_{m=-\infty}^{\infty} s[m] \cdot h[n - m] m=s[m]h[nm]

在上面的过程中,我们推导出了著名的卷积方程,用来描述当输入信号 s [ n ] s[n] s[n] 经过具有冲激响应 h [ n ] h[n] h[n] 的LTI系统时,输出 r [ n ] r[n] r[n] 的表达式:

$$r[n] = \sum_{m=-\infty}^{\infty} s[m] \cdot h[n - m] \quad \tag{2.4}$$

其中上面的和式是从 − ∞ -\infty + ∞ +\infty + 对每个 n n n 计算的。在本文中,卷积操作表示为 ∗ * ,即:

$$r[n] = s[n] * h[n] \quad \tag{2.5}$$

注意,卷积与相关不同的是:

$$s[n] * h[n] = h[n] * s[n]= \sum_{m=-\infty}^{\infty} h[m]s[n-m] \tag {2.6}$$

这可以通过在公式 (2.4) 中代入 p = n − m p = n - m p=nm 来验证,得到 m = n − p m = n - p m=np,因此 ∑ p = − ∞ ∞ s [ n − p ] h [ p ] \sum_{p=-\infty}^{\infty} s[n - p] h[p] p=s[np]h[p]

注释 2.3 卷积符号

请记住,虽然卷积和信号的共轭都用符号 ∗ * 表示,但在上下文中总是能看到它们的区别。当用于卷积时,它作为两个信号之间的运算符出现,例如 s [ n ] ∗ h [ n ] s[n] * h[n] s[n]h[n]。另一方面,当用于共轭时,它出现在信号的上标处,例如 h ∗ [ n ] h^*[n] h[n]

卷积是一个非常逻辑且简单的过程,但许多数字信号处理(DSP)学习者由于解释方式的缘故,可能会感到困惑。接下来,我们将描述一种传统的方法和另一种更直观的方法来计算卷积输出。

传统方法

在定义卷积方程后,建议通过以下步骤来实现。对于每个特定时间移位 n n n,步骤如下:

  1. 翻转 (Flip) :将卷积方程排列为

    r [ n ] = ∑ m = − ∞ ∞ s [ m ] h [ − m + n ] r[n] = \sum_{m=-\infty}^{\infty} s[m] h[-m + n] r[n]=m=s[m]h[m+n]

    并将冲激响应 h [ m ] h[m] h[m] 视为变量 m m m 的函数。将 h [ m ] h[m] h[m] 关于 m = 0 m = 0 m=0 翻转以得到 h [ − m ] h[-m] h[m]

  2. 移位 (Shift) :为了得到时间移位 n n n 时的 h [ − m + n ] h[-m + n] h[m+n],将 h [ − m ] h[-m] h[m] 向右移 n n n 个单位(对于正 n n n),对于负 n n n 则向左移。

  3. 相乘 (Multiply) :将序列 s [ m ] s[m] s[m] 与序列 h [ − m + n ] h[-m + n] h[m+n] 逐点相乘,得到乘积序列 s [ m ] ⋅ h [ − m + n ] s[m] \cdot h[-m + n] s[m]h[m+n]

  4. 求和 (Sum) :将上述乘积序列的所有值相加,得到在时间 n n n 时的卷积输出。

  5. 重复 (Repeat) :对每个可能的 n n n 值重复上述步骤。


两个信号之间卷积的示例

$$s[n] = [2, -1, 1]$$$$h[n] = [-1, 1, 2]$$

如图 2.8 所示。在左边的列中,信号 s [ m ] s[m] s[m] 被复制并与 h [ − m ] h[-m] h[m] 的移位版本叠加,以演示两者之间的重叠,而移位 n n n 则显示在文本框中对应每个 n n n 的值。如果你按照上述步骤操作,你会在图的右边列的文本框中找到结果 r [ n ] r[n] r[n]

$$r[n] = [-2, 3, 2, -1, 2]$$

请注意上面信号表示中的变化。实际的信号 s [ n ] s[n] s[n] h [ n ] h[n] h[n] 是时间索引 n n n 的函数,但卷积方程表示的是这两个信号在时间索引 m m m 下的卷积。另一方面, n n n 用于表示在逐点与 s [ m ] s[m] s[m] 相乘之前,应用于 h [ − m ] h[-m] h[m] 的时间移位。输出 r [ n ] r[n] r[n] 是时间索引 n n n 的函数,这对应于应用于 h [ − m ] h[-m] h[m] 的移位。

image

图 2.8: s[n] 和 h[n] 之间卷积的传统方法

接下来,我们转向一种更直观的方法,在这种方法中不需要翻转信号。

直观方法

理解卷积的另一种方法。实际上,它是建立在卷积方程 (2.4) 的推导基础上的,也就是找到输出 r [ n ] r[n] r[n] ,其表达式为:

image

让我们解决与图 2.8 相同的例子,其中

s [ n ] = [ 2 , − 1 , 1 ] s[n] = [2, -1, 1] s[n]=[2,1,1]

h [ n ] = [ − 1 , 1 , 2 ] h[n] = [-1, 1, 2] h[n]=[1,1,2]

表 2.1: s[n] 和 h[n] 之间卷积的直观方法

n n n01234
s [ n ] s[n] s[n]2-11
s [ 0 ] ⋅ h [ n ] s[0] \cdot h[n] s[0]h[n]2(-1)2(1)2(2)
s [ 1 ] ⋅ h [ n − 1 ] s[1] \cdot h[n-1] s[1]h[n1]0-1(-1)-1(1)-1(2)
s [ 2 ] ⋅ h [ n − 2 ] s[2] \cdot h[n-2] s[2]h[n2]001(-1)1(1)1(2)
输出-232-12

这种方法如表 2.1 和图 2.9 所示,其结果是通过列求和生成的。从实现的角度来看,这种方法与传统方法没有区别。

注释 2.4:翻转冲激响应的奇特案例

从上面的直观方法来看,翻转实际上根本不存在。翻转仅发生在时间索引 m m m 的世界中,而不是时间索引 n n n 的世界中。而我们在每个 n n n 上找到每个新的输出。

image

图 2.9: s[n] 和 h[n] 之间卷积的直观方法

现在(NOW),由卷积方程中 n n n 代表,即为自身的移动指针,这个指针实际上在过程中不断变化。时间在滴答流逝,每一次流逝,我们都能进入未来的一个单位,在那里新的输入到来并踢出另一个冲激响应(按输入在该瞬间的幅度缩放)。
由于在现在之前没有实际的输入可施加,我们从时间索引 0 开始。

  1. 输入 s [ 0 ] s[0] s[0] 在现在(NOW)贡献了 s [ 0 ] ⋅ h [ 0 ] s[0] \cdot h[0] s[0]h[0],这是在时间 0 时的第一个输出采样。实际上,它启动了完整的冲激响应,该响应由其值 ( s [ 0 ] ⋅ h [ 1 ] , s [ 0 ] ⋅ h [ 2 ] , ⋯ ) (s[0] \cdot h[1], s[0] \cdot h[2], \cdots) (s[0]h[1],s[0]h[2],) 缩放,但这些将会发生在未来。
  2. 新的现在(NOW)是时间索引 1。输入 s [ 1 ] s[1] s[1] 到达并发起了完整的冲激响应,但只有 s [ 1 ] ⋅ h [ 0 ] s[1] \cdot h[0] s[1]h[0] 发生在现在(NOW)。此外,向未来移动了 1 个单位意味着 s [ 0 ] ⋅ h [ 1 ] s[0] \cdot h[1] s[0]h[1] 已在此时到达。因此,时间 1 的输出是 s [ 1 ] ⋅ h [ 0 ] + s [ 0 ] ⋅ h [ 1 ] s[1] \cdot h[0] + s[0] \cdot h[1] s[1]h[0]+s[0]h[1]
  3. 以这种方式继续下去,可以看出,在卷积操作期间,现在(NOW) n n n 随着每个滴答向前推进。每个此类 n n n 激活新的冲激响应,当然从 h [ 0 ] h[0] h[0] 开始,因此表达式为 s [ n ] ⋅ h [ 0 ] s[n] \cdot h[0] s[n]h[0]。只有过去输入的那些贡献可以在此时进行汇总,形成当前时刻的贡献。

显然, h [ 1 ] h[1] h[1] 将是从时间 n − 1 n-1 n1 发生的输入贡献, h [ 2 ] h[2] h[2] 来自 n − 2 n-2 n2 的输入,依此类推。总而言之, h [ ⋅ ] h[\cdot] h[] 参数的论点不过是每个单独输入从现在(时间索引 n n n)的时间分离——由于这一记忆的存在,它发挥作用以找出每个过去输入对现在的影响。

性质

以下是卷积的一些重要性质。

长度 (Length) :从上图可以看出,当 s [ n ] s[n] s[n] h [ n ] h[n] h[n] 的长度均为 3 个样本时,结果信号 r [ n ] r[n] r[n] 的长度为 5。这是一个通用规则:

$$\text{Length}\{r[n]\} = \text{Length}\{s[n]\} + \text{Length}\{h[n]\} - 1 \tag{2.8}$$

这是由于在卷积过程中一个信号完全滑过另一个信号。

第一个样本 (First sample) :从翻转操作可以明显看出,结果的第一个样本位置由下式给出:

$$\text{First sample location}\{r[n]\} = \text{First sample location}\{s[n]\} + \text{First sample location}\{h[n]\} \tag{2.9}$$

单位冲激 (Unit impulse) :由于单个单位冲激 δ [ n ] \delta[n] δ[n] 只能生成冲激响应 h [ n ] h[n] h[n] 的单一实例,因此单位冲激对冲激响应的卷积就是冲激响应本身。这个结果是通用的,适用于任何信号 s [ n ] s[n] s[n]

$$s[n] * \delta[n] = s[n] \tag{2.10}$$

复信号的卷积

复信号 s [ n ] s[n] s[n] 输入到具有复冲激响应 h [ n ] h[n] h[n] 的系统中的卷积可以通过以 IQ 形式编写卷积来理解。它以类似的方式定义为

$$r[n] = s[n] * h[n]$$

使用复数的乘法规则 I·I - Q·QQ·I + I·Q

$$I \rightarrow r_I[n] = \sum_{m=-\infty}^{\infty} s_I[m] h_I[n - m] - \sum_{m=-\infty}^{\infty} s_Q[m] h_Q[n - m]$$$$Q \uparrow r_Q[n] = \sum_{m=-\infty}^{\infty} s_Q[m] h_I[n - m] + \sum_{m=-\infty}^{\infty} s_I[m] h_Q[n - m] \tag{2.11}$$

这可以写成单个实数卷积的组合。

$$I \rightarrow r_I[n] = s_I[n] * h_I[n] - s_Q[n] * h_Q[n]$$$$Q \uparrow r_Q[n] = s_Q[n] * h_I[n] + s_I[n] * h_Q[n]\tag{2.12}$$

由于恒等式 cos ⁡ A cos ⁡ B − sin ⁡ A sin ⁡ B = cos ⁡ ( A + B ) \cos A \cos B - \sin A \sin B = \cos (A + B) cosAcosBsinAsinB=cos(A+B)I 表达式中的负号表明两个对齐轴项的相位实际上是在相加。显然,恒等式仅在可以提取幅度作为公因子的情况下适用于上述方程,但相位对齐的概念仍然成立。同样,恒等式 sin ⁡ A cos ⁡ B + cos ⁡ A sin ⁡ B = sin ⁡ ( A + B ) \sin A \cos B + \cos A \sin B = \sin (A + B) sinAcosB+cosAsinB=sin(A+B) 表明在 Q 表达式中,两个交叉轴项的相位也在相加。因此,复卷积可以描述为一个过程

  • 计算 4 个实卷积: I ∗ I I * I II Q ∗ Q Q * Q QQ Q ∗ I Q * I QI,以及 I ∗ Q I * Q IQ
  • 通过相位对齐两个对齐轴卷积 ( I ∗ I − Q ∗ Q ) (I * I - Q * Q) (IIQQ) 来获得 I 分量
  • 将两个交叉轴卷积 ( Q ∗ I + I ∗ Q ) (Q * I + I * Q) (QI+IQ) 相加,获得 Q 分量

这些计算显示在图 2.10 中,其中双箭头表示复数操作。

image

图 2.10: 两个复信号 s [ n ] s[n] s[n] h [ n ] h[n] h[n] 之间的卷积

通过卷积计算相关性

回顾方程 (1.38) 中相关性的定义,如下所示:

$$\text{corr}[n] = \sum_{m=-\infty}^{+\infty} s[m] \cdot h[m-n] = \sum_{m=-\infty}^{+\infty} s[m] \cdot h[-(n-m)]$$

因此,相关性可以通过卷积来定义,如下所示:

$$\text{corr}[n] = s[n] * h[-n] \tag{2.13}$$

从传统方法的角度来看,两信号之间的相关性可以通过计算卷积的高效方法来实现,只不过没有信号的翻转。这是因为 h [ − n ] h[-n] h[n] 翻转信号一次,而卷积再次翻转它,从而将原始信号恢复。

从直观方法的角度来看,很明显,负号与现在 − n −n n 结合,将未来转变为过去,将过去转变为未来。因此,原始信号的最后一个样本最先到达,因为它已经变成了最远的过去。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

不用价位宠物空气净化器有什么区别?性价比高宠物空气净化器推荐

自新冠之后&#xff0c;越来越多人意识到优质空气对健康的重要性了&#xff0c;纷纷购置了空气净化器。不少铲屎官便关注到了“宠物空气净化器”这一专业品牌&#xff0c;但越后面入手宠物空气净化器的人&#xff0c;看到的品牌越多。整个市场那是个“蓬勃发展”。 随着消费者…

erlang学习:mnesia数据库与ets表1

Mnesia 和 ETS 都是 Erlang 提供的表管理工具&#xff0c;用于存储和检索数据&#xff0c;但它们之间有一些重要的区别和共同点。 共同点 都是Erlang提供的表存储机制&#xff1a;ETS 和 Mnesia 都允许你在内存中创建表&#xff0c;并且可以用来存储键值对或者更复杂的数据结…

高级大数据开发协会

知识星球——高级大数据开发协会 协会内容: 教你参与开源项目提供新技术学习指导提供工作遇到的疑难问题技术支持参与大数据开源软件源码提升优化以互利共赢为原则&#xff0c;推动大数据技术发展探讨大数据职业发展和规划共享企业实际工作经验 感兴趣的私聊我&#xff0c;…

我要走遍三山五岳之---嵩山

文章目录 嵩山通勤开爬总结 嵩山 2024.9.16登顶第一座五岳。 为啥第一座高山选择了嵩山呢&#xff1f;因为本来就是新手&#xff0c;想选择一个低难度的开始爬。看了小红书上的攻略&#xff0c;五岳的难度&#xff1a;华山>泰山>嵩山>衡山>恒山。 本来想选择的是…

Linux常见查看文件命令

目录 一、cat 1.1. 查看文件内容 1.2. 创建文件 1.3. 追加内容到文件 1.4. 连接文件 1.5. 显示多个文件的内容 1.6. 使用管道 1.7. 查看文件的最后几行 1.8. 使用 -n 选项显示行号 1.9. 使用 -b 选项仅显示非空行的行号 二、tac 三、less 四、more 五、head 六、…

GAMES101(10~11节,几何)

Geometry implicit隐式几何表示&#xff1a; 函数f(x,y,z)&#xff1a; 根据函数fn描述几何&#xff0c;遍历所有空间内 的点&#xff0c;如果带入xyz到函数f(x,y,z)结果0那就绘制这个点 如果xyz求值结果>0表示在几何外&#xff0c;0在表面,<0在几何内 构造几何csg(…

GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions

GIS OGC之WMTS地图服务&#xff0c;通过Capabilities XML描述文档&#xff0c;获取matrixIds&#xff0c;origin&#xff0c;计算resolutions 需求&#xff1a;如何根据WMTS服务的Capabilities描述文档得到&#xff0c;openlayers调用wmts服务时的matrixIds&#xff0c;origin…

【C++二叉树】JZ36 二叉搜索树与双向链表

二叉搜索树与双向链表_牛客题霸_牛客网 (nowcoder.com) 思路分析&#xff1a; 根据题目要求可以看出将二叉搜索树转换为排序的双向链表就是中序遍历二叉搜索树。在中序遍历的过程中将前后节点链起来即可。左指针指向前一个&#xff0c;右指针指向后一个。中序遍历是递归实现的&…

linux下的日志编写

1、日志初始化创建 2、日志写入 3、日志关闭 log.c #include "log.h"static log_t LOG;//初始化日志文件&#xff0c;在当前目录创建日志文件 int log_init(char *pdirname) {time_t t;struct tm *ptm NULL;char filepath[64] {0};int ret 0;time(&t);ptm …

资源创建方式

kubernetes支持两种创建资源的方式&#xff1a; 用kubectl命令直接创建&#xff0c;比如&#xff1a;kubectl run nginx-deployment --imagenginx1.7.9 --replicas2&#xff0c;在命令行中通过参数指定资源的属性 通过配置文件和kubectl apply创建&#xff0c;创建nginx.yml文…

Apache SeaTunnel Zeta引擎源码解析(三) Server端接收任务的执行流程

作者&#xff1a;刘乃杰 编辑整理&#xff1a;曾辉 引入 本系列文章是基于 Apache SeaTunnel 2.3.6版本&#xff0c;围绕Zeta引擎给大家介绍其任务是如何从提交到运行的全流程&#xff0c;希望通过这篇文档&#xff0c;对刚刚上手SeaTunnel的朋友提供一些帮助。 我们整体的文…

物联网行业中心跳机制的介绍以及如何实现

一 概述 心跳机制出现在TCP长连接中&#xff0c;客户端和服务端之间定时发送一种特殊的数据包通知对方还在线&#xff0c;以确保TCP连接地可靠性&#xff0c;有可能TCP连接由于某些原因&#xff08;例如网线被拔了&#xff0c;突然断电&#xff09;导致客户端断了&#xff0c;…

WINDOWS AGENTARENA:EVALUATING MULTI-MODAL OS AGENTS AT SCALE论文学习

文章开头说现有的agent都是局限于特定领域&#xff08;什么网络问答啊&#xff0c;仅限文字啊&#xff0c;仅限于某一个app啊&#xff09;这样的&#xff0c;本文的工作主打一个贴近用户使用场景&#xff0c;用户用什么软件&#xff0c;看什么网页&#xff0c;本文的模型就用什…

1×1卷积核【super star 卷积核】

一、11卷积的作用 我们先来给出11卷积的一般作用&#xff0c;如下所示&#xff1a; • 跨通道的特征整合 • 特征通道的升维与降维 • 减少权重参数&#xff08;卷积核参数&#xff09; 【 简化模型 】 1.1 特征通道的升维与降维/跨通道的特征整合/简化模型 输入数据&…

字幕编辑用什么软件好?盘点国内外7款视频加字幕软件,简单高效!

视频添加字幕被认为是让观众更好理解您在视频中讲述内容的最佳和最常见的方式。例如&#xff0c;您可以给视频中的某些文字添加不同的颜色&#xff0c;以帮助观众识别视频中的角色。然而&#xff0c;在制作视频过程中&#xff0c;添加字幕往往是个耗时耗力的任务。因此&#xf…

五种数据库特性对比(Redis/Mysql/SQLite/ES/MongoDB)

做后端开发的程序员基本都要学会数据库的相关知识。 1、关系型数据 今天就着这段时间了解大模型的事需要牵扯到是我们接触最多的、也是入门后端必学的关系型数据库。在关系型数据库中&#xff0c;数据以表的形式进行组织和存储&#xff0c;每个表就像一个 Excel 表格&#xf…

火山引擎数智平台:高性能ChatBI的技术解读和落地实践

导读&#xff1a;大模型能力的发展和成熟&#xff0c;催生出新一代智能化 BI—— ChatBI&#xff0c;即通过自然语言处理&#xff08;NLP&#xff09;与大型语言模型&#xff08;LLMs&#xff09;的结合&#xff0c;极大简化数据分析过程&#xff0c;提高效率并降低分析门槛。火…

MacOS安装MAT教程

MAT下载地址MAT下载地址MAT下载地址MAT下载地址 如果不知道你的芯片类型, 可以执行如下命令 uname -m

荣誉 | 分贝通入选2024「Cloud 100 China」

近日,2024 Cloud 100 China 榜单于美高梅酒店正式发布,这是靖亚资本和崔牛会联合推出的第三届榜单。 全球商旅管理、企业支出全流程管控、数据BI全方位降本、AI赋能高效出行体验.......近年来,分贝通不断精进产品能力及BI&AI能力,再次上榜。 本届评选,组委会基于过去一年融…

设计模式之命令模式:从原理到实战,深入解析及源码应用

&#x1f3af; 设计模式专栏&#xff0c;持续更新中 欢迎订阅&#xff1a;JAVA实现设计模式 &#x1f6e0;️ 希望小伙伴们一键三连&#xff0c;有问题私信都会回复&#xff0c;或者在评论区直接发言 命令模式 什么是命令模式&#xff1f; 命令模式&#xff08;Command Pattern…