MATLAB如何使用conv实现矩阵的卷积和多项式乘法
【语法说明】
C=conv(u,v):u和v必须为向量,其长度可以不相同,函数返回u与v的卷积。u、v可以为行向量或列向量,Y1与u保持一致。
C=conv(…,'shape'):用指定的参数 shape 返回卷积的一部分,可取的值如下:
(1)full:返回全部卷积,相当于C=conv(u,v),是默认值。
(2)same:返回与A大小相同的卷积中心部分。
(3)valid:仅仅返回没有用零填充时计算出的卷积。计算卷积时,边界部分需要用零填充。此时 length(C)等于 max(length(a) −max(0,length(b)−1),0)。
【功能介绍】实现向量卷积运算。多项式相乘可以用多项式系数向量的卷积实现,卷积运算满足交换律。
【实例】展开多项式(x 2 +x−1) (x 2 +2x+1)=x 4 +3x 3 +x 2 −x−1。
>> a=[1,1,-1]; % (x 2 +x-1)的第一种表示方法,高次在前
>> b=[1,2,1]; % (x 2 +2x+1)
>> c1=conv(a,b) % 展开多项式,高次在前
c1 =
1 3 2 -1 -1
>> a=[-1,1,1]; % (x 2 +x-1)的第二种表示方法,低次在前
>> c2=conv(a,b) % 展开多项式,低次在前
c2 =
-1 -1 2 3 1
【实例讲解】用向量表示多项式系数时,可以降幂排列或升幂排列。在本例中,输入参数的第一种表示方法是降幂排列,第二种表示方法是升幂排列,对应的展开结果与输入参数的幂次排列方法一致。