文章目录

  • 1 内容简介
  • 2 符号说明
  • 3 线性卷积及其矩阵表达
  • 4 圆周卷积及其矩阵表达

1 内容简介

介绍了两个有限长离散序列的线性卷积与圆周卷积的表达式,与其矩阵表达,这会有利于运算。
这部分内容源自于信号课程,由于老师的课件过于省略,讲解也有点抽象,还是靠自己动手算一算来得好。

2 符号说明

令x[n],h[n]分别为长度M,N的有限长离散序列。
为了便于矩阵表达,也用xxx与hhh表达序列的对应列向量,为了便于表述,下面不区分“序列”与“向量”。
定义 hN0(k)h^0_N(k)hN0​(k)为序列h补充0延长至长度N,并圆周移位k。
例如 x=[1,2,3]Tx=[1,2,3]^Tx=[1,2,3]T,那么 x40(2)=[3,0,1,2]Tx^0_4(2)=[3,0,1,2]^Tx40​(2)=[3,0,1,2]T。
因此h的无限长补零序列可以记为h∞0h^0_{\infty}h∞0​。
由于这样产生的序列仍然是离散序列,所以仍然使用xN0(k)[n]x^0_N(k)[n]xN0​(k)[n]表达对第n个元素的访问。

由此可定义卷积矩阵C(h)(M×N)C(h)_{(M\times N)}C(h)(M×N)​
C(h)M×N=[hM0(0)hM0(1)⋯hM0(N−1)]C(h)_{M\times N}=\left[ \begin{matrix} h^0_M(0)&h^0_M(1)&\cdots&h^0_M(N-1) \end{matrix} \right] C(h)M×N​=[hM0​(0)​hM0​(1)​⋯​hM0​(N−1)​]
显然M与N对应矩阵的行列数,也决定了矩阵的构造。
依然以x=[1,2,3]Tx=[1,2,3]^Tx=[1,2,3]T为例,有
C(x)4×3=[103210321032]C(x)_{4\times 3}=\left[ \begin{matrix} 1 & 0 & 3 \\ 2 & 1 & 0 \\ 3 & 2 & 1 \\ 0 & 3 & 2 \\ \end{matrix} \right] C(x)4×3​=⎣⎢⎢⎡​1230​0123​3012​⎦⎥⎥⎤​
直观上非常好理解。

3 线性卷积及其矩阵表达

对于长度分别为M,N的有限长离散序列x[n],h[n],线性卷积表述为
x[n]∗h[n]=Σm=−∞+∞x∞0[m]⋅h∞0[n−m]x[n]*h[n]=\Sigma_{m=-\infty}^{+\infty} x^0_{\infty}[m]\cdot h^0_{\infty}[n-m] x[n]∗h[n]=Σm=−∞+∞​x∞0​[m]⋅h∞0​[n−m]
其实就是补零的无限长序列做个卷积和。
先考虑有限长序列的形态特征再相乘求和实在是一件麻烦的事情,矩阵表述的意义就是让结果更简单,经过简单的计算易得到:
x∗h=C(h)(M+N−1)×Mx=C(x)(M+N−1)×Nhx*h=C(h)_{(M+N-1)\times M}x=C(x)_{(M+N-1)\times N}h x∗h=C(h)(M+N−1)×M​x=C(x)(M+N−1)×N​h
举个例子,令x=[1,2,3]Tx=[1,2,3]^Tx=[1,2,3]T,h=[2,1,0,1]Th=[2,1,0,1]^Th=[2,1,0,1]T,做线性卷积运算有
x∗h=[100021003210032100320003][2101]=[258423]x*h=\left[ \begin{matrix} 1 & 0 & 0 & 0\\ 2 & 1 & 0 & 0\\ 3 & 2 & 1 & 0\\ 0 & 3 & 2 & 1\\ 0 & 0 & 3 & 2\\ 0 & 0 & 0 & 3\\ \end{matrix} \right] \left[ \begin{matrix} 2 \\ 1 \\ 0 \\ 1 \\ \end{matrix} \right]=\left[ \begin{matrix} 2 \\ 5 \\ 8 \\ 4 \\ 2\\ 3\\ \end{matrix} \right] x∗h=⎣⎢⎢⎢⎢⎢⎢⎡​123000​012300​001230​000123​⎦⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎡​2101​⎦⎥⎥⎤​=⎣⎢⎢⎢⎢⎢⎢⎡​258423​⎦⎥⎥⎥⎥⎥⎥⎤​
也可以写成
x∗h=[200120012101010001][123]=[258423]x*h=\left[ \begin{matrix} 2 & 0 & 0 \\ 1 & 2 & 0 \\ 0 & 1 & 2 \\ 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right] \left[ \begin{matrix} 1 \\ 2 \\ 3 \\ \end{matrix} \right]=\left[ \begin{matrix} 2 \\ 5 \\ 8 \\ 4 \\ 2\\ 3\\ \end{matrix} \right] x∗h=⎣⎢⎢⎢⎢⎢⎢⎡​210100​021010​002101​⎦⎥⎥⎥⎥⎥⎥⎤​⎣⎡​123​⎦⎤​=⎣⎢⎢⎢⎢⎢⎢⎡​258423​⎦⎥⎥⎥⎥⎥⎥⎤​
结果是一致的,可以看出来如果是进行手算的话,非常方便。

4 圆周卷积及其矩阵表达

定义h以N补零后做周期沿拓为h((n))Nh((n))_Nh((n))N​,RN(n)R_N(n)RN​(n)为长度为N的方波序列,那么N点圆周卷积可以表述为
x[n]⊛h[n]=(Σm=0N−1x[m]⋅h((n−m))N)RN(n)x[n]\circledast h[n]=(\Sigma_{m=0}^{N-1}x[m]\cdot h((n-m))_N)R_N(n) x[n]⊛h[n]=(Σm=0N−1​x[m]⋅h((n−m))N​)RN​(n)
以上是书上的定义,可以说是非常恶心了。
经过简单的运算,N点圆周卷积的矩阵可以表达如下
x[n]⊛h[n]=C(h)(N×M)x=C(x)(N×N)hx[n]\circledast h[n]=C(h)_{(N\times M)}x=C(x)_{(N\times N)}h x[n]⊛h[n]=C(h)(N×M)​x=C(x)(N×N)​h
举个例子,令x=[1,2,3]Tx=[1,2,3]^Tx=[1,2,3]T,h=[2,1,0,1]Th=[2,1,0,1]^Th=[2,1,0,1]T,做4点圆周卷积运算有
x⊛h=[1032210332100321][2101]=[4884]x\circledast h=\left[ \begin{matrix} 1 & 0 & 3 & 2\\ 2 & 1 & 0 & 3\\ 3 & 2 & 1 & 0\\ 0 & 3 & 2 & 1\\ \end{matrix} \right] \left[ \begin{matrix} 2 \\ 1 \\ 0 \\ 1 \\ \end{matrix} \right]=\left[ \begin{matrix} 4 \\ 8 \\ 8 \\ 4 \\ \end{matrix} \right] x⊛h=⎣⎢⎢⎡​1230​0123​3012​2301​⎦⎥⎥⎤​⎣⎢⎢⎡​2101​⎦⎥⎥⎤​=⎣⎢⎢⎡​4884​⎦⎥⎥⎤​
也可以写为
x⊛h=[210121012101][123]=[4884]x\circledast h=\left[ \begin{matrix} 2 & 1 & 0 \\ 1 & 2 & 1 \\ 0 & 1 & 2 \\ 1 & 0 & 1 \\ \end{matrix} \right] \left[ \begin{matrix} 1 \\ 2 \\ 3 \\ \end{matrix} \right]=\left[ \begin{matrix} 4 \\ 8 \\ 8 \\ 4 \\ \end{matrix} \right] x⊛h=⎣⎢⎢⎡​2101​1210​0121​⎦⎥⎥⎤​⎣⎡​123​⎦⎤​=⎣⎢⎢⎡​4884​⎦⎥⎥⎤​
结果是一样的,可以发现矩阵运算要方便很多 ,如果你使用长度短的向量作为被乘向量,那么会有最小的计算量。
从表达式就能轻易发现,M+N-1点的圆周卷积运算就与线性卷积运算相同了,如果做大于M+N-1点的圆周运算,就会得到线性卷积结果的补零序列。

另外,圆周卷积有性质,对于长度都为N的序列x与h,有
DFT{x⊛h}=X⋅HDFT\{x\circledast h\}=X\cdot H DFT{x⊛h}=X⋅H
这篇文章不讲DFT,所以引用这个圆周卷积定理并不是说明它,而是想说明,虽然前面一篇文章给出了DFT的矩阵表达,这篇文章还给出了圆周卷积的矩阵表达,但是没办法通过矩阵表达简化定理的证明过程,因为C(h)(M×N)C(h)_{(M\times N)}C(h)(M×N)​这种矩阵太怪异了,它拆分不出更简洁的分量,如果要证明还是只能拆成求和的形式去证明。

线性卷积,圆周卷积的矩阵表达相关推荐

  1. [Matlab] 线性卷积圆周卷积代码实现

    1.线性卷积 周期卷积 圆周卷积的 关系: 2.Matlab实验及现象 圆周卷积: 1 %% 圆周卷积实例程序 2 %% Alimy 2014年11月21日 20:19:12 3 clc; 4 cle ...

  2. 三种常见的卷积概述(线性卷积周期卷积圆周卷积)

    note 2020-07-26搬运 下面的内容来自我的公众号:yhm同学 upd 2020-10-18 推荐学习辅助用书 江志红的<深入浅出数字信号处理> 有别于学院派的教材,这本书讲得比 ...

  3. matlab圆周卷积计算方法,线性卷积与圆周卷积的计算.doc

    线性卷积与圆周卷积的计算,线性卷积和圆周卷积,圆周卷积线性卷积,圆周卷积计算方法,线性卷积计算方法,线性卷积计算,圆周卷积,圆周卷积怎么算,圆周卷积例题,matlab圆周卷积 1.实验目的 通过编程, ...

  4. 线性卷积、周期卷积、圆周卷积------一篇弄懂

    谈到DSP,几个"卷积"总是要弄清楚的.这里我们讨论的是离散时间序列.本篇主要讲解几种"卷积"的定义及运算,定义理解上通俗易懂,例子也能举一反三. 卷积 线性卷 ...

  5. matlab验证线性卷积与圆周卷积的关系

    数字信号处理实验 一.线性卷积和圆周卷积的关系 1.线性卷积 设X1为N1点的有限长序列,X2为N2点的有限长序列(0 < n < N2) 则两序列的线性卷积为: 线性卷积y1(n)的长度 ...

  6. 用计算机计算线性卷积的基本规则,实验三_线性卷积与圆周卷积的计算.doc

    实验三_线性卷积与圆周卷积的计算 电信类课程试验报告 学 院:基础信息工程系 别:电子信息工程课程名称:数字信号处理姓 名:学 号:日 期:实验三实验名称:线性卷积与圆周卷积的计算一.实验目的 (1) ...

  7. 线性卷积与圆周卷积的计算方法

    现在很多工具里都已经为我们实现好了线性卷积和圆周卷积的函数,所以在实现方面简单调用一下即可.如matlab中, conv用于计算线性卷积,而cconv用来计算圆周卷积 在国内搜了很多计算圆周卷积的例子 ...

  8. C语言实现线性卷积和圆周卷积

    用C语言实现线性卷积和圆周卷积 已知x(n)={1,0,2,1,3},求x(n)∗x(n),x(n)⑤x(n),x(n)⑩x(n) #include"graphics.h" #in ...

  9. 标题DSP 数字信号处理:线性卷积、循环卷积、圆周卷积计算

    这学期学的 DSP 爆肝后顺利通过了,记录一下前期没搞懂的卷积的内容,主要是线性卷积计算方法和使用线性卷积计算圆周卷积的方法.为此学习了一下之前从来没有接触过的 LaTeX 语法,

最新文章

  1. 服务端工程师入门与进阶 Java 版
  2. Socket(套字节)编程,客户端 服务器端的发送消息
  3. WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
  4. IBASE category 03 download
  5. iis服务器修改内存,修改IIS的虚拟内存
  6. 进入多个页签_俄罗斯学生落地签如何办理?
  7. [黑金原创教程][连载][iBoard 电子学堂][第八卷 设计任意波发生器]第三篇 直接数字合成(DDS)原理...
  8. Latex安装与使用
  9. python电子表格类_python合并同类型excel表格的方法
  10. 互联网金融的分类监管主体
  11. 单片机C语言GRB888和RGB565的互相转换
  12. Android 本地图片相册选择
  13. javaScript有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
  14. xshell中重启指令_远程服务器Xshell的使用 -- 重启服务器操作 和 linux的常用命令...
  15. 服务器无法远程访问的原因有哪些
  16. 代码注释生成文档之Doxygen 附说明+下载连接
  17. XHCI注册过程和设备接入识别
  18. VMware虚拟机中安装win10步骤及所遇到的问题
  19. 基于TWL6032 PWM控制液晶背光亮度
  20. C++标准程序库(学习笔记)

热门文章

  1. TS - 问题解决力 - 下篇
  2. 计算机打游戏的硬件,电脑玩游戏主要看显卡吗?小白装机硬件选择误区 (全文)...
  3. 《Mahout实战》
  4. 转-IE浏览器自动配置代理脚本-Proxy.PAC文件及PAC相关语法
  5. 用C++画心形曲线: 送给母亲的心(母亲节2020.5.10)
  6. 个人常用提高办公效率软件
  7. gops 是怎么和 Go 的运行时进行交互的?
  8. 解决方案|电源适配器自动测试系统ATECLOUD-Power
  9. 现学现卖做一个炫酷的动态背景页面
  10. 多方位深度剖析诺基亚N78新特性(续)