基于MATLAB离散系统时域分析课程设计.docVIP

基于MATLAB离散系统时域分析课程设计.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MATLAB离散系统时域分析课程设计

课程名称: 数字信号处理 系 别:信息工程系 专业班级:通信工程专业 学 号:2009012346 姓 名: 洪 亮 课程设计题目:基于MATLAB的离散系统的时域分析及实现 完成日期:2012年2月28日 指导老师: 一.引言 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 k=[k1:k2] %k1,k2为时间序列的起始及终止时间序号 fk=[(k-k0)=0] %k0为(k)在时间轴上的位移量 stem(k,fk) 2. 离散系统的时域响应 MATLAB提供了求离散系统响应的专用函数filter() filter函数能求出差分方程描述的离散系统在指定时间范围内的输入序列所产生的响应序列的数值解。其调用格式如下: filter(b,a,x) 其中,b和a是由描述系统的差分方程的系数决定的、表示离散系统的两个行向量;x是包含输入序列非零样点的行向量。上述命令将求出系统在与x的取样时间点相同的输出序列样值。 3.离散时间序列的卷积 设序列f1(k)在~范围内非零,f2(k)在~范围内非零,则f1(k)时域宽度为L1=-+1,f2(k)的时域宽度为L2=-+1。由卷积和的定义可得,序列y(k)=f1(k)*f2(k)的时域宽度为L=L1+L2-1,且只在(+)~(++L1+L2-2)范围内非零。因此,对于f1(k)和f2(k)均为有限期间非零的情况,只要计算序列y(k)在 (+)~(++L1+L2-2)范围内的序列值,便可以表征序列y(k)。 MATLAB的conv()函数可以用来快速求出两个离散序列的卷积和。conv()函数的调用格式为 y=conv(f1,f2) 式中f1和f2为待卷积两序列的向量表示;y为卷积结果。 四.程序实现 1.画出单位序列(k)在-3k3区间的波形。 程序:function impseq(k1,k2,k0) k1=-3;k2=3;k0=0; k=[k1:k2]; fk=[(k==k0)]; stem(k,fk,fill) axis([k1,k2,0,1.5]) 图示: 2.画出单位阶跃序列(k)在-2k5区间的波形。 程序:k1=-2;k2=5;k0=0; k=[k1:k2]; fk=[(k=k0)]; stem(k,fk,fill) axis([k1,k2,0,1.5]) title(单位阶跃) 图示: 3.利用函数filter(),把描述离散系统的差分方程为: y(k)-0.25y(k-1)+0.5y(k-2)=f(k)+f(k-1) 且该系统输入序列为f(k)=(k), 用MATLAB 求系统的单位序列响应 和系统的响应y(k)。 程序如下:function y=filter(b,a,x) k=-100:100; uk=[zeros(1,100),ones(1,101)]; b=[1,1]; a=[1,-0.25,0.5]; x=((1/2).^k).*uk; y=filter(b,a,x); h=impz(b,a,k); stem(k,h); xlabel(k); title(单位序列响应) figure(2);stem(k,y); title(系统响应) xlabel(k) 图示: 4.已知离散信号f1(k)和f2(k),求y(k)=f1(k)*f2(k) f1(k)= f2(k)= 用前面介绍的conv()函数来完成。并说明f1(k)和f2(k)的时域宽度与序列y(k)的时域宽度的关系。 程序:function y=conv(f1,f2) f1=[-1,0,1,2,3]; f2=[-1,0,1,2,3,4]; y=conv(f1,f2); N=length(y) stem(0:N-1,y) 结果: f1和f2的时域宽度分别为5,6,y的时域宽度为5+6-1=10. 图示: 五、设计心得 通过本次设计,我感觉受益匪浅。首先,通过自己亲手查阅资料、编程、调试,培养了我的实践能力和独立分析问题、解决问题的能力,进一步巩固和加深了对课程内容的理解和综合运用。 同

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档