- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用MATLAB实现常用的离散时间信号及其时域运算
实验四 用MATLAB实现常用的离散时间信号及其时域运算
——
摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。
一、实验目的:(1)学习MATLAB语言及其常用指令;
(2)学习和掌握用MATLAB语言产生离散时间信号的编程方法;
(3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。
二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号;
(2)用MATLAB语言实现离散时间信号的时域运算。
三、实验??理:(1)单位阶跃序列和单位样值序列。
离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下:
1 n≥0 1 n≥0
u(n)= δ(n)=
0 n0 0 n≠0
若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为:
1 n≥n0 1 n=n0
u(n-n0)= δ(n-n0)=
0 nn0 0 n≠n0
应注意,离散时间的单位阶跃序列与连续时间的单位阶跃信号的异同,以及离散时间的单位样值序列与连续时间的单位冲激信号的异同。
(2)离散时间信号的时域运算。
与连续时间系统的研究类似,在离散系统分析中,经常遇到离散时间信号的运算,包括两信号的相加、相乘以及序列自身的移位、反褶、尺度等等,也需要了解在运算过程中序列的表达式以及对应的波形的变化。
序列x(n)的移位:x(n-n0)
序列x(n)的反褶:x(-n)
序列x(n)的尺度变换:x(an)
两序列x1(n)与x2(n)的相加减:x1(n) ±x2(n)
两序列与的相乘:x1(n) ·x2(n)
(3)学习如何使用MATLAB语言产生离散时间信号并对离散时间信号进行时域运算。
四、实验任务:
(1)编制用于产生下列信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。调试并运行这些通用的程序。
①x(n)=Aδ(n-n0)
程序:function un(t1,t2,t0)
t=t1:t2;
n=length(t);
tt=t1:t2;
n1=length(tt);
f=zeros(1,n);
f(1,t0-t1+1)=3;
stem(t,f),grid on
title(μ¥??3??÷D?o?)
axis([t1,t2 -0.2 4])
②x(n)=A[u(n-m1)-u(n-m2)]
程序:function unn(t1,t2,A)
t=t1:t2;
n=length(t);
f=[zeros(1,t1-1),A*ones(1,t2-t1),zeros(1,1)];
stem(t,f);grid on
axis([t1 t2 -0.2 4])
(2)已知离散序列波形。
①f(k-2)u(k);
u(k)可以直接调用stepseq函数,离散序列的平移编程如下:
function[f,k]=lspy(ff,kk,k0)
k=kk+k0;
f=ff;
离散序列的相乘程序为:
function [f,k]=lsxc(f1,f2,k1,k2)
k=min(min(k1),min(k2)):max(max(k1),max(k2));
s1=zeros(1,length(k));s2=s1;
s1(find((k=min(k1))(k=max(k1))==1))=f1;
s2(find((k=min(k2))(k=max(k2))==1))=f2;
f=s1.*s2;
stem(k,f)
axis([(min(min(k1),min(k2))-1)
文档评论(0)