我一直在使用卷积来查找各种系统的输出。我知道如何使用它。但我仍然不知道卷积到底是什么意思?如何定义卷积?
卷积背后的直觉是什么?
毫无疑问,维基百科和其他地方有很多关于卷积、它与线性系统的关系以及它与频率分析的链接的链接和说明,但我认为这不是你所追求的。
暂时忘记卷积。只考虑平均值:
如果我给你一连串的说法,数字,并要求你取平均值,你可以很容易地做到这一点。
让我们说我给你另一套再次数字,并要求您取平均值。你可以再次,非常容易地做到这一点。
我一直给你一套数字,你一直给我平均数。多么美好的生活!
现在想象我告诉你一个秘密:那些我给你的数字实际上是从一长串数字中提取的。事实上,我有一个清单数字。第一组我给你的数字是第一个该列表的编号。(第一个样品到第 10 个样品)。你平均了他们。
第二个名单数字实际上是第 2 个样本,到第 11 个样本。你平均了他们。
第三个名单我给你的数字实际上是第 3 个样本,到第 12 个样本。你平均了他们。
毕竟,我请你把你给我的所有平均值一个接一个地画出来。
恭喜!你刚刚向我展示了一个卷积结果!
(免责声明:我跳过了一些边界条件,但这基本上是卷积的全部内容)。
因此,总而言之,将卷积视为滑动平均值。
现在,记住我说的“平均”那些我给你的号码?那么你也可以做一个加权平均。(也就是说,而不是将所有数字由在平均它们之前,我们将它们乘以不同的数字,然后再平均它们。这是加权平均值)。不过,这仍然是一个卷积。我们称这些数字为“权重”,有时它们被称为“过滤器内核”。
一些高级系统实际上在运行时会改变它们的权重,它们被称为自适应滤波器。
不管怎样,这应该为您提供一个坚实的直觉:只要记住卷积可以被认为是 - 是 - 数据的移动平均值。希望有帮助!
卷积在数学中表达了如何获得线性时不变(LTI)系统的输出以响应任意输入 - 如果您知道脉冲响应。采用具有脉冲响应 h[t] 的离散时间系统,因此如果我输入脉冲,我会在输出端得到 h[t]。
现在,如果我想知道给定输入 x[n] = [1 2 1] 的输出,您所做的就是将此输入分解为 3 个脉冲,即我们查看 3 个单独的输入序列 [1 0 0]、[0 2 0] 和 [0 0 1]。我们想要的输入是这 3 个输入的总和。因为我们的系统是 LTI,所以输入之和的输出就是输出之和。
因为我们的输入是脉冲,所以输出将被简单地缩放和延迟版本的脉冲响应(同样是因为 LTI 系统的定义)
所以每个输入的输出是:
[1 0 0] -> 1*h[t]
[0 2 0] -> 2*h[t-1]
[0 0 1] -> 1*h[t-2 ]
因此,将左侧和右侧相加,我们得到
[1 2 1] -> 1*h[t] + 2*h[t-1] + 1*h[t-2]
所以卷积只是简单地将脉冲响应的延迟和缩放版本相加。缩放和延迟因子只是与输入信号相关的幅度和延迟。
通常卷积公式看起来很尴尬,因为输出是在特定时间点写入的,即 y[2] 的值是多少?在上面的示例中,我们必须从每个输出信号中获取第三个点,即 1*h[2]、2*h[1]、1*h[0]。看到这个让
你[t] =1*h[t]
y[t] =2*h[t-1]
y[t] =1*h[t-2]
因此我们可以看到
y[2] = 1*h[2] = 1*h[2]
是[2] = 2*h[2-1] = 2*h[1]
是[2] =1*h[2-2] = 1*h[0]
总输出是通过将这些相加得到的,即
y[2] = 1*h[2]+ 2*h[1]+1*h[0]
但是看到这也可以写成:
y[2]= x[0]*h[2] + x[1]*h[1] + x[2]*h[0]
我上面所做的只是用输入信号 x[] 的相应索引替换缩放。
如果我们在任意时间编写输出信号的公式,y[n] - 结果就是卷积公式。所以卷积公式是具有线性时不变系统和该系统的脉冲响应的结果。