卷积 Convolution
本文最后更新于15 天前,其中的信息可能已经过时,如有错误请留言

定义

卷积的“卷”,指的的函数的翻转,从 g(t) 变成 g(-t) 的这个过程;同时,“卷”还有滑动的含义

卷积的“积”,指的是积分(连续)/加权求和(离散)

因此卷积的运算过程是翻转->平移->求和

所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加得到一个新的序列(ab)n​:n表示卷积结果序列中元素的位置索引。比如(ab)0​指的是卷积结果序列中第 0 个位置的元素,(ab)1​指第 1 个位置的元素,以此类推。卷积是一种组合数组或函数(而不是数字)的方法

线性卷积:

参与运算的是两个有限长度的非周期序列。对长度为 N 的序列 x (n),与长度为 M 的序列 h (n) 进行卷积。其卷积结果的序列 y (n)长度为L = M+N-1

连续时间线性卷积:对于连续时间信号 \(x(t)\)(输入信号)和 \(h(t)\)(系统冲激响应):$$y(t) = (x * h)(t) = \int_{-\infty}^{\infty} x(\tau) \cdot h(t – \tau) \, d\tau$$

对于离散序列 \(x[n]\)(长度 N )和 \(h[n]\)(长度 M ),线性卷积公式为:$$y[n] = (x * h)[n] = \sum_{k = -\infty}^{\infty} x[k] \cdot h[n – k]$$

  • k -> -k是反转,-k -> n-k是平移
  • a序列*b序列,反转a/b的结果是一样的
  • 上下限的差为卷积的长度即可,此外还要修改滑动序列的自变量,具体见下例

循环(圆周、圆)卷积 cyclic / circular convolution

参与运算的是两个有限长度的非周期序列,所得结果有限序列的长度仍为N:

设两个有限长序列 \(x[n]\)(长度 \(N_x\))和 \(h[n]\)(长度 \(N_h\)),补零至长度 N 后,圆周卷积定义为:$$y_{\text{circ}}[n] = \sum_{k=0}^{N-1} x[k] \cdot h\left[(n – k) \mod N\right], \quad n = 0, 1, \dots, N-1$$

例题:

周期卷积 Periodic Convolution

周期卷积的输出是一个长度为周期 P有限序列,但它是一个周期序列在一个周期内的值,本质上代表一个无限周期信号的一个周期片段

设两个有限长度序列 \(x[n]\)(长度 \(N_x\) )和 \(h[n]\)(长度 \(N_h\) ),将它们按周期 P 进行周期延拓,得到无限周期序列 \(\tilde{x}[n]\) 和 \(\tilde{h}[n]\),则它们的周期卷积定义为:

将有限长序列 \(x[n]\) 和 \(h[n]\) 以周期 N 延拓为无限长周期序列 \(\tilde{x}[n]\) 和 \(\tilde{h}[n]\),则它们的 周期卷积 为:$$y_p(n) = \sum_{k=0}^{P – 1} x(k) \cdot h((n – k) \bmod P)$$

  • 由于周期性,上式在一个周期内(\(k = 0\) 到 \(N-1\))的求和结果与圆周卷积完全一致,即:\(y_{\text{circ}}[n] = \tilde{y}[n] \cdot R_N[n]\) 其中 \(R_N[n]\) 是长度为 N 的矩形窗函数(仅在 \(n = 0, 1, \dots, N-1\) 时为 1,其余为 0)。

结论圆周卷积是周期卷积在主值区间(一个周期内)的结果,二者本质相同,“圆周” 和 “循环” 均描述其周期性循环的特性。

其实就计算结果来讲周期卷积和循环卷积没有什么区别,这也是为什么很多文章不做区分且经常混淆的原因

  • 线性卷积:一次性铺平滑动相乘(不折叠)
  • 圆周卷积:边界会“绕一圈”回来累加
  • 周期卷积:把信号视为无限重复的周期版本做圆周卷积

怎样将两个不同长度所进行的线性卷积转化为循环卷积

循环卷积要求两个序列的长度相等,因此在两个序列后添加0使其变为与输出序列等长的周期序列。一切循环卷积都可以通过傅里叶变换计算,线性卷积需要经过上述转化后使用傅里叶变换计算(暂时没搞懂)

用傅里叶变换计算卷积的原因:快速傅里叶变换,降低复杂度

线性卷积矩阵表示:

卷积计算过程中相乘又相加的计算属性可以让我们用矩阵表示。

反转序列的右移用矩阵的行来体现,每行代表此时与X对齐的元素,未对齐的元素用0表示

性质

数组之间的加法和乘法一样,对数组的卷积也具有以下三个基本性质

交换律:f * g = g * f

结合律:(f * g) * h = f * (g * h) 多重卷积的计算顺序可以随意改变。

分配律:f * (g + h) = (f * g) + (f * h)

平移性:\(f(t – t_0) * g(t) = (f * g)(t – t_0)\)

卷积定理

FT & DFT 傅里叶变换 – Skyshin34的博客参见傅里叶变换性质 – 调频性质部分

香农采样定理

是连续信号(通常称作“模拟信号”)与离散信号(通常称作“数字信号”)之间的桥梁,为模拟信号转换为数字信号提供了一个数学准则。它确定了信号带宽的上限,或能捕获连续信号的所有信息的离散采样信号所允许的采样频率的下限。

定理表述:

如果一个信号的带宽是有限的,即信号中不包含任何高于某一最大频率 \( f_{\text{max}} \) 的频率分量,那么我们可以用一个大于或等于该信号最高频率的两倍的采样率 \( f_s \geq 2f_{\text{max}} \) 对该信号进行采样,以便在不丢失信息的情况下重建该信号。

采样率 \(( f_s )\):每秒钟从信号中采集样本的数量,单位为赫兹 (Hz)。
带宽 \(( f_{\text{max}} )\):包含谐波的最高频率与最低频率之差,即该信号所拥有的频率范围

抛筛子案例

抛两个骰子,计算两个骰子的各个点数和的出现的概率。

现在思考另一种方式展示这个问题,把两枚骰子的所有可能分别放到一行,然后把第二行翻转,这样所有点数和为7的组合就会纵向对齐(这里很好的解释了卷积的式子里为什么函数g里面是t-x)

案例中隐含假设就没每个骰子向上的概率是相同的,如果不同需要分别计算每组出现的概率再相加

卷积的结果是一个列表,它的第n项定义为把下标ij之和为n的所有元素的乘积累加起来

应用

滑动均值滤波,模糊

每次迭代相当于将数据中的每个元素都乘以1/5,然后将它们加起来 – 求这个小窗口数据的平均值,总的来说,这个过程给了你一个原数据的平滑版本(滑动均值滤波)

如果你在二维上进行类似的操作,就能得到一个把图片变模糊的方法卧槽这不是抗锯齿的算法的模糊化。用一个3×3的网格沿着原图像移动

我们把颜色当作三维向量。将每个向量都乘以1/9然后求和就得到每个颜色通道的平均值,就得到每个颜色通道的平均值。对每个像素都如此计算,相当于每个像素都混杂了一部分到相邻的像素,这就得到了一个比原图更模糊的版本,用术语来说:右图就是原图和旋转180°小网络的卷积(本例中是否旋转无区别)

学习笔记如有侵权,请提醒我,我会马上删除
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇