您的当前位置:首页正文

离散时间系统的时域特性分析

2023-12-09 来源:客趣旅游网
数字信号处理实验报告

实验名称:离散时间系统的时域特性分析(实验一)专业班级:学生姓名:学

号:

指导教师:二○一三年月日

一、实验原理

一个离散时间系统是将输入序列变换成输出序列的一种运算。若以T[•]表示

这种运算,则一个离散时间系统y(n)=T[x(n)],离散时间系统中最重要,最常用的是“线性时不变系统”。

二、实验内容

考虑如下差分方程描述的两个离散时间系统:

系统1:y(n)=0.5*x(n)+0.27*x(n-1)+0.77*x(n-2)系统2:y(n)=0.45*x(n)+0.5*x(x-1)+0.45*x(n-2)+0.53*y(n-1)-0.46*y(n-2)

输入x(n)=cos(20*pi*n/256)+cos(200*pi*n/256)0≦n≦299

(1)编程求上述两个系统的输出,并分别画出系统的输入与输出波形。(2)编程求上述两个系统的冲激响应序列,并画出其波形。

(3)若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?

三、程序及输出结果(1)程序如下:

%系统1:y(n)=0.5*x(n)+0.27*x(n-1)+0.77*x(n-2)

%系统2:y(n)=0.45*x(n)+0.5*x(n-1)+0.45*x(n-2)+0.53*y(n-1)-0.46*y(n-2)

clf;%clf;用来清除图形的命令。一般在画图之前用。n=0:300;%产生300个步长为1的整数

x=cos(20*pi*n/256)+cos(200*pi*n/256);%x(n)的表达式num1num2den1den2

====

[0.50.270.77];[0.450.50.45];[1];

[1-0.53+0.46];

y1=filter(num1,den1,x);%计算出y1y2=filter(num2,den2,x);%计算出y2%画出输入和输出信号

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y1输入信号subplot(2,2,1);plot(n,x);

%生成一个2*2的窗口

xlabel('时间信号n');ylabel('信号幅度');title('y1输入信号');%y1输出信号

subplot(2,2,2);plot(y1);

xlabel('时间信号n');ylabel('信号幅度');title('y1输出信号');

%y2输入信号

subplot(2,2,3);plot(n,x);

%生成一个2*2的窗口

xlabel('时间信号n');ylabel('信号幅度');title('y2输入信号');%y2输出信号

subplot(2,2,4);plot(y2);

xlabel('时间信号n');ylabel('信号幅度');title('y2输出信号');

输出结果:

以上四个窗口为两个系统的输入与输出波形。(2)程序如下:

%系统1:y(n)=0.5*x(n)+0.27*x(n-1)+0.77*x(n-2)

%系统2:y(n)=0.45*x(n)+0.5*x(n-1)+0.45*x(n-2)+0.53*y(n-1)-0.46*y(n-2)

clf;n=30;num1num2den1den2

====

%clf;用来清除图形的命令。一般在画图之前用。%产生30的时间序列

[0.50.270.77];[0.450.50.45];[1];

[1-0.53+0.46];

y1=impz(num1,den1,n);%系统1的冲击响应y2=impz(num2,den2,n);%系统2的冲击响应

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%y1冲击响应

subplot(2,1,1);stem(y1);

%生成一个2*1的窗口

xlabel('时间信号n');ylabel('信号幅度');

title('系统1的冲击响应');grid;%显示网格%y2冲击响应

subplot(2,1,2);stem(y2);

xlabel('时间信号n');ylabel('信号幅度');

title('系统2的冲击响应');grid;

输出结果:

(3)程序如下:

系统2的线性系统判断程序

%系统1:y(n)=0.5*x(n)+0.27*x(n-1)+0.77*x(n-2)

%系统2:y(n)=0.45*x(n)+0.5*x(n-1)+0.45*x(n-2)+0.53*y(n-1)-0.46*y(n-2)clf;

%clf;用来清除图形的命令。一般在画图之前用。

n=0:30;%产生30个步长为1的整数a=2;b=-4;

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

%x为x[n]

num2=[0.450.50.45];den2=[1-0.53+0.46];y1=filter(num2,den2,x1);y2=filter(num2,den2,x2);

%计算出系统2的y1%计算出系统2的y2

y=filter(num2,den2,x);yt=a*y1+b*y2;%计算出系统2的yy为y[n]%y[n]=a*y1[n]+b*y2[n];

%画出输入和输出信号

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%系统2的线性系统判断subplot(2,1,1);%生成一个2*2的窗口stem(n,y);

xlabel('时间信号n');ylabel('信号幅度');subplot(2,1,2);stem(n,yt);

xlabel('时间信号n');ylabel('信号幅度');

title('系统2的线性系统判断');

输出结果:

分析:从上图可知,即y(n)=T[a*x1(n)+b*x2(n)]=a*T[x1(n)+b*T[x2(n)]],所以此系统是一个线性系统。

系统2的时不变系统判断程序

%系统1:y(n)=0.5*x(n)+0.27*x(n-1)+0.77*x(n-2)

%系统2:y(n)=0.45*x(n)+0.5*x(n-1)+0.45*x(n-2)+0.53*y(n-1)-0.46*y(n-2)clf;

n=0:30;D=10;

%clf;用来清除图形的命令。一般在画图之前用。%产生30个步长为1的整数

a=2;b=-4;

x1=cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;xd=[zeros(1,D)x];num2=[0.450.50.45];den2=[1-0.53+0.46];ic=[00];

y=filter(num2,den2,x,ic);%计算出系统2的yyd=filter(num2,den2,xd,ic);N=length(y);

y为y[n]

%x为x[n]

%生成新序列xd=x(n-D),延时D个单位

d=y-yd(1+D:N+D);%求y与yd的差值

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%系统2的时不变系统判断subplot(3,1,1);stem(n,y);

%生成一个3*1的窗口

xlabel('时间信号n');ylabel('信号幅度');title('输出y(n)');grid;

subplot(3,1,2);

stem(n,yd(1:length(y)));

xlabel('时间信号n');ylabel('信号幅度');

title('由于输入时延而产生的输出yd[n]');

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

xlabel('时间信号n');ylabel('信号幅度');title('差值信号');grid;

输出结果:

分析:由图可知,y(n-D)=T[x(n-D)],故此系统为时不变系统。

因篇幅问题不能全部显示,请点此查看更多更全内容