- 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函数的编写和调试方法。
实验内容:
(1)信号相加
x(n)=x1(n)+x2(n)
当两个相加的序列长度不同时或位置不对应时,首先必须调整二者的位置对齐,然后通过zeros函数左右补零使其长度相等后再相加。下面的参考代码利用函数sigadd说明了这些运算,其验证将在后续实验中进行。
MATLAB参考代码
function[y,n]=sigadd(x1,n1,x2,n2)
%implements y(n)=x1(n)+x2(n)
%---------------------------------------------
%[y,n]=sigadd(x1,n1,x2,n2)
%y=sum sequence over n,which includes n1 and n2
%x1=first sequence over n1
%x2=second sequence over n2(n2 can be different from n1)
%
n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n)
y1=zeros(1,length(n));
y2=y1;
y1(find((n=min(n1))(n=max(n1))==1))=x1;%x1 with duration of y
y2(find((n=min(n2))(n=max(n2))==1))=x2;%x2 with duration of y
y=y1+y2;%sequence addition
(2)信号相乘
信号相乘,即两个序列的乘积(或称“点乘”),表达式为:
x(n)=x1(n)?x2(n)
在MATLAB中,用运算符“.*”实现。
下面的参考代码利用函数sigmult说明了这种运算,其验证将在后续实验中进行。
MATLAB参考代码
function[y,n]=sigmult(x1,n1,x2,n2)
%implements y(n)=x1(n)*x2(n)
%---------------------------------------------
%[y,n]=sigmult(x1,n1,x2,n2)
%y=product sequence over n,which includes n1 and n2
%x1=first sequence over n1
%x2=second sequence over n2(n2 can be different from n1)
%
n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n)
y1=zeros(1,length(n));
y2=y1;
y1(find((n=min(n1))(n=max(n1))==1))=x1;%x1 with duration of y
y2(find((n=min(n2))(n=max(n2))==1))=x2;%x2 with duration of y
y=y1.*y2;%sequence multiplication
(3)加权
在这种运算中,每个样本均乘以标量a:
y(n)=ax(n)
在MATLAB中,算术运算符“*”用来实现加权运算。
(4)移位
在这种运算中,序列x(n)总体进行k点的移位:
y(n)=x(n-k)
下面的参考代码利用函数sigshift说明了这种运算,其验证将在后续实验中
进行。
MATLAB参考代码
function[y,n]=sigshift(x,m,n0)
%implements y(n)=x(n-n0)
%---------------------------------------------
%[y,n]=sigshift(x,m,n0)
%
n=m+n0;
y=x;
(5)反转
在这种运算中,序列x(n)以n=0为中心翻转得到一个反转序列:
y(n)=x(-n)
在MATLAB中,对序列值的翻转用fliplr(x)实现,对序列各点位置的翻转用
-fliplr(n)实现,如下面的参考代码所示:
MATLAB参考代码
function[y,n]=sigfold(x,n)
%implements y(n)=x(-n)
%---------------------------------------------
%[y,n]=sigfold(x,n)
%
y=fliplr(x);
n=-fliplr(n);
离散时间系统分析
实验目的:
掌握线性卷积的计算机编程方法,利用卷积的方法观察、分析系统响应的时域特性。
文档评论(0)