不知道为什么很多人将如此简单点的问题,回答得如此之复杂,难道真是那句话,什么是教授,教授就是将人人都懂的问题,解释得人人都听不懂,看来很多学生继承了这种传统,这是教育的悲哀!
什么是卷积,为什么要用卷积?
原因很简单,任何一个输入信号都可以看成是一个个冲激信号的叠加,那么对应的输出也可以看做是一个个冲激响应的叠加
将这一个个冲激响应叠加起来就是一个卷积吗!
之所以引入卷积,是因为引入了冲激,将这些冲激响应叠加起来,就是卷积
基本数学原理
我们假设有两个长度有限的任意序列a(n)和b(n),其中a(n)和b(n)的具体数学表达式可以看下图一。那么这两个有限长序列的卷积就应该为c(n)=a(n)b(n),其具体表达式请参看一下图二。
2
相关函数指令
matlab中的conv和deconv指令不仅可以用于多项式的乘除运算,还可以用于两个有限长序列的卷积和解积运算。
matlab提供的函数conv,语法格式:w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量。如果向量u和v的长度分别为n和m,则向量w的长度为n+m-1如果向量u和v是两个多项式的系数,则w就是这两个多项式乘积的系数。下面我们看一下deconv指令。功能:求向量反褶积和进行多项式除法运算。语法格式:[q,r]=deconv(v,u)
,参数q和r分别返回多项式v除以多项式u的商多项式和余多项式。具体实例请看下一步。
3
conv和deconv指令实例
具体实例请看下图,这里我们求多项式(x2+2x+1)与多项式(2x2+x+3)的积,再求积与(x2+2x+1)的商。需要注意的是向量c代表多项式(2x4+5x3+7x2+7x+3)。
end
两个有限长序列的卷积实例
具体序列的数学形式
在这一步我们将具体的有限长时间序列按数学方式显示,具体请看下图。
解法一:循环求合法求卷积
在本例中我们将按照原理方法第一步中图二的方式进行卷积计算,即循环求合法求卷积。具体的代码及结果请看下图。图一是是生成有限长度时间序列,图二是根据原理方法第一步中图二的方式即循环求合法求卷积的具体代码,图三是是图二的计算结果。
解法二:0起点序列法
下面就说一下第二种方法,即“0起点序列法”,所采用的指令就是我们在原理方法中介绍的conv函数指令。具体代码看下图。
解法三:非平凡区间序列法
下面就说一下第二种方法,即“0起点序列法”,所采用的指令就是我们在原理方法中介绍的conv函数指令。具体代码看下图。图一为计算代码,图二为计算结果。
绘图比较
这一步我们将解法二和解法三的计算结果绘制在一张中进行比较,其中第一幅是“0起点法”的计算结果图,第二幅是“非平凡区间法”的计算结果图。其中画图代码为:
subplot(2,1,1),stem(kc,c),text(20,6,'0
起点法')
%画解法二的结果
cc=[zeros(1,kc(1)),c];
%补零是为了两子图一致
subplot(2,1,2),stem(kc,cc),text(18,6,'非平凡区间法')
%画解法三的结果
xlabel('n')
6
小结
有以上可以得出如下结论:
1、“解法三”最简洁、通用;
2、“解法二”使用于序列起点时刻n1或(和)m1小于0的情况,比较困难;
3、“解法一”最繁琐,效率低下。
两个奇函数卷积后是偶函数
g(x),h(x)是奇函数
f(x)=g(x)h(x)
f(-x)=g(-x)h(-x)=-g(x)(-h(x))=g(x)h(x)=f(x)
偶函数
两个函数,翻转其中一个,再滑动求积分,叫卷积;不翻转就滑动求积分,叫做互相关。如果其中之一是偶函数,那么卷积和互相关效果相同。从定义上看,翻转这个 *** 作就是一步 *** 作而已,具体的物理意义只能在应用中找到。
最直观的理解就是:卷积是拉链 *** 作。请想象一条拉链,把它底端固定在一起,上边左右完全拉开,扯直,使得固定端处于中心,那么左边这半条的顶端,相对于右边半条来说完全相反。而当你保持其中一边不动,把拉链拉起来的 *** 作,会使得另一边翻转过来,也就是乘了负一。以信号处理为例,卷积意味着把输入信号在时间轴上翻转,然后跟信号处理系统的描述方程叠加积分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)