实验一 离散时间信号分析

实验一 离散时间信号分析

班级      学号   

姓名          日期      

一、实验目的

掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。

二、实验原理

1.序列的基本概念

离散时间信号在数学上可用时间序列来表示,其中代表序列的第n个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。

2.常用序列

常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。

3.序列的基本运算

序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。

4.序列的卷积运算

=-=å¥-¥=

上式的运算关系称为卷积运算,式中*代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。

(1)反褶:先将的变量换成,变成,再将以纵轴为对称轴反褶成

    2)移位:将移位,得。当为正数时,右移n位;当n为负数时,左移位。

3)相乘:将的对应点值相乘。

4)求和:将以上所有对应点的乘积累加起来,即得

三、主要实验仪器及材料

微型计算机、Matlab6.5 教学版、TC 编程环境。

四、实验内容

1)用Matlab C语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序;

2)画出画出两个序列运算以后的图形;

3)对结果进行分析;

4)完成实验报告。

五、实验结果

六、实验总结

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

五、实验结果

(1) 绘制基本序列

新建脚本文件impDT.m

function y=impDT(n)

y=(n==0)

在命令窗口输入并运行:

n=-5:5;

x=impDT(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title('单位采样序列')

axis([-5 5 -0.1 1.1])

运行后的图形如下所示:

 

(2) 单位阶跃序列

新建脚本文件uDT.m

function y=uDT(n)

y=n>=0

在命令窗口输入并运行:

n=-4:4;

x=uDT(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title(‘单位阶跃序列’)

axis([-4 4 -0.1 1.1])

运行后的图形如下所示:

 

(3) 矩形序列

新建脚本文件uDT.m

function y=uDT(n)

y=n>=0

在命令窗口输入并运行:

n=-10:10;

x=uDT(n)-uDT(n-5);

stem(n,x,'fill'),xlabel('n'),grid on;

title(‘矩阵序列’)

axis([-10 10 -0.1 1.1])

运行后的图形如下所示:

 

 

(4) 指数序列

在命令窗口输入并运行:

n=-5:5;

a1=1.7;a2=-1.7;a3=0.2;a4=-0.2;

x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;

subplot(221);

stem(n,x1,'fill'),grid on;

xlabel('n');title('x(n)=1.7^n')

subplot(222);

stem(n,x2,'fill'),grid on;

xlabel('n');title('x(n)=(-1.7)^n')

subplot(223);

stem(n,x3,'fill'),grid on ;

xlabel('n');title('x(n)=0.2^n')

subplot(224);

stem(n,x4,'fill'),grid on;

xlabel('n');title('x(n)=(-0.2)^n')

运行后的图形如下所示:

 

(5) 正弦序列

在命令窗口输入并运行:

 n=-15:15;

x=sin(pi/5*n);

stem(n,x,'fill'),xlabel('n'),ylabel('x(n)'),grid on;

title('正弦序列')

axis([-12 12 -1.5 1.5])

运行后的图形如下所示:

 

2、序列间的基本运算

(1) 单位采样与单位阶跃序列的相加

在命令窗口输入并运行:

                    n=-7:7;

x=impDT(n);

axis([-3 4 -0.5 1.5]);

x=uDT(n);

axis([-8 8 -0.1 2.1]);

x=impDT(n)+uDT(n);

stem(n,x,'fill'),xlabel('n'),grid on;

title('单位阶跃与单位采样序列求和')

运行后的图形如下所示:

 

(2) 相乘

在命令窗口输入并运行:

n1=-1:4;

n2=-2:5;

x1=[1,2,0,-1,-2,0];

x2=[-1,1,-1,0.8,0,-1,3,1];

[y,n]=seqmult(x1,n1,x2,n2);

subplot(221);

stem(n1,x1,'.');grid;xlabel('n1');ylabel('y1)

subplot(222);

stem(n2,x2,'');grid;xlabel('n2');ylabel('y2')

subplot(212);stem(n,y,'.');grid;

title('两序列相乘后的图片');

xlabel('n');ylabel('y');

运行后的图形如下所示:

 

 

(3) 卷积

在命令窗口输入并运行:

convwthn.m文件

function[y,ny] = convwthn(x,xn,h,hn)

y = conv(x,h);

yn1=xn(1) + hn(1);

yn2=xn(end) + hn(end);

ny=[yn1:yn2];

 

fx>>x=[1,2,3,-1,-2];xn=-1:3;

h=[2,2,1,-1,4,-2];hn=-3:2

[y,yn]=convwthn(x,xn,h,hn);

stem(yn,y,'fill');xlabel('n');ylabel('y(n)');grid on;

title('单位阶跃与单位采样信号的卷积');

运行后的图形如下所示:

 

 

(4) 移位

在命令窗口输入并运行:

n = -2:3;

x= uDT(n) - uDT(n + 1)

m = -n;

m1 = m -1;

subplot(211);

stem(m,x,'fill'),xlabel('n');grid on

title('移位之前的图片');

axis([-5 5 -3 3])

subplot(212);

stem(m1,x,'fill'),xlabel('n');grid on

title('移位之后的图片');

axis([-5 5 -3 3])

运行后的图形如下所示:

 

(5) 反转

在命令窗口输入并运行:

n = -3:3;

h= uDT(n) - uDT(n-2)

subplot(211);

stem(n,h,'fill'),xlabel('n');grid on

title('反转之前的图片');

axis([-4 4 -1 3])

m = -n;

subplot(212);

stem(m,h,'fill'),xlabel('m');grid on

title('反转之后的图片');

axis([-4 4 -1 3])

运行后的图形如下所示:

 

 

六.实验总结

在此次试验中,我学会了使用Matlab绘制基本的单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等图像,而且掌握了两个序列的相加、相乘、移位、反褶、卷积等基本运算。

 

 

你可能感兴趣的:(数字信号)