连载3:利用matlab计算卷积
摘自·通信人家园·陈爱军
$$\qquad$$表面上看,卷积的计算公式很复杂,计算过程也很麻烦(反褶,平移,相乘,求和),实际上使 用 Matlab 很容易计算。 $$\qquad$$以上面的 a(n) = [1 1],b(n) = [1 2 5]的卷积计算为例:
a = [1 1];
b = [1 2 5];
c = conv(a,b);
c
$$\qquad$$后面很多地方的讲解都会用到 matlab,没用过 matlab 的同学,请到网上下载个 matlab 7.0,安装 后,将上面前 4 行内容拷贝到命令窗口中执行,即可得到上面的执行结果。 $$\qquad$$为了更好地理解卷积(多项式相乘,相当于系数卷积),我们用 matlab 画一下高中学过的杨辉 三角。 $$\qquad$$杨辉三角是一个由数字排列成的三角形数表,一般形式如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
$$\qquad$$其中每一横行都表示(a+b)^n(此处n=1,2,3,4,5,6,)展开式中的系数。 $$\qquad$$杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。
>> x=[1 1];y=[1 1];
>> y
y =
1 1
>> y=conv(x,y)
y =
1 2 1
>> y=conv(x,y)
y =
1 3 3 1
>> y=conv(x,y)
y =
1 4 6 4 1
>> y=conv(x,y)
y =
1 5 10 10 5 1
>> y=conv(x,y)
y =
1 6 15 20 15 6 1