循环卷积和线性卷积(矩阵视角)

article/2025/9/12 6:54:49

文章目录

  • 循环卷积
    • 循环矩阵(Circulant Matrices)
    • 循环矩阵与循环卷积的关系
  • 线性卷积

循环卷积

循环矩阵(Circulant Matrices)

C = [ c 0 c 1 ⋯ c N − 1 c N − 1 c 0 ⋱ ⋮ ⋮ ⋱ ⋱ c 1 c 1 ⋯ c N − 1 c 0 ] ∈ R N × N (1) \boldsymbol{C}=\left[ \begin{matrix} c_0& c_1& \cdots& c_{N-1}\\ c_{N-1}& c_0& \ddots& \vdots\\ \vdots& \ddots& \ddots& c_1\\ c_1& \cdots& c_{N-1}& c_0\\ \end{matrix} \right] \in \mathbb R^{N \times N} \tag{1} C=c0cN1c1c1c0cN1cN1c1c0RN×N(1)

任意循环矩阵 C 1 , C 2 \boldsymbol C_1, \boldsymbol C_2 C1,C2 C 1 C 2 = C 2 C 1 \boldsymbol C_1 \boldsymbol C_2 = \boldsymbol C_2 \boldsymbol C_1 C1C2=C2C1也是循环阵(因此循环矩阵必然也是normal矩阵,因为 C C T = C T C \boldsymbol C \boldsymbol C^T= \boldsymbol C^T \boldsymbol C CCT=CTC)。循环阵可以表示为多项式形式:
C = c 0 I + c 1 P + ⋯ + c N − 1 P N − 1 (2) \boldsymbol C = c_0 \boldsymbol I + c_1 \boldsymbol P + \cdots + c_{N-1} \boldsymbol P^{N-1} \tag{2} C=c0I+c1P++cN1PN1(2)

其中 P \boldsymbol P P为循环移位矩阵(Circlic Shift Matrix) ,这里我们考虑up cyclic shit matrix (down cyclic shift matrix 类似),以 N = 4 N=4 N=4为例
P = [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] (3) \boldsymbol{P}=\left[ \begin{matrix} 0& 1& 0& 0\\ 0& 0& 1& 0\\ 0& 0& 0& 1\\ 1& 0& 0& 0\\ \end{matrix} \right] \tag{3} P=0001100001000010(3)

其循环移位过程可以从下式看出
P [ x 1 x 2 x 3 x 4 ] = [ 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 ] [ x 1 x 2 x 3 x 4 ] = [ x 2 x 3 x 4 x 1 ] (4) \boldsymbol P \left[ \begin{array}{c} x_1\\ x_2\\ x_3\\ x_4\\ \end{array} \right] = \left[ \begin{matrix} 0& 1& 0& 0\\ 0& 0& 1& 0\\ 0& 0& 0& 1\\ 1& 0& 0& 0\\ \end{matrix} \right] \left[ \begin{array}{c} x_1\\ x_2\\ x_3\\ x_4\\ \end{array} \right] = \left[ \begin{array}{c} x_2\\ x_3\\ x_4\\ x_1\\ \end{array} \right] \tag{4} Px1x2x3x4=0001100001000010x1x2x3x4=x2x3x4x1(4)

因为 P \boldsymbol P P是循环移位矩阵,所以
P N = I (5) \boldsymbol P^N = \boldsymbol I \tag{5} PN=I(5)

这里 N = 4 N=4 N=4

根据式(2),不难得出, C \boldsymbol C C的特征向量与 P \boldsymbol P P的特征向量等价,因此我们主要分析 P \boldsymbol P P的谱特性。
det ( P − λ I ) = det ( [ − λ 1 0 0 0 − λ 1 0 0 0 − λ 1 1 0 0 − λ ] ) = λ 4 − 1 = 0 ⇒ λ = 1 , − 1 , i , − i (5) \begin{aligned} \text{det} \left ( \boldsymbol P - \lambda \boldsymbol I \right ) &= \text{det} \left ( \left[ \begin{matrix} -\lambda& 1& 0& 0\\ 0& -\lambda& 1& 0\\ 0& 0& -\lambda& 1\\ 1& 0& 0& -\lambda\\ \end{matrix} \right] \right ) \\ & = \lambda^4 - 1 \\ & = 0 \\ \Rightarrow \lambda &= 1, -1, i, -i \end{aligned} \tag{5} det(PλI)λ=detλ0011λ0001λ0001λ=λ41=0=1,1,i,i(5)

其特征值如下图所示

所对应的特征向量为
λ = 1 , [ 1 1 1 1 ] ; λ = − 1 , [ 1 − 1 1 − 1 ] ; λ = i , [ 1 i i 2 i 3 ] ; λ = − i , [ 1 − i ( − i ) 2 ( − i ) 3 ] (6) \lambda =1,\left[ \begin{array}{c} 1\\ 1\\ 1\\ 1\\ \end{array} \right] ; \lambda =-1,\left[ \begin{array}{c} 1\\ -1\\ 1\\ -1\\ \end{array} \right] ; \lambda =i,\left[ \begin{array}{c} 1\\ i\\ i^2\\ i^3\\ \end{array} \right] ; \lambda =-i,\left[ \begin{array}{c} 1\\ -i\\ \left( -i \right) ^2\\ \left( -i \right) ^3\\ \end{array} \right] \,\, \tag{6} λ=1,1111;λ=1,1111;λ=i,1ii2i3;λ=i,1i(i)2(i)3(6)


F = 1 2 [ 1 1 1 1 1 − 1 1 − 1 1 i i 2 i 3 1 − i ( − i ) 2 ( − i ) 3 ] (7) \boldsymbol{F}=\frac{1}{2} \left[ \begin{matrix} \begin{array}{c} 1\\ 1\\ 1\\ 1\\ \end{array}& \begin{array}{c} 1\\ -1\\ 1\\ -1\\ \end{array}& \begin{array}{c} 1\\ i\\ i^2\\ i^3\\ \end{array}& \begin{array}{c} 1\\ -i\\ \left( -i \right) ^2\\ \left( -i \right) ^3\\ \end{array}\\ \end{matrix} \right] \tag{7} F=21111111111ii2i31i(i)2(i)3(7)

对应的特征分解为
P = F [ 1 0 0 0 0 − 1 0 0 0 0 i 0 0 0 0 − i ] F H = F Λ F H (8) \begin{aligned} \boldsymbol P &= \boldsymbol F \left[ \begin{matrix} 1& 0& 0& 0\\ 0& -1& 0& 0\\ 0& 0& i& 0\\ 0& 0& 0& -i\\ \end{matrix} \right] \boldsymbol F^H \\ & = \boldsymbol F \boldsymbol \Lambda \boldsymbol F^H \end{aligned} \tag{8} P=F1000010000i0000iFH=FΛFH(8)

因此循环矩阵 C \boldsymbol C C的特征分解可以写为,
C = F ( c 0 I + c 1 Λ + c N − 1 Λ N − 1 ) F H (9 ) \boldsymbol C = \boldsymbol F \left ( c_0 \boldsymbol I + c_1 \boldsymbol \Lambda + c_{N-1} \boldsymbol \Lambda^{N-1} \right ) \boldsymbol F^H \tag{9 } C=F(c0I+c1Λ+cN1ΛN1)FH(9 )

为了更好地理解,当 N = 8 N=8 N=8时,其特征值可以用下图表示

其中
ω = e 2 π i N , N = 8 (10) \omega = e^{\frac{2 \pi i}{N}} , \ \ N = 8 \tag{10} ω=eN2πi,  N=8(10)

特征矩阵
F 8 = 1 8 [ 1 1 1 ⋯ 1 1 ω 1 ω 2 ⋯ ω 7 1 ω 2 ω 4 ⋯ ω 14 1 1 1 1 1 ω 3 ω 4 ω 5 ω 6 ω 7 ω 6 ω 8 ω 10 ω 12 ω 14 ⋯ ω 21 ⋯ ω 28 ⋯ ω 35 ⋯ ω 42 ⋯ ω 49 ] (11) \boldsymbol F_8 = \frac{1}{\sqrt 8} \left[ \begin{matrix} 1& 1& 1& \begin{matrix} \cdots& 1\\ \end{matrix}\\ 1& \omega ^1& \omega ^2& \begin{matrix} \cdots& \omega ^7\\ \end{matrix}\\ 1& \omega ^2& \omega ^4& \begin{matrix} \cdots& \omega ^{14}\\ \end{matrix}\\ \begin{array}{c} 1\\ 1\\ 1\\ \begin{array}{c} 1\\ 1\\ \end{array}\\ \end{array}& \begin{array}{c} \omega ^3\\ \omega ^4\\ \omega ^5\\ \begin{array}{c} \omega ^6\\ \omega ^7\\ \end{array}\\ \end{array}& \begin{array}{c} \omega ^6\\ \omega ^8\\ \omega ^{10}\\ \begin{array}{c} \omega ^{12}\\ \omega ^{14}\\ \end{array}\\ \end{array}& \begin{array}{c} \begin{matrix} \cdots& \omega ^{21}\\ \end{matrix}\\ \begin{matrix} \cdots& \omega ^{28}\\ \end{matrix}\\ \begin{matrix} \cdots& \omega ^{35}\\ \end{matrix}\\ \begin{array}{c} \begin{matrix} \cdots& \omega ^{42}\\ \end{matrix}\\ \begin{matrix} \cdots& \omega ^{49}\\ \end{matrix}\\ \end{array}\\ \end{array}\\ \end{matrix} \right] \tag{11} F8=8 1111111111ω1ω2ω3ω4ω5ω6ω71ω2ω4ω6ω8ω10ω12ω141ω7ω14ω21ω28ω35ω42ω49(11)

一般地, F N \boldsymbol F_N FN中的第 ( k , n ) (k,n) (k,n)个元素为:
F N ( k , n ) = 1 N exp ⁡ ( i 2 π k n N ) , 0 ≤ k , n ≤ N − 1 (12) \boldsymbol F_N (k,n) = \frac{1}{N}\exp (\frac{i 2 \pi k n}{N}) , \ \ 0 \leq k, n \leq N-1 \tag{12} FN(k,n)=N1exp(Ni2πkn),  0k,nN1(12)

小结:循环矩阵 C \boldsymbol C C与循环移位矩阵 P \boldsymbol P P有密切的关系,尤其是谱空间意义上。一般地,循环矩阵 C \boldsymbol C C都可以被谱分解为
C = F D F H (13) \boldsymbol C = \boldsymbol F \boldsymbol D \boldsymbol F^H \tag{13} C=FDFH(13)

其中 F \boldsymbol F F为DFT矩阵, D \boldsymbol D D为对角阵,且多数情况下都是复数。

循环矩阵与循环卷积的关系


c T = [ c 0 , c 1 , ⋯ , c N − 1 ] ∈ R 1 × N v T = [ v 0 , v 1 , ⋯ , v N − 1 ] ∈ R 1 × N \boldsymbol c^T = [c_0, c_1, \cdots, c_{N-1}] \in \mathbb R^{1 \times N} \\ \boldsymbol v^T = [v_0, v_1, \cdots, v_{N-1}] \in \mathbb R^{1 \times N} cT=[c0,c1,,cN1]R1×NvT=[v0,v1,,vN1]R1×N

那么 c T \boldsymbol c^T cT v T \boldsymbol v^T vT 的循环卷积为
c T ⊗ v T = v T [ c 0 c 1 ⋯ c N − 1 c N − 1 c 0 ⋱ ⋮ ⋮ ⋱ ⋱ c 1 c 1 ⋯ c N − 1 c 0 ] = c T [ v 0 v 1 ⋯ v N − 1 v N − 1 v 0 ⋱ ⋮ ⋮ ⋱ ⋱ v 1 v 1 ⋯ v N − 1 v 0 ] (14) \begin{aligned} & \boldsymbol c^T \otimes \boldsymbol v^T \\ & = \boldsymbol v^T \left[ \begin{matrix} c_0& c_1& \cdots& c_{N-1}\\ c_{N-1}& c_0& \ddots& \vdots\\ \vdots& \ddots& \ddots& c_1\\ c_1& \cdots& c_{N-1}& c_0\\ \end{matrix} \right] \\ & = \boldsymbol c^T \left[ \begin{matrix} v_0& v_1& \cdots& v_{N-1}\\ v_{N-1}& v_0& \ddots& \vdots\\ \vdots& \ddots& \ddots& v_1\\ v_1& \cdots& v_{N-1}& v_0\\ \end{matrix} \right] \end{aligned} \tag{14} cTvT=vTc0cN1c1c1c0cN1cN1c1c0=cTv0vN1v1v1v0vN1vN1v1v0(14)

举例:令 c T = [ 3 , 1 , 2 ] \boldsymbol c^T=[3,1,2] cT=[3,1,2] v T = [ 4 , 6 , 1 ] \boldsymbol v^T=[4,6,1] vT=[4,6,1],那么
c T ⊗ v T = [ 3 , 1 , 2 ] ⊗ [ 4 , 6 , 1 ] = [ 4 , 6 , 1 ] [ 3 1 2 2 3 1 1 2 3 ] = [ 3 , 1 , 2 ] [ 4 6 1 1 4 6 6 1 4 ] = [ 25 , 14 , 17 ] \begin{aligned} \boldsymbol c^T \otimes \boldsymbol v^T &= [3,1,2] \otimes [4,6,1] \\ & = [4,6,1] \left[ \begin{matrix} 3& 1& 2\\ 2& 3& 1\\ 1& 2& 3\\ \end{matrix} \right] \\ & = [3,1,2] \left[ \begin{matrix} 4& 6& 1\\ 1& 4& 6\\ 6& 1& 4\\ \end{matrix} \right] \\ &= [25, 14, 17] \end{aligned} cTvT=[3,1,2][4,6,1]=[4,6,1]321132213=[3,1,2]416641164=[25,14,17]

除此之外,我们还可以使用多项式来求解
( 3 I + P + 2 P 2 ) ( 4 I + 6 P + P 2 ) = 12 I + 22 P + 17 P 2 + 13 P 3 + 2 P 4 = 25 + 24 P + 17 P 2 \begin{aligned} &(3\boldsymbol I+\boldsymbol P + 2 \boldsymbol P^2)(4 \boldsymbol I+6\boldsymbol P+\boldsymbol P^2)\\ &= 12 \boldsymbol I + 22 \boldsymbol P + 17 \boldsymbol P^2 + 13 \boldsymbol P^3 + 2 \boldsymbol P^4 \\ & = 25 + 24 \boldsymbol P + 17 \boldsymbol P^2 \end{aligned} (3I+P+2P2)(4I+6P+P2)=12I+22P+17P2+13P3+2P4=25+24P+17P2

因为 P N = P \boldsymbol P^N = \boldsymbol P PN=P

线性卷积

我们以一个线性时不变系统来说明:
r [ m ] = ∑ l = 1 L h l x [ m − l ] r[m] = \sum_{l=1}^L h_l x[m - l] r[m]=l=1Lhlx[ml]

因为线性卷积较为常见,我们不做过多分析,直接给出矩阵意义下的线性卷积,令 h T = [ 4 , 6 , 1 ] \boldsymbol h^T = [4,6,1] hT=[4,6,1] x T = [ 3 , 1 , 2 ] \boldsymbol x^T = [3,1,2] xT=[3,1,2],那么
r T = h T ∗ x T = [ 4 , 6 , 1 ] [ 3 1 2 0 0 0 3 1 2 0 0 0 3 1 2 ] = [ 12 , 22 , 17 , 13 , 2 ] \begin{aligned} \boldsymbol r^T &= \boldsymbol h^T * \boldsymbol x^T \\ &= [4,6,1] \left[ \begin{matrix} 3& 1& \begin{matrix} 2& 0& 0\\ \end{matrix}\\ 0& 3& \begin{matrix} 1& 2& 0\\ \end{matrix}\\ 0& 0& \begin{matrix} 3& 1& 2\\ \end{matrix}\\ \end{matrix} \right] \\ & = [12,22,17,13,2] \end{aligned} rT=hTxT=[4,6,1]300130200120312=[12,22,17,13,2]


http://chatgpt.dhexx.cn/article/hPObHde5.shtml

相关文章

【CV】卷积和逆卷积(转置卷积)详解

【CV】卷积和逆卷积(转置卷积)详解 文章目录 【CV】卷积和逆卷积(转置卷积)详解1. 卷积与转置卷积的关系2. 普通卷积3. 转置卷积3.1 形象化转置卷积过程3.2 转置卷积总结 4. 转置卷积函数4.1 转置卷积函数详解4.2 一般与特殊4.2.1…

什么是卷积?

理解1: 作者:果程C 链接:https://www.zhihu.com/question/22298352/answer/50940942 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 对于初学者,我推荐用复利的例子来理…

【图像处理】卷积算法

本文索引: 文章目录 # 一、 什么是卷积? 在图像处理中,卷积操作指的是使用一个卷积核对图像中的每个像素进行一系列操作。 卷积核(算子)是用来做图像处理时的矩阵,图像处理时也称为掩膜,是与原…

matlab 矩阵卷积

卷积的表达式: y(n)x(n)*h(n)sigma{x(m)h(n-m)} y(n)x(n)*sigma{deta(n-m)} 对应信号系统的卷积冲激函数,系统的结果就是信号和其本身的线性移位 结果元素的个数,x(n)的长度是n,h(n)的长度是m,则结果的序列长度就是nm-1 和信号处理的过程是…

卷积的理解

之前,习惯把记录和总结的知识点放到云笔记上,但发现CSDN这个博客注册好久了,但却没有往上面放文章,所以决定把以前的笔记整理一下,放到这里来,以便交流学习。 关于信号的卷积 最初认识卷积来源于《信号与…

卷积的含义

本文章为学习笔记 学习内容:b站up主王木头学科学的视频从“卷积”、到“图像卷积操作”、再到“卷积神经网络”,“卷积”意义的3次改变 假设一个人在一天中持续不断地吃东西,同时也在消化吃下去的食物,就有这样两条曲线&#xf…

(n,k,N)卷积码的生成矩阵

文章目录 卷积码卷积码编码器卷积码生成矩阵子生成元和生成元子生成矩阵和生成矩阵生成矩阵的作用 举例 ( n , 1 , N ) (n,1,N) (n,1,N)卷积码 ( n , k , N ) (n,k,N) (n,k,N)卷积码 卷积码 ( n , k , N ) (n,k,N) (n,k,N)卷积码是将每 k k k个信息比特作为一组,编码…

线性卷积运算

一、卷积定义 卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是g(n)序列和h(n),则卷积的结果 y ( n ) g ( n ) ∗ h ( n ) ∑ i − ∞ ∞ g ( i ) h ( n − i ) y(n) g(n) * h(n) \sum_{i -\infty}^{\infty}g(i)h(n-i) y(n)g(n)∗h(n)i−∞∑∞​…

向量与矩阵的卷积算法

由于我发现网上并没有关于向量与矩阵两者进行卷积计算的具体算法,所以我就跟各位网友分享一下我的观点。因为本人知识储备有限,对卷积的了解也很是肤浅,没有深入研究,所以有错误的地方还请大神们指正,小子不胜感激。 …

矩阵卷积、矩阵相乘的转化

两个矩阵卷积转化为矩阵相乘形式——Matlab应用(这里考虑二维矩阵,在图像中对应)两个图像模糊(边缘)操作,假设矩阵A、B,A代表源图像,B代表卷积模板,那么B的取值决定最后运算的结果。 Matlab中的…

矩阵卷积理解

为了验证后续矩阵卷积转化为矩阵相乘,这里给出的conv2的实例描述: 假设矩阵A(4*3)、B(2*3)如下: 首先,B需要旋转180, 命令旋转2次90即可: B rot90(rot90(B)…

什么是卷积

目录 卷积是什么鬼卷积为什么这么牛卷积神经网络是个啥 卷积是什么鬼 卷积(convolution) 卷积: f ( t ) ∗ g ( t ) ∫ f ( τ ) g ( τ ) d ( τ ) 卷积运算符号用 ∗ 号来表示 卷积:f(t)*g(t)\int{f(τ)g(τ)d(τ)}\\ 卷积运算符号用*号来表示 卷积…

二维卷积/矩阵卷积

二维卷积/矩阵卷积的计算方程 设有矩阵A和矩阵B,它们的卷积结果矩阵的元素可由下列公式计算得来: C(j,k)∑p∑qA(p,q)B(j−p1,k−q1) 其中的index只要在A,B中valid都要参与运算。 举例来说,令矩阵M为卷积核矩阵,矩阵…

如何计算矩阵的卷积

昨天立下flag,要开始学习深度学习,深度学习中十分重要的就是卷积神经网络,顾名思义,卷积神经网络中一定会用到卷积。喵哥在博友的一篇博文中看到卷积运算用于图像边缘检测的应用实例,博友十分细心的在截图上做了卷积的…

矩阵乘法实现卷积运算

1. 对于普通卷积运算,是使用滑动窗口实现卷积运算: 矩阵根据卷积核的大小进行,从左到右、从上到i下的移动,对应数据相乘再相加得到的数据为该区域的值。 ​​​​​​​ ​​​​​​​ 2.矩阵乘法实现卷积 原理:根据…

各种卷积操作及其矩阵运算

前言 简单来讲,卷积是一种函数和函数产生一个新函数的数学运算,该数学运算的自变量是两个函数f, g(连续或离散都可以,,定义域之外的部分记函数值填充为0),输出为一个函数h,满足 ,或者说,就是对…

矩阵卷积运算的具体过程

矩阵卷积运算的具体过程,很简单 最近在看图像处理,卷积运算这一块也查了很多,但是感觉都写的太复杂,我这里简单的写一下卷积到底是一个什么计算过程。 假设有一个卷积核h,就一般为3*3的矩阵: 有一个待处理…

矩阵卷积运算过程讲解

写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站,未来我们一起交流进步。 在爬虫处理验证码的过程中接触到矩阵卷积运算,关于该类运算,记录…

矩阵的卷积以及使用python计算方法

1、离散⼆维卷积公式 其中A为被卷积矩阵,K为卷积核,B为卷积结果,该公式中,三个矩阵的排序均从0开始。 卷积核、滤波器通常为较小尺寸的矩阵,比如3333、5555等,数字图像是相对较大尺寸的2维(多…

矩阵卷积

1. 矩阵的卷积运算主要用在图像处理中,假设输入信号为x[m,n],激活响应为h[m,n],则其卷积定义为: 2.如果矩阵的中心在边缘就要将原矩阵进行扩展,例如补0 3.卷积的计算步骤: (1) 卷积核绕自己的核心…