宝鸡市网站建设_网站建设公司_会员系统_seo优化
2026/1/1 21:54:43 网站建设 项目流程

一、先忘记数学,看一个生活场景

问题:你每天吃药,药效会持续好几天。如何计算今天你体内的总药量?

假设:

  • 吃药记录(输入信号x[n]):

    • 前天:吃了2颗药

    • 昨天:吃了1颗药

    • 今天:吃了3颗药

  • 药效衰减规律(系统响应h[n]):

    • 吃药当天:药效保留0.6

    • 第二天:药效保留0.3

    • 第三天:药效保留0.1

    • 第四天:药效为0


二、分步计算:今天体内总药量

今天(第n天)你体内的药量来自:

  1. 今天吃的药3 × 0.6 = 1.8

  2. 昨天吃的药(已经过1天):1 × 0.3 = 0.3

  3. 前天吃的药(已经过2天):2 × 0.1 = 0.2

总药量 = 1.8 + 0.3 + 0.2 = 2.3

这个计算过程,就是卷积的核心理念


三、卷积公式的“积木块”

现在,我们把上面的过程翻译成数学符号。卷积的标准公式是:

y[n] = ∑ x[k] · h[n-k]

别被符号吓到,我们一个一个拆解:

1. 符号解释(给每个符号贴标签)

符号中文名在我们的例子中代表
n“当前时间”就是“今天”
k“过去的时间点”可以是“前天”、“昨天”、“今天”
x[k]“输入信号”在时间k吃了多少药
h[m]“系统的记忆”经过m天后,药效还剩多少
h[n-k]“从k时刻到现在的记忆”从吃药那天(k)到今天(n)过去了多久,对应的药效
y[n]“输出信号”今天体内的总药量

2. 关键技巧:h[n-k]为什么是n-k

这是卷积公式的灵魂所在

  • n= 现在的时间(今天)

  • k= 过去某个吃药的时间(比如前天)

  • n - k= 从吃药到现在过去了多少天

例子

  • 如果今天n=5,前天k=3,那么n-k=2→ 表示“吃药后过去了2天”

  • 查药效表h[2]= 0.1 → 这就是前天吃的药到今天还剩的药效

h[n-k]的作用:它自动把过去的输入,按照正确的时间差,映射到今天还剩多少影响


四、可视化:卷积就像“翻转滑动尺”

想象两把尺子:

第一把尺子(输入x:上面标着每天吃的药量

时间k: ... k=前天 k=昨天 k=今天 ... 药量x: ... 2 1 3 ...

第二把尺子(记忆h:上面标着药效衰减规律

时间差m: m=0(当天) m=1(过1天) m=2(过2天) ... 药效h: 0.6 0.3 0.1 ...

卷积的魔法操作

  1. 翻转记忆尺:把h尺子从右往左读,变成... h[2] h[1] h[0] ...

    • 为什么翻转?因为我们要让“最早的影响”先对齐。

    • 翻转后:... 0.1 0.3 0.6 ...

  2. 对齐计算

    • 把翻转后的h尺子的h[0](当天)对准今天的x[今天]

    • 然后:x[今天]×h[0] + x[昨天]×h[1] + x[前天]×h[2]

    • 计算:3×0.6 + 1×0.3 + 2×0.1 = 2.3

  3. 滑动计算其他天

    • 要算昨天的总药量,就把尺子向左滑动一天,让h[0]对准x[昨天]

    • 然后:x[昨天]×h[0] + x[前天]×h[1] + ...


五、完整例子:手算一遍卷积

设:

  • x = [2, 1, 3](从前天、昨天、今天的药量)

  • h = [0.6, 0.3, 0.1](当天、1天后、2天后的药效)

计算所有天的总药量y[n]

第1步:建立表格法(最直观)

x写在上方,h写在左侧,填乘积:

h \ x213
0.61.20.61.8
0.30.60.30.9
0.10.20.10.3

第2步:按对角线求和

  • ↗️ 第一条对角线:0.2y[0] = 0.2(这里n=0对应“前天”)

  • ↗️ 第二条:0.6 + 0.1 = 0.7y[1] = 0.7(昨天)

  • ↗️ 第三条:1.2 + 0.3 + 0.3 = 1.8y[2] = 1.8(今天)

  • ↗️ 第四条:0.6 + 0.9 = 1.5y[3] = 1.5

  • ↗️ 第五条:1.8y[4] = 1.8

结果y = [0.2, 0.7, 1.8, 1.5, 1.8]

检查:我们之前手算的“今天”是y[2]=1.8,而用详细方法算出的“今天”是1.8吗?等等,我们之前算的不是2.3吗?

啊哈!这里有个重要发现:我故意设置了不同数字来展示两种视角。让我们统一一下:


六、两种视角的对应

视角A(最直观):

  • 昨天吃的药(1)到今天还剩1×0.3=0.3

  • 今天吃的药(3)当天生效3×0.6=1.8

  • 总和0.3+1.8=2.1?等等,还少了前天的药效。

这里的关键是:时间索引要对齐

在实际卷积中,我们是从n=0开始算的:

  • y[0]:最早时刻的输出(对应前天)

  • y[2]:第三天的输出(对应今天)

如果我们想直接算“今天”,需要定义清楚时间起点。这就是为什么表格法更可靠——它系统地计算了所有时间点。


七、卷积公式的精华总结

  1. 核心思想

    计算“现在”的输出,就是把所有“过去和现在”的输入,分别乘以它们“留存到今天的影响”,然后加起来。

  2. 公式解读

    • y[n]:你想知道什么时候的结果。

    • :求和符号,表示把很多项加起来

    • x[k]:在某个过去时刻k的输入值。

    • h[n-k]:从那个过去时刻k现在n,系统还剩下多少记忆。

  3. 简单口诀

    卷积 = 翻转 × 滑动 × 相加

    1. 翻转h序列

    2. 对齐到当前时间n

    3. 对应位置相乘

    4. 所有乘积相加

  4. 结果长度

    • 如果x长度=M,h长度=N

    • 卷积结果y长度 =M + N - 1

    • 就像两段绳子打结,重叠部分会变长。


八、给初学者的最终建议

不要死记公式!记住这个场景

你有一个水桶(系统),每天往里面倒不同量的水(输入x),但水桶有漏洞,水会每天漏掉一些(记忆h)。卷积就是计算今天桶里还有多少水(输出y)——包括今天倒的、昨天倒的剩的、前天倒的剩的……

当你看到y[n] = Σ x[k]·h[n-k],就想想:

  • “我在算哪一天(n)的结果?”

  • “过去的每一天(k)贡献了多少?”

  • “从那天到今天(n-k),影响衰减了多少(h[n-k])?”

这就是卷积——一个系统化计算“历史影响累积”的聪明方法。它把复杂的动态过程,变成了简单的乘法和加法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询