实验二离散时间信号的时域分析讲解

  • 格式:doc
  • 大小:187.05 KB
  • 文档页数:23

下载文档原格式

  / 56
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二离散时间信号的时域分析

陈一凡20112121006

一、实验目的:

学习使用MATLAB命令产生滑动平均滤波器;

学习使用MATLAB命令产生一个简单的非线性离散时间系统;

学习使用MATLAB命令产生线性与非线性系统;

学习使用MATLAB命令产生时不变系统和时变系统;

学习使用MATLAB命令产生线性时不变系统的冲激响应;

学习使用MATLAB命令产生线性时不变系统的级联;

学习使用MATLAB命令产生有限冲击响应系统的输出序列;

学习使用MATLAB命令产生线性时不变系统的冲击响应的绝对值之和;

学习使用MATLAB命令产生两个离散时间系统;

二、实验原理简述:

运用运算符和特殊符号,基本矩阵和矩阵控制,基本函数,数据分析,二维图形,通用图形函数,信号处理工具箱等命令,产生离散时间系统等。

三、实验内容与实验结果

1、产生并绘制一个滑动平均滤波器

运行程序

clf;

n=0:100;

s1=cos(2*pi*0.05*n);

s2=cos(2*pi*0.47*n);

x=s1+s2;

M=input('滤波器所需的长度=');

num=ones(1,M);

y=filter(num,1,x)/M;

subplot(2,2,1);

plot(n,s1);

axis([0,100,-2,2]);

xlabel('时间序号n');ylabel('振幅');

title('信号#1');

subplot(2,2,2);

plot(n,s2);

axis([0,100,-2,2]);

xlabel('时间序号n');ylabel('振幅');

title('信号#2');

subplot(2,2,3);

plot(n,x);

axis([0,100,-2,2]);

xlabel('时间序号n');ylabel('振幅');

title('输入信号');

subplot(2,2,4);

plot(n,y);

axis([0,100,-2,2]);

xlabel('时间序号n');ylabel('振幅'); title('输出信号'); axis ;

滤波器所需的长度=2 实验结果如图1所示 ans =

0 100 -2 2

50

100

-2

-101

2时间序号n 振幅

信号#1

50

100

-2

-101

2时间序号n 振幅

信号#2

50

100

-2-101

2时间序号n

振幅

输入信号

50

100

-2-101

2时间序号n

振幅

输出信号

图1

2、生成一个简单的非线性离散时间系统: 运行程序: clf;

n=0:200;

x=sin(2*pi*0.05*n)+1; x1=[x 0 0]; x2=[0 x 0]; x3=[0 0 x];

y=x2.*x2-x1.*x3; y=y(2:202); subplot(2,1,1) plot(n,x)

xlabel('时间序号n');ylabel('振幅'); title('输入信号') subplot(2,1,2) plot(n,y)

xlabel('时间序号n');ylabel('振幅'); title('输出信号'); 实验结果如图2所示

0204060

80100120140160180200

0.511.5

2时间序号n 振幅

输入信号

0204060

80100120140160180200

-0.5

0.5

1时间序号n

振幅

输出信号

图2

3.生成一个产生线性与非线性系统: 运行程序: clf; n=0:40; a=2;b=-3;

x1=cos(2*pi*0.1*n); x2=cos(2*pi*0.4*n); x=a*x1+b*x2;

num=[2.2403 2.4908 2.2403]; den=[1 -0.4 0.75]; ic=[0 0];

y1=filter(num,den,x1,ic); y2=filter(num,den,x2,ic); y=filter(num,den,x,ic); yt=a*y1+b*y2; d=y-yt;

subplot(3,1,1) stem(n,y);

ylabel('振幅');

title('加权输入:a\cdot x_{1}[n]+b\cdot x_{2}[n]的输出'); subplot(3,1,2) stem(n,y);

ylabel('振幅');

title('加权输出t:a\cdot y_{1}[n]+b\cdot y_{2}[n]'); subplot(3,1,3) stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差信号'); 实验结果如图3所示

5

10

15

20

25

30

35

40

-40-20020振幅

加权输入:a ⋅ x 1[n]+b ⋅ x 2[n]的输出

0510152025303540

-50

050

振幅

加权输出t:a ⋅ y 1[n]+b ⋅ y 2[n]

051015

2025303540

-5

05

x 10

-15

时间序号n

振幅

差信号

图3

4、产生一个时不变系统和时变系统: 运行程序: clf;

n=0:40;D=10;a=3.0;b=-2;

x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n); xd=[zeros(1,D) x];

num=[2.2403 2.4908 2.2403]; den=[1 -0.4 0.75]; ic=[0,0];

y=filter(num,den,x,ic);