实验二离散时间信号的时域分析讲解 下载本文

内容发布更新时间 : 2024/5/29 7:56:49星期一 下面是文章的全部内容请认真阅读。

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

陈一凡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

信号#12121信号#2振幅0-1-2振幅050时间序号n输入信号1000-1-2050时间序号n输出信号1002121振幅0-1-2050时间序号n100振幅0-1-2050时间序号n100

图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所示

输入信号21.5振幅10.50020406080100120时间序号n输出信号14016018020010.5振幅0-0.5020406080100120时间序号n140160180200

图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;