数字信号处理 实验作业离散LSI系统的时域分析.docx

上传人:b****6 文档编号:3836687 上传时间:2022-11-25 格式:DOCX 页数:17 大小:102KB
下载 相关 举报
数字信号处理 实验作业离散LSI系统的时域分析.docx_第1页
第1页 / 共17页
数字信号处理 实验作业离散LSI系统的时域分析.docx_第2页
第2页 / 共17页
数字信号处理 实验作业离散LSI系统的时域分析.docx_第3页
第3页 / 共17页
数字信号处理 实验作业离散LSI系统的时域分析.docx_第4页
第4页 / 共17页
数字信号处理 实验作业离散LSI系统的时域分析.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数字信号处理 实验作业离散LSI系统的时域分析.docx

《数字信号处理 实验作业离散LSI系统的时域分析.docx》由会员分享,可在线阅读,更多相关《数字信号处理 实验作业离散LSI系统的时域分析.docx(17页珍藏版)》请在冰豆网上搜索。

数字信号处理 实验作业离散LSI系统的时域分析.docx

数字信号处理实验作业离散LSI系统的时域分析

实验2离散LSI系统的时域分析

一、.实验目的:

1、加深对离散系统的差分方程、单位脉冲响应、单位阶跃响应和卷积分析方法的理解。

2、初步了解用MATLAB语言进行离散时间系统时域分析的基本方法。

3、掌握求解离散时间系统的单位脉冲响应、单位阶跃响应、线性卷积以及差分方程的程序的编写方法,了解常用子函数的调用格式。

二、实验原理:

1、离散LSI系统的响应与激励

由离散时间系统的时域分析方法可知,一个离散LSI系统的响应与激励可以用如下框图表示:

其输入、输出关系可用以下差分方程描述:

2、用函数impz和dstep求解离散系统的单位脉冲响应和单位阶跃响应。

例2-1已知描述某因果系统的差分方程为6y(n)+2y(n-2)=x(n)+3x(n-1)+3x(n-2)+x(n-3)

满足初始条件y(-1)=0,x(-1)=0,求系统的单位脉冲响应和单位阶跃响应。

解:

将y(n)项的系数a0进行归一化,得到

y(n)+1/3y(n-2)=1/6x(n)+1/2x(n-1)+1/2x(n-2)+1/6x(n-3)

分析上式可知,这是一个3阶系统,列出其bk和ak系数:

a0=1,a,1=0,a,2=1/3,a,3=0

b0=1/6,b,1=1/2,b,2=1/2,b,3=1/6

程序清单如下:

a=[1,0,1/3,0];

b=[1/6,1/2,1/2,1/6];

N=32;

n=0:

N-1;

hn=impz(b,a,n);

gn=dstep(b,a,n);

subplot(1,2,1);stem(n,hn,'k');

title('系统的单位序列响应');

ylabel('h(n)');xlabel('n');

axis([0,N,1.1*min(hn),1.1*max(hn)]);

subplot(1,2,2);stem(n,gn,'k');

title('系统的单位阶跃响应');

ylabel('g(n)');xlabel('n');

axis([0,N,1.1*min(gn),1.1*max(gn)]);

程序运行结果如图2-1所示:

图2-1

3、用函数filtic和filter求解离散系统的单位序列响应和单位阶跃响应。

例2-2已知描述某因果系统的差分方程为6y(n)-2y(n-4)=x(n)-3x(n-2)+3x(n-4)-x(n-6),满足初始条件y(-1)=0,x(-1)=0,求系统的单位脉冲响应和单位阶跃响应。

时间轴上N取32点。

注意:

原式非标准形式,必须化为标准形式后再列出系数b,a。

程序清单如下:

x01=0;y01=0;

a=[1,0,0,0,-1/3,0,0];

b=[1/6,0,-1/2,0,1/2,0,-1/6];

N=32;n=0:

N-1;

xi=filtic(b,a,0);

x1=[n==0];

hn=filter(b,a,x1,xi);

x2=[n>=0];

gn=filter(b,a,x2,xi);

subplot(1,2,1);stem(n,hn,'k');

title('系统的单位序列响应');

ylabel('h(n)');xlabel('n');

axis([0,N,1.1*min(hn),1.1*max(hn)]);

subplot(1,2,2);stem(n,gn,'k');

title('系统的单位阶跃响应');

ylabel('g(n)');xlabel('n');

axis([0,N,1.1*min(gn),1.1*max(gn)]);

程序运行结果如图2-2所示:

图2-2

4、用MATLAB实现线性卷积

1)用函数conv进行卷积运算:

求解两个序列的卷积和,关键在于如何确定卷积结果的时宽区间。

MATLAB提供的求卷积函数conv默认两个序列的序号均从n=0开始,卷积结果y对应的序列的序号也从n=0开始。

例2-3已知两个序列f1=0.8n(0

n1=0:

20;

f1=0.8.^n1;

subplot(2,2,1);stem(n1,f1,'filled');

title('f1(n)');

n2=0:

10;

N2=length(n2);

f2=ones(1,N2);

subplot(2,2,2);stem(n2,f2,'filled');

title('f2(n)');

y=conv(f1,f2);

subplot(2,1,2);stem(y,'filled');

程序运行结果如图2-3所示:

图2-3

2)非零起始序列的卷积运算:

当两个序列不是从0开始时,必须对conv函数稍加扩展。

由卷积原理可知,若待卷积的两个序列序号分别为{x(n);nx=nxs:

nxf},{h(n);nh=nhs:

nhf},则卷积和y(n)的序号起点和终点分别为:

nys=nxs+nhs,nyf=nxf+nhf。

据此可定义通用卷积函数convu:

function[y,ny]=convu(h,nh,x,nx)

nys=nh

(1)+nx

(1);nyf=nh(end)+nx(end);

y=conv(h,x);ny=nys:

nyf;

例2-4已知序列f1=0.5n(0

程序清单如下:

n1=0:

10;f1=0.5*n1;

n2=-2:

10;nt=length(n2);

f2=ones(1,nt);

[y,ny]=convu(f1,n1,f2,n2);

subplot(2,2,1);stem(n1,f1);

subplot(2,2,2);stem(n2,f2);

subplot(2,1,2);stem(ny,y);

程序运行结果如图2-4所示:

图2-4

3)卷积积分的动态过程演示:

为了更深入地理解序列卷积的原理,下面提供一段演示卷积和的动态过程的程序。

例2-5动态演示例2-3两个序列f1=0.8n(0

程序清单如下:

clf;

nf1=0:

20;

f1=0.8.^n1;

lf1=length(n1);

nf2=0:

10;

lf2=length(n2);

f2=ones(1,lf2);

m=max(lf2,lf1);

iflf2>lf1nf2=0;nf1=lf2-lf1;

elseiflf2

elsenf2=0;lf1=0;

end;

lt=m;

u=[zeros(1,lt),f2,zeros(1,nf2),zeros(1,lt)];

t1=(-lt+1:

2*lt);

f1=[zeros(1,2*lt),f1,zeros(1,nf1)];

hf1=fliplr(f1);

N=length(hf1);

y=zeros(1,3*lt);

fork=0:

2*lt

p=[zeros(1,k),hf1(1:

N-k)];

y1=u.*p;

yk=sum(y1);

y(k+lt+1)=yk;

subplot(4,1,1);stem(t1,u);

subplot(4,1,2);stem(t1,p);

subplot(4,1,3);stem(t1,y1);

subplot(4,1,4);stem(k,yk);

axis([-20,50,0,5]);holdon

pause

(2);

end

程序运行结果如图2-5所示:

图2-5

5、离散LSI系统时域响应的求解:

MATLAB提供了多种方法求解离散LSI系统的响应:

1)用conv函数进行卷积积分,求任意输入的系统零状态响应;

例2-6已知描述某因果系统的差分方程为6y(n)+2y(n-2)=x(n)+3x(n-1)+3x(n-2)+x(n-3),

满足初始条件y(-1)=0,x(-1)=0。

在该系统的输入端加一个矩形脉冲序列,其占空比为0.25,一个周期取16个采样点,求该系统的响应。

程序清单如下:

N=16;

n=0:

N-1;

x=[ones(1,N/4),zeros(1,3*N/4)];

subplot(2,2,1);stem(n,x);

a=[1,0,1/3,0,];

b=[1/6,1/2,1/2,1/6];

hn=impz(b,a,n);

subplot(2,2,2);stem(n,hn);

y=conv(x,hn);

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

程序运行结果如图2-6所示:

图2-6

2)用dlsim函数求任意输入的系统零状态响应;

例2-7已知某IIR数字低通滤波器的系统函数为

输入两个正弦叠加的序列

,求该系统的响应。

程序清单如下:

nx=0:

8*pi;

x=sin(nx/2)+sin(10*nx)/3;

subplot(3,1,1);stem(nx,x);

a=[1,-0.34319,0.60439,-0.20407];

b=[0.1321,0.3963,0.3963,0.1321];

nh=0:

9;h=impz(b,a,nh);

subplot(3,1,2);stem(nh,h);

y=dlsim(b,a,x);

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

程序运行结果如图2-7所示

图2-7

3)用filtic和filter函数求任意输入的系统完全响应。

例2-8已知描述某系统的差分方程为y(n)-1.5y(n-1)+0.5y(n-2)=x(n)n≥0,满足初始条件y(-1)=4,y(-2)=10,求系统输入为x(n)=(0.25)nu(n)时的零输入、零状态及全响应。

解为了更深入地理解filtic和filter函数的用法,先用经典法求得系统完全响应表达式:

,并编写程序绘出其图形,以便与用MATLAB函数求解的结果进行对比。

程序清单如下:

a=[1,-1.5,0.5];

b=1;

N=20;n=0:

N-1;

x=0.25.^n;

x0=zeros(1,N);

y01=[4,10];

xi=filtic(b,a,y01);

y0=filter(b,a,x0,xi);

xi0=filtic(b,a,0);

y1=filter(b,a,x,xi0);

y=filter(b,a,x,xi);

y2=((1/3)*(1/4).^n+(1/2).^n+(2/3)).*ones(1,N);

subplot(2,3,1);stem(n,x);

title('输入信号x(n)');

subplot(2,3,2);stem(n,y0);

title('系统的零输入响应');

subplot(2,3,3);stem(n,y1);

title('系统的零状态响应');

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

title('用filter求得的完全响应');

subplot(2,2,4);stem(n,y2);

title('经典法求得的完全响应');

程序运行结果如图2-8所示:

图2-8

.三、实验内容:

1、输入并运行例题程序,理解每一条语句的含义。

2、已知描述某离散LSI系统的差分方程为2y(n)-3y(n-1)+y(n-2)=x(n-1),分别用impz和dstep函数、filtic和filter函数两种方法求解系统的单位序列响应和单位阶跃响应。

x01=0;y01=0;

a=[1,0,3/2,0,1/2];

b=[0,0,1/2,0,0];

N=32;n=0:

N-1;

xi=filtic(b,a,0);%y(-1)=0

x1=[n==0];

hn=filter(b,a,x1,xi);

x2=[n>=0];%shengchengdanweijieyuexulie

gn=filter(b,a,x2,xi);

subplot(1,2,1);stem(n,hn,'k');

title('ϵͳµÄµ¥Î»ÐòÁÐÏìÓ¦');

ylabel('h(n)');xlabel('n');

axis([0,N,1.1*min(hn),1.1*max(hn)]);

subplot(1,2,2);stem(n,gn,'k');

title('ϵͳµÄµ¥Î»½×Ô¾ÏìÓ¦');

ylabel('g(n)');xlabel('n');

axis([0,N,1.1*min(gn),1.1*max(gn)]);

3、编写程序描绘下列序列的卷积波形:

(1)f1(n=u(n),f2(n)=u(n-2),(0≤n<10)

(2)x(n)=sin(n/2),h(n)=(0.5)n(-3≤n≤4П)

n1=-3:

4*pi;f1=sin(n1/2);

n2=-3:

4*pi;

f2=0.5.^n2;

[y,ny]=convu(f1,n1,f2,n2);

subplot(2,2,1);stem(n1,f1);

subplot(2,2,2);stem(n2,f2);

subplot(2,1,2);stem(ny,y);

4、已知某离散LSI系统的单位序列响应为h(n)=3δ(n-3)+0.5δ(n-4)+0.2δ(n-5)+0.7δ(n-6)-0.8δ(n-7)

求输入为x(n)=e-0.5nu(n)时的系统响应。

N=16;

n=0:

N-1;

x=exp(-0.5*n);

subplot(2,2,1);stem(n,x);

a=[1,0,0,0,0,0,0,0];

b=[0,0,0,3,0.5,0.2,0.7,-0.8];

hn=impz(b,a,n);

subplot(2,2,2);stem(n,hn);

y=conv(x,hn);

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

 

5、已知描述某离散LSI系统的差分方程为y(n)=0.7y(n-1)+2x(n)-x(n-2),求输入为x(n)=u(n-3)时的系统响应。

nx=0:

10;nt=length(nx)-3

x=[zeros(1,3),ones(1,nt)];

subplot(3,1,1);stem(nx,x);

a=[1,-0.7,0];

b=[2,0,-1];

nh=0:

10;h=impz(b,a,nh);

subplot(3,1,2);stem(nh,h);

y=dlsim(b,a,x);

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

四、实验预习:

1、认真阅读实验原理部分,明确实验目的,复习有关离散LSI系统的理论知识。

2、读懂实验原理部分的例题程序,熟悉与本实验有关的MATLAB函数。

3、根据实验内容预先编写实验程序,并思考本实验提出的有关MATLAB函数在调用时应注意哪些问题。

五、实验报告:

1、列写调试通过的实验程序,打印实验程序产生的曲线图形。

2、列出本实验提出的有关MATLAB函数在调用时应注意的问题。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1