博主最近再学数字信号处理,发现线性卷积与循环卷积这块有点子混乱,现给大家梳理一下,供大家参考和学习。
在讲线性卷和循环卷积之前,我想先给大家引入“卷积”的概念,相信有的小伙伴还没有真正理解卷积的意义,一篇文章帮你搞懂。
目录
一、卷积
1、卷积的含义
卷积是一种数学运算,它是通过两个函数生成第三个函数的一种特殊积分运算。卷积的本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。卷积的“卷”,指的是函数的翻转,从g(t)变成g(-t)的这个过程;同时,“卷”还有滑动的意味在里面。卷积的“积”,指的是积分/加权求和。
说完了,是不是很迷糊,下面我给大家举个恰到好处的例子。。。。。
比如说老板命令张三干活,张三却到楼下打台球去了,后来被老板发现,他非常气愤,扇了张三一巴掌(注意,这就是输入信号,脉冲),于是张三的脸上会渐渐地(贱贱地)鼓起来一个包,张三的脸就是一个系统,而鼓起来的包就是张三的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要一些假设来保证论证的严谨:假定张三的脸是线性时不变系统,也就是说,无论什么时候老板打张三一巴掌,打在张三脸的同一位置(这似乎要求张三的脸足够光滑,如果张三长了很多青春痘,甚至整个脸皮处处连续处处不可导,那难度太大了,我就无话可说了哈哈),张三的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了!
如果张三每天都到地下去打台球,那么老板每天都要扇张三一巴掌,不过当老板打张三一巴掌后,5分钟就消肿了,所以时间长了,张三甚至就适应这种生活了……如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇张三的过程,这样问题就来了,第一次扇张三鼓起来的包还没消肿,第二个巴掌就来了,张三脸上的包就可能鼓起来两倍高,老板不断扇张三,脉冲不断作用在张三脸上,效果不断叠加了,这样这些效果就可以求和了,结果就是张三脸上的包的高度随时间变化的一个函数了(注意理解);如果老板再狠一点,频率越来越高,以至于都辨别不清时间间隔了,那么,求和就变成积分了。可以这样理解,在这个过程中的某一固定的时刻,张三的脸上的包的鼓起程度和什么有关呢?和之前每次打张三都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积,卷积之后的函数就是张三脸上的包的大小随时间变化的函数。本来张三的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?反映到剑桥大学的公式上,f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就ok了,大家说是不是这个道理呢?我想这个例子已经非常形象了,你对卷积有了更加具体深刻的了解了吗?
2、卷积定义式
3、卷积的重要性质
频域相乘等于时域卷积
频域卷积等于时域相乘
二、线性卷积
1、线性卷积的含义
线性卷积是一种数学运算,它是卷积的一种特殊情况。在信号处理中,线性卷积是指两个离散时间信号的卷积,它是两个离散时间信号的点乘和的总和。线性卷积的本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。
2、线性卷积定义式
3、计算方法:对位相乘相加
我们将两个序列排成两行,且将各自n最大的序列值对齐(按右端对齐),然后作乘法运算,但是不要进位,最后将同一列的乘积值相加即得到卷积和结果。举个例子。。。
三、圆周卷积
1、圆周卷积的含义
圆周卷积是一种在离散域上对信号进行卷积的方法,通常用于处理周期性信号。
2、圆周卷积定义式
3、计算方法(推荐最后一种方法)
(1)定义法
先把要进行循环的序列x2写成矩阵形式(由于循环卷积不满足交换律,注意先后顺序),把x2以y轴为对称轴翻转,翻转后进行周期延拓。在矩阵的第一行记录下此时0-3点的值。第二行记录下右移1位之后0-3点的值。以此类推,写出整个矩阵,与x1向量相乘,即得结果。计算过程完全符合公式。
(2)快速矩阵法
按列来观察,第一列是1234,第二列把4往前挪到首位,以此类推,写出整个矩阵。考虑8次循环卷积时,只需要注意补上0即可。
(3)对位相乘修正区间法
先算出对位相乘相加序列,然后根据循环区间修正结果。若循环区间为4,则把4之后的序列搬移到前面,两序列求和即得最终结果。
规律:如果当循环卷积长度L≥N+M-1时,循环卷积和线性卷积结果一致
重点!!!需要格外注意原始序列有无需要平移的情况