数字信号处理实验一
- 格式:doc
- 大小:301.46 KB
- 文档页数:11
实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期
一、实验目的
掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。
二、实验原理
1.序列的基本概念
离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。
2.常用序列
常用序列有:单位脉冲序列(单位抽样))
(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算
序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。
4.序列的卷积运算
∑∞-∞==-=
m n h n x m n h m x n y )(*)()()()(
上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。
(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。
三、主要实验仪器及材料
微型计算机、Matlab6.5 教学版、TC 编程环境。
四、实验内容
(1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序;
(2)画出两个序列运算以后的图形;
(3)对结果进行分析;
(4)完成实验报告。
五、实验结果
六、实验总结
1.用Matlab 编制两个序列的相加
例1:序列a=[1,-1,3,2,0,-3],序列b=[2,3,-1,2,1,-2],求两序列之和。
序列a与序列b相加的加法的程序:
a=[1,-1,3,2,0,-3];
b=[2,3,-1,2,1,-2];
sum=a+b;
m=length(sum)-1;
n=0:1:m;
stem(n,sum); %绘制二维离散数据的火柴杆图
序列a与序列b相加后的图形为:
结果分析:通过上图可知,序列a与序列b相加的和sum=[3,2,2,4,1,-5]。理论计算序列a与序列b的和为sum1=[3,2,2,4,1,-5]。其与实验值相同,说明实验结果无误,代码正确。
2.用Matlab 编制两个序列的相乘
例2:仍旧以例1中的序列为例,求两个序列的乘积。
序列a与序列b相乘的乘法的程序:
a=[1,-1,3,2,0,-3];
b=[2,3,-1,2,1,-2];
mul=a.*b;
m=length(mul)-1;
n=0:1:m;
stem(n,mul);
序列a与序列b相乘后的图形:
分析结果:通过上图可知,序列a和序列b的乘积mul=[2,-3,-3,4,0,6],而理论值mul1=[2,-3,-3,4,0,6]。说明实验值跟理论值相同,代码正确。
3.用Matlab 编制两个序列的移位
例3:实现例1中序列的移位。
序列a与序列b的移位的代码:
a=[1,-1,3,2,0,-3];
b=[2,3,-1,2,1,-2];
yiwei=circshift(a,b); %circshift为循环移位函数%
m=length(yiwei)-1;
n=0:1:m;
stem(n,yiwei);
序列a与序列b的移位后的图像:
结果分析:通过上图可知移位的结果yiwei=[2,0,-3,1,-1,3],而理论移位结果yiwei1=[2,0,-3,1,-1,3]。实验值和理论值相同,说明实验结果正确,代码无误。
4.用Matlab 编制两个序列的反褶
例4:实现例1序列a的反褶。
序列a的反褶的代码:
a=[1,-1,3,2,0,-3];
m=length(a)-1;
n=0:-1:-m;
u=0:1:m;
stem(u,a,'-r');
stem(n,a);
序列a反褶前的图像:
序列a反褶后的图像:
结果分析:通过反褶前后图像的对比,说明序列反褶正确,代码无误。
5.用Matlab 编制两个序列的卷积
例5:求例1中序列a与序列b的卷积。
序列a与序列b的卷积的代码:
a=[1,-1,3,2,0,-3];
b=[2,3,-1,2,1,-2];
juanji=conv(a,b);
m=length(juanji)-1;
n=0:1:m;
stem(n,juanji,'-r');
序列a与序列b卷积后的图像:
结果分析:两个序列卷积之后的理论值juanji1=[2,1,2,16,2,-5,0,-1,-10,-3,6]。实验值为:juanji =
Columns 1 through 10
2 1 2 16 2 -5 0 -1 -10 -3
Column 11
6
,其与理论值相同,实验结果正确,代码无误。