(数字信号处理)实验报告
实验名称  实验二 离散信号的卷积和                            实验时间            年        月    日专业班级          学    号            姓    名      成    绩        教师评语:                                一、实验目的
1、掌握两个离散信号卷积和的计算方法和编程技术。
2、进一步熟悉用MATLAB 描绘二维图像的方法。
二、实验原理与计算方法
两个离散序列x(n)与y(n)的卷积和f(n)定义为
∑∞
-∞
=-=
*=m m n y m x n y n x n f )
()()()()(由于通常信号处理中所碰到的都是有始信号或有限时间信号,因此在实际计算
卷积和时,求和是在有限范围内进行的。计算过程中上下限的选取和所得结果的分布区间取决于参与卷积的两个序列,下面将分别进行讨论:1、两个从n = 0开始的序列和的卷积和
)()()(n u n x n x =)()()(n u n y n y = 
(1)
∑∑=∞-∞=-=--=
n
m m n u m n y m x m n u m n y m u m x n f 0)
()]()([)()()()()(上式右边因子u(n)表示卷积和的结果也是一个从n = 0开始的序列。
2、从n =
n1开始的序列和从n = n2开始的序列
)()()(1n n u n x n x -=的卷积和,其中n1和n2为任意整数。
)
()()(2n n u n y n y -=  (2)
∑∑-=∞
-∞
=---=----=
2
1
)
()]()([)()()()()(21
2
1
n n n m m n n
n u m n y m x n m n u m n y n m u m x n f 上式右边因子u(n-n1-n2)表示卷积和是一个从n = n1+n2开始的序列。3、从n = n1开始的长度为N1的加窗序列和从n = n2开始的长
)
()()(1n w n x n x N =度为N2的加窗序列
的卷积和,其中
)
()()(2n w n y n y N =   
⎩⎨⎧-+≤≤=otherwise          0  1
1  )(1111N n n n n w N ⎩⎨⎧-+≤≤=otherwise          0  1          1  )(2222
N n n n n w N
则   
∑∞
-∞
=--=
m N N m n w m n y m w
m x n f )
()()()()(21(3)
所得卷积和也是一个加窗序列,从n = n1+ n2开始,长度为N1+ N2-1。
MATLAB 提供了一个内部函数conv(x,h)用来计算两个有限长度序列的卷积,该函数得到的卷积结果默认从n=0开始,因此当参与卷积的两个序列的起始位置不是n=0时,则由该函数得到的计算结果将出现错误,此时需要重新定义结果的位置向量。
由以上卷积运算的原理可知,两有限长序列卷积后仍为有限长序列,长度为两序列长度之和减1,结果的起始位置为两序列起始位置之和,截止位置为两序列截止位置之和。据此,可以得到卷积结果的位置向量。实验内容及结果
(1) 根据(1)式计算两个从n = 0开始的序列和的卷积
)()(n u n x =)
()(n u e
A n y an
-=和,其中A=40,a = 0.5。取50个样值点,作出序列、及卷积和f(n)的)(n x )(n y 图像。
(2) 根据(3)式计算两个有限长序列和
的卷积和,其
)
()(1n w n x N =)(8)(2n w n
matlab 下载n y N =
  ⎩⎨⎧≤≤=otherwise          0  910-          1  )(1n n w N ⎩⎨
⎧≤≤=otherwise
0  24
5          1  )(2n n w N 作出序列x(n)、y(n)及卷积和f(n)的图像。
结果如下:
第一题:首先定义一个样值点为50,从0开始的阶跃信号,具体如下:function x = stepseq(n0,n1,n2)if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('arguments must satisfy n1 <= n0 <= n2')end
n = [n1:n2];
x = [(n-n0) >= 0];
然后根据题目要的来定义参数和编写代码,具体如下:figure(1)n=0:50;
x=stepseqi(0,0,50)b=40.*exp(-0.5.*n).*x;c=conv(x,b);figure(1);stem(n,x);
title('u(n)序列的图像')
figure(2);
stem(n,b);
title('y(n)序列的图像') figure(3);
stem(c);
title('卷积和f(n)的图像')实验结果如下:
第二题:首先定义阶跃函数,具体如下:function [n,x] = stepseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('arguments must satisfy n1 <= n0 <= n2')
end
n = [n1:n2];
x = [(n-n0) >= 0];
然后根据题意编写代码,具体如下:figure(1)
[n,x]=stepseq(-10,-10,9)
subplot(3,1,1);
stem(n,x,'.');
title('x(n)图像')
[n,y]=stepseq(5,5,24)
y=(n./8)
subplot(3,1,2);
stem(n,y,'.');
title('y(n)图像')
[n,g]=stepseq(-5,-5,33)
g=conv(x,y)
subplot(3,1,3);
stem(n,g,'.');
title('f(n)图像')
结果如下: