实验2 离散信号和系统的时域分析.docVIP

  • 15
  • 0
  • 约 4页
  • 2017-06-02 发布于河南
  • 举报
实验2 离散信号和系统的时域分析

实验二 离散信号和系统的时域分析 实验目的 学习MATLAB在信号分析和系统分析中的应用; 掌握MATLAB表示离散序列的方法、序列运算的MATLAB实现; 利用MATLAB分析离散系统。 实验原理 离散信号的表示:在MATLAB中,可以用向量(数组)来表示有限长序列,不过这样的向量并没有包含样本位置的信息,因此,需要用两个向量(数组)来表示一个有限长序列,其中一个向量表示序列的值,称为样本向量;另一个向量表示样本的位置(即序列的序号),称为位置向量。比如序列在MATLAB中需要用以下两个向量来表示: n = [-2,-1,0,1,2,3]; x = [2,1,-1,5,2]; 其中 向量n表示序号,向量x表示序列的值。 当不需要样本位置信息或者序列从n = 0 开始时,可以只用样本向量表示。另外由于内存的限制,MATLAB无法表示无限长序列。 离散信号的基本运算 信号相加:序列相加是对应样本相加,如果两序列长度不等或者位置向量不同,则不能用算数运算符“+”直接实现相加,必须对位置向量和长度统一处理后再相加。以下M函数可以实现任意两序列的相加运算: function [y, n] = sigadd(f1,n1,f2,n2) % [y n] = sigadd(f1,n1,f2,n2),Add two sequences. % Inputs: % f1 ---- the first sequence % n1 ---- index vector of f1 % f2 ---- the second sequence % n2 ---- index vector of f2 % Outputs: % y ---- the output sequence % n ---- index vector of y n = min(n1(1),n2(1)):max(n1(end),n2(end)); % index vector of y(n) y1 = zeros(1,length(n)); y2 = y1; % initialization y1(n = n1(1) n = n1(end)) = f1; y2(n = n2(1) n = n2(end)) = f2; y = y1 + y2; 序列的移位:序列移位后,样本向量没有变化,只是位置向量变了。任意序列的移位可以用以下的M函数实现: function [y,n] = sigshift(x,m,n0) % [y,n] = sigshift(x,m,n0),result of y = x(n-n0); % Inputs: % x ---- sequence to be shifted % m ---- the index vector of x % n0 --- shift amount % Outputs: % y ---- the output sequence % n ---- the index vector of y y = x; n = m + n0; 序列的反折:序列反折后,样本向量倒置,位置向量倒置且变号。以下函数可以实现序列的反折运算: function [y,n] = sigfold(x,m) % [y,n] = sigfold(x,n),result of y(n) = x(-n); % Inputs: % x ---- sequence to be folded % m ---- the index vector of x % Outputs: % y ---- the output sequence % n ---- the index vector of y y = fliplr(x); n = -fliplr(m); 系统零状态响应的求解 系统零状态响应表示为 ,在MATLAB中,零状态响应的求解可以用两种方法实现: 求出单位样值响应h(n),然后计算卷积和。 首先用函数impz求出系统的单位样值响应,其调用格式为: 其中,h 是单位样值响应的样本序列,n是其位置向量;b、a分别是差分方程右边和左边的系数向量,N可以是单位样值响应的样本个数,此时 n = [0,1,2,…,N-1];N 也可以是一个向量,用来指定所求的样本的位置,此时 n = N。 其次,用函数conv计算卷积和,其调用格式为: 其中,x,h为做卷积和的两个序列,y是卷积的结果。 用函数filter直接求系统的零状态响应,其调用格式为: 其中,x是输入序列,y是与x等长的输出序列,b、a分别为差分方程右边和左边的系数向量。 实验内

文档评论(0)

1亿VIP精品文档

相关文档