离散时间系统时域分析与仿真.docx

上传人:b****0 文档编号:10057381 上传时间:2023-05-23 格式:DOCX 页数:23 大小:250.17KB
下载 相关 举报
离散时间系统时域分析与仿真.docx_第1页
第1页 / 共23页
离散时间系统时域分析与仿真.docx_第2页
第2页 / 共23页
离散时间系统时域分析与仿真.docx_第3页
第3页 / 共23页
离散时间系统时域分析与仿真.docx_第4页
第4页 / 共23页
离散时间系统时域分析与仿真.docx_第5页
第5页 / 共23页
离散时间系统时域分析与仿真.docx_第6页
第6页 / 共23页
离散时间系统时域分析与仿真.docx_第7页
第7页 / 共23页
离散时间系统时域分析与仿真.docx_第8页
第8页 / 共23页
离散时间系统时域分析与仿真.docx_第9页
第9页 / 共23页
离散时间系统时域分析与仿真.docx_第10页
第10页 / 共23页
离散时间系统时域分析与仿真.docx_第11页
第11页 / 共23页
离散时间系统时域分析与仿真.docx_第12页
第12页 / 共23页
离散时间系统时域分析与仿真.docx_第13页
第13页 / 共23页
离散时间系统时域分析与仿真.docx_第14页
第14页 / 共23页
离散时间系统时域分析与仿真.docx_第15页
第15页 / 共23页
离散时间系统时域分析与仿真.docx_第16页
第16页 / 共23页
离散时间系统时域分析与仿真.docx_第17页
第17页 / 共23页
离散时间系统时域分析与仿真.docx_第18页
第18页 / 共23页
离散时间系统时域分析与仿真.docx_第19页
第19页 / 共23页
离散时间系统时域分析与仿真.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

离散时间系统时域分析与仿真.docx

《离散时间系统时域分析与仿真.docx》由会员分享,可在线阅读,更多相关《离散时间系统时域分析与仿真.docx(23页珍藏版)》请在冰点文库上搜索。

离散时间系统时域分析与仿真.docx

离散时间系统时域分析与仿真

郑州航空工业管理学院

《电子信息系统仿真》课程设计

 

2014级电子信息工程专业1413083班级

 

题目离散时间系统时域分析与仿真

姓名学号

 

二О一六年十一月月二十五日

 

一、MATLAB软件简介

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

二、理论分析

1、实验原理

离散时间系统其输入、输出关系可用以下差分方程描述:

当输入信号为冲激信号时,系统的输出记为系统单位冲激响应

,则系统响应为如下的卷积计算式:

当h[n]是有限长度的(n:

[0,M])时,称系统为FIR系统;反之,称系统为IIR系统。

在MATLAB中,可以用函数y=Filter(p,d,x)求解差分方程,也可以用函数y=Conv(x,h)计算卷积。

2、时不变系统

就是系统的参数不随时间而变化,即不管输入信号作用的时间先后,输出信号响应的形状均相同,仅是从出现的时间不同。

用数学表示为T[x(n)]=y[n]则T[x(n-n0)]=y[n-n0],这说明序列x(n)先移位后进行变换与它先进行变换后再移位是等效的。

3、线性时不变系统

既满足叠加原理又具有时不变特性,它可以用单位脉冲响应来表示。

单位脉冲响应是输入端为单位脉冲序列时的系统输出,一般表示为h(n),即h(n)=T[δ(n)]。

任一输入序列x(n)的响应y(n)=T[x(n)]=T[δ(n-k)];

由于系统是线性的,所以上式可以写成y(n)=T[δ(n-k)];

又由于系统是时不变的,即有T[δ(n-k)]=h(n-k);

从而得y(n)=h(n-k)=x(n)*h(n);

这个公式称为离散卷积,用“*”表示。

4、线性时不变系统的性质

(1)、齐次性

若激励f(t)产生的响应为y(t),则激励Af(t)产生的响应即为Ay(t),此性质即为齐次性。

其中A为任意常数。

f(t)系统y(t),Af(t)系统Ay(t)

(2)、叠加性

若激励f1(t)与f2(t)产生的响应分别为y1(t),y2(t),则激励f1(t)+f2(t)产生的响应即为y1(t)+y2(t),此性质称为叠加性。

(3)、线性

若激励f1(t)与f2(t)产生的响应分别为y1(t),y2(t),则激励A1f1(t)+A2f2(t)产生的响应即为A1y1(t)+A2y2(t),此性质称为线性。

(4)、时不变性

若激励f(t)产生的响应为y(t),则激励f(t-t0)产生的响应即为y(t-t0),此性质称为不变性,也称定常性或延迟性。

它说明,当激励f(t)延迟时间t0时,其响应y(t)也延迟时间t0,且波形不变。

(5)、微分性

若激励f(t)产生的响应为y(t),则激励f'(t)产生的响应即y’(t),此性质即为微分性。

(6)、积分性

若激励f(t)产生的响应为y(t),则激励f(t)的积分产生的响应即为y(t)的积分。

此性质称为积分性。

三、MATLAB数值运算功能

MATLAB的强大数值计算功能使其在诸多数学计算软件中傲视群雄,它是MATLAB软件的基础。

下面将介绍运用MATLAB计算卷积和冲激响应。

(1)卷积求解:

由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此,卷积运算在离散时间信号处理领域被广泛应用。

MATLAB求离散时间信号的卷积和命令为conv,其调用格式如下:

y=conv(x,h)

其中:

x与h表示离散时间信号值的向量;y为卷积结果。

用MATLAB进行卷积运算时,无法实现无限的累加,只能计算时限信号的卷积。

一系统的单位取样响应为

,用MATLAB求当激励信号为x(n)=u(n)-u(n-4)时,系统的零状态响应。

在MATLAB中可通过卷积求解零状态响应,即x(n)*h(n)。

上述系统描述h(n)向量的长度至少为8,描述x(n)向量的长度至少为4,因此为了图形完整美观,将h(n)向量和x(n)加上一些附加的零值。

其实现的MATLAB程序代码如下:

clearall;

nx=-1:

5;%x(n)向量显示范围(添加了附加的零值)

nh=-2:

10;%h(n)向量显示范围(添加了附加的零值)

x=uDT(nx)-uDT(nx-4);

h=.^nh.*(uDT(nh)-uDT(nh-8));

y=conv(x,h);

ny1=nx

(1)+nh

(1);%卷积结果起始点

%卷积结果长度为两序列长度之和减1,即0到(length(nx)+length(nh)-2)

%因此卷积结果的时间范围是将上述长度加上起始点的偏移值

ny=ny1+(0:

(length(nx)+length(nh)-2));

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

gridon;

xlabel('n');title('x(n)');

axis([-41603]);

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

gridon;

xlabel('n');title('h(n)');

axis([-41603]);

subplot(3,1,3);stem(ny,y,'fill');

gridon;

xlabel('n');title('y(n)=x(n)*h(n)');

axis([-41603]);

其波形如下图:

卷积结果

(2)冲激响应求解

在连续线性时域系统中,冲激响应和阶跃响应是系统特性的描述,对它们的分析是线性系统中极为重要的问题。

输入为单位冲激响应函数δ(t)所引起的零状态响应称为单位冲激响应,简称为冲激响应,用h(t)表示;输入为单位阶跃函数u(t)所引起的零状态响应称为单位阶跃响应,简称为阶跃响应,用g(t)表示。

在MATLAB中,对于连续时域系统的冲激响应和阶跃响应的数值解,可分别利用控制系统工具箱提供的函数impulse和step来求解。

其调用格式如下:

y=impulse(sys,t)

y=step(sys,t)

其中:

t表示计算系统响应的时间抽样点向量,sys表示线性时域系统模型。

已知一连续时域系统的微分方程如下:

下面用MATLAB命令绘出0≤t≤4范围内系统的冲激响应h(t)和阶跃响应g(t)。

其实现的MATLAB代码如下:

clearall;

t=0:

:

4;

sys=tf([1,16],[1,2,32]);

h=impulse(sys,t);

g=step(sys,t);

subplot(2,1,1);plot(t,h);

gridon;

xlabel('时间/s');ylabel('h(t)');

title('冲激响应');

subplot(2,1,2);plot(t,g);

gridon;

xlabel('时间/s');ylabel('g(t)');

title('阶跃响应');

其仿真波形如下图:

冲激响应和阶跃响应波形

四、离散线性系统时域分析与仿真

1、线性离散时间信号的基本运算

对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位和反折等。

两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。

下面列举例子来说明。

用MATLAB命令绘出下列离散时间序列的波形图。

设a=,N=8。

其实现的MATLAB程序代码如下:

clearall;

a=;N=8;

n=-12:

1:

12;

x=a.^n.*(uDT(n)-uDT(n-N));

n1=n;n2=n1+3;

n3=n1-2;n4=-n1;

subplot(4,1,1);stem(n1,x,'fill');

gridon;

axis([-151501]);

xlabel('(a)x1(n)');

subplot(4,1,2);stem(n2,x,'fill');

gridon;

axis([-151501]);

xlabel('(b)x2(n)');

subplot(4,1,3);stem(n3,x,'fill');

gridon;

axis([-151501]);

xlabel('(c)x3(n)');

subplot(4,1,4);stem(n4,x,'fill');

gridon;

axis([-151501]);

xlabel('(d)x4(n)');

程序在运行过程中,调用到自定义的冲激序列文件,其源代码如下:

functiony=uDT(n)

y=n>=0;

其仿真波形如下图:

离散序列波形图

2、线性离散系统分析

(1)零状态响应

离散线性时域系统可用下式表示,即

MATLAB中的函数filter可对上式差分方程在指定时间范围内的输入序列所产生的响应进行求解。

函数filter的调用格式如:

y=filter(b,a,x)

其中:

x为输入的离散序列;y为输出的离散序列;y的长度和x的长度一样;b和a分别为差分方程右端与左端的系数向量。

一离散线性时域系统的差分方程如下:

下面用MATLAB命令绘出当激励信号为

时,该系统的零状态响应。

其实现的MATLAB程序代码如下:

clearall;

a=[3-42];

b=[12];

n=0:

30;

x=(1/2).^n;

y=filter(b,a,x);

stem(n,y,'fill');

gridon;

xlabel('n');

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

其仿真波形如下图:

图3零状态响应

(2)单位取样响应

系统的单位取样响应定义为系统在δ(t)激励下系统的零状态响应,用h(n)表示。

MATLAB求解单位取样响应可利用函数filter,另一种求单位取样响应的方法是利用控制系统工具箱提供的函数impz来实现。

有一离散线性系统的差分方程如下:

下面利用MATLAB的impz函数绘出该系统的单位取样响应。

其实现的程序代码如下:

clearall;

a=[3-42];

b=[12];

n=0:

30;

impz(b,a,30);

gridon;

title('系统单位取样响应h(n)');

其仿真波形如下图:

图4单位取样响应

(3)卷积和运算

由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此,卷积运算在离散时间信号处理领域被广泛应用。

MATLAB求离散时间信号的卷积和命令为conv,其调用格式如下:

y=conv(x,h)

其中:

x与h表示离散时间信号值的向量;y为卷积结果。

用MATLAB进行卷积运算时,无法实现无限的累加,只能计算时限信号的卷积。

一系统的单位取样响应为

,用MATLAB求当激励信号为x(n)=u(n)-u(n-4)时,系统的零状态响应。

在MATLAB中可通过卷积求解零状态响应,即x(n)*h(n)。

上述系统描述h(n)向量的长度至少为8,描述x(n)向量的长度至少为4,因此为了图形完整美观,将h(n)向量和x(n)加上一些附加的零值。

其实现的MATLAB程序代码如下:

clearall;

nx=-1:

5;%x(n)向量显示范围(添加了附加的零值)

nh=-2:

10;%h(n)向量显示范围(添加了附加的零值)

x=uDT(nx)-uDT(nx-4);

h=.^nh.*(uDT(nh)-uDT(nh-8));

y=conv(x,h);

ny1=nx

(1)+nh

(1);%卷积结果起始点

%卷积结果长度为两序列长度之和减1,即0到(length(nx)+length(nh)-2)

%因此卷积结果的时间范围是将上述长度加上起始点的偏移值

ny=ny1+(0:

(length(nx)+length(nh)-2));

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

gridon;

xlabel('n');title('x(n)');

axis([-41603]);

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

gridon;

xlabel('n');title('h(n)');

axis([-41603]);

subplot(3,1,3);stem(ny,y,'fill');

gridon;

xlabel('n');title('y(n)=x(n)*h(n)');

axis([-41603]);

其波形如下图:

卷积和求解波形图

(4)信号抽样

信号抽样是连续时间信号分析向离散时间信号分析、连续信号处理向数字信号处理的第一步,广泛应用于实际的各类系统中。

信号抽样也称为取样或采样,就是利用抽样脉冲序列p(t)从连续信号f(t)中抽取一系列的离散样值,通过抽样过程得到的离散样值信号称为抽样信号,用fs(t)表示。

从数学上讲,抽样过程就是抽样脉冲p(t)和原连续信号f(t)相乘的过程,即:

fs(t)=f(t)p(t)

因此,可以用傅里叶变换的频域卷积性质来求抽样信号fs(t)的频谱。

信号在时域被抽样后,它的频谱是原连续信号的频谱以抽样和角频率为间隔周期的延拓,即信号在时域抽样或离散化,相当于频域周期化。

升余弦脉冲信号为

下面用MATLAB编程实现该信号经冲激脉冲抽样后得到的抽样信号fs(t)及其频谱。

参数E=1,τ=π,则

当采样间隔Ts=1时,其实现的MATLAB程序代码如下:

clearall;

Ts=1;

dt=;

t1=-4:

dt:

4;

ft=((1+cos(t1))/2).*(uDT(t1+pi)-uDT(t1-pi));

subplot(2,2,1);plot(t1,ft);

gridon;

axis([-44]);

xlabel('Time(sec)');

ylabel('f(t)');

title('升余弦脉冲信号');

N=500;

k=-N:

1:

N;

W=pi*k/(N*dt);

Fw=dt*ft*exp(-j*t1'*W);

subplot(2,2,2);plot(W,abs(Fw));

gridon;

axis([-1010*pi]);

title('升余弦脉冲信号的频谱');

t2=-4:

Ts:

4;

fst=((1+cos(t2))/2).*(uDT(t2+pi)-uDT(t2-pi));

subplot(2,2,3);plot(t1,ft,':

');

holdon;

stem(t2,fst);

gridon;

axis([-44]);

xlabel('Time(sec)');

ylabel('fs(t)');

title('抽样后的信号');

holdoff;

Fsw=Ts*fst*exp(-j*t2'*W);

subplot(2,2,4);plot(W,abs(Fsw));

gridon;

axis([-1010*pi]);

xlabel('\omega');ylabel('Fs(w)');

title('抽样信号的频谱');

其波形如下图:

信号抽样波形图

3、离散系统的仿真

已知某滤波器的差分方程:

,求冲激响应。

系统由差分方程描述:

分别用filter函数和impz函数绘出其单位冲激响应h(n)的线图。

MATLAB程序如下:

clearall;closeall;clc;

b=[1];

a=[1-1];

n1=0:

89;

x=[1zeros(1,89)];

h1=filter(b,a,x);

[h,n]=impz(b,a,90);

subplot(2,1,1),stem(n1,h1,'.');

xlabel('n');

ylabel('h(n)');

grid;

title('filter函数求出的单位冲激响应');

axis([-595]);

subplot(2,1,2),stem(n,h,'.');

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

grid;

title('impz函数求出的单位冲激响应');

axis([-595]);

set(gcf,'color','w');

filter函数和impz函数单位冲激响应图

4、离散LTI的级联

在实际应用中高阶因果线性时不变系统可以用低阶因果线性时不变系统级联得到,这可简化系统的设计与实现。

例如,对于四阶线性时不变系统,可以用二个二阶系统级联实现。

第一级

第二级

用MATLAB语言编程验证系统的级联。

matlab程序

B1=[1,,];A1=[,,];

xn=[1,zeros(1,30)];

hn1=filter(B1,A1,xn);

B2=[1,,];A2=[,,];

hn2=filter(B2,A2,hn1);n2=0:

length(hn2)-1;

subplot(2,1,1)

stem(n2,hn2,'-'),title('级联后的响应')

xlabel('n');ylabel('h2(n)')

%theoriginalserials

B3=[1,,,,];A3=[,,,,];

xn=[1,zeros(1,30)];

hn=filter(B3,A3,xn);

n=0:

length(hn)-1;

subplot(2,1,2)

stem(n,hn,'.'),title('原始序列响应')

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

级联响应

5、线性时不变系统的稳定性分析

若一个线性时不变系统的冲激响应是绝对可和,则此系统就是BIBO的稳定系统。

由此,无限冲激响应线性时不变系统稳定的必要条件是,随着输入序列点的增加,冲激响应衰减到零。

用MATLAB语言编程计算一个IIR线性时不变系统冲激响应的绝对值的和,验证稳定特性。

系统函数:

H(z)=z/

b=[1,];a=[1];

xn=[1,zeros(1,30)];

hn=filter(b,a,xn);

n=0:

length(hn)-1;

subplot(2,1,1)

stem(n,hn),xlabel('n'),ylabel('h(n)'),title('系统函数H(z)=z/的冲激响应')

sum=0;

fori=0:

length(xn)-1

sum=sum+abs(hn(i+1));

end

subplot(2,1,2)

zplane(b,a);

title('系统函数H(z)=z/的零极点分布图')

 

由线性系统的仿真波形可以看出线性系统的输入与输出满足线性叠加定理,由非线性系统的仿真波形可以看出它不满足线性叠加定理。

可知道时不变系统的变换关系不随时间变化而变化,即系统的输出随输入的移位而相应移位但形状不变。

时变系统的变换关系随时间变化而变化。

四、分析总结

通过本次电子系统仿真实验,使我掌握了离散时间系统的时域分析方法。

在进行电子仿真的这一周里,我遇到过很多困难和挫折,不过在同学们的热心帮助下,这些问题都一一得到解决。

第一天,在网上寻找程序的时候,发现我的这个题目在网上找程序十分的困难,别人的程序都可以直接找到做好的,我的只能一点一点找,再自己一点一点改,这让我感到十分的不公平,不过还是熬过来了。

 在接下来的几天里,我对寻找到的程序进行一点一点的纠错和修改,在同学的帮助下成功完成了程序。

通过这次电子系统仿真,我感觉自己的收获十分大,不仅巩固已经学过的知识,加深对知识的理解和应用,而且还加强学科间的横向联系,并且学会了应用MATLAB对离散系统进行仿真。

同时这种遇到困难不言弃的精神会陪伴我一生,对我以后的生活帮助十分大。

 

 

指导教师评语:

 

课程设计成绩:

指导教师签名:

年月日

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2