离散时间信号与系统 下载本文

内容发布更新时间 : 2024/11/17 3:55:00星期一 下面是文章的全部内容请认真阅读。

附 页

图2.1 常用信号的表示

3. 信号的运算

(1) 信号加

x(n) = x1(n) + x2(n)

MATLAB实现: x = x1 +x2 ; 说明:

① 此时序列x1和x2应该具有相同的长度,而且位置对应,才能 相加,否则会出错。

② 若序列x1和x2的长度或位置不同时,应先统一两序列的长度和 位置,然后再进行序列加的操作。

第 页

附 页

例如:n1 = [0:6];

x1 = [n1>=2] % x1序列的值为: 0 0 1 1 1 1 1 n2 = [-2:2];

x2 = [n2<=0] % x2序列的值为:1 1 1 0 0 n = min(min(n1),min(n2)):max(max(n1),max(n2)) % n的值为:-2 –1 0 1 2 3 4 5 6 y1=zeros(1,length(n)); y2=y1;

y1 ( find( ( n>=min(n1) & n<=max(n1) ) = =1 ) ) = x1

% 序列y1的值为:0 0 0 0 1 1 1 1 1

y2 ( find( ( n>=min(n2) & n<=max(n2) ) = =1 ) ) = x2

% 序列y2的值为:1 1 1 0 0 0 0 0 0 y=y1+y2;

% 序列y的值为:1 1 1 0 1 1 1 1 1

注:find(x)返回x矢量的所有非零索引号。

(2) 信号乘

x(n) = x1(n)·x2(n)

MATLAB实现: x = x1 .*x2 ;

注意:由于序列x1和x2均为行向量,所以序列的相乘采用矩阵相乘的运算符“.*”,

而不是“*”。 当序列x1和x2的长度和位置不同时,应先统一两序列的长度和位置,然后再进行序列乘的操作。

第 页

附 页

(3) 改变比例

y(n) = k·x(n)

MATLAB实现: y = k * x;

(4) 信号折叠 y(n) = x(-n)

MATLAB实现: y = fliplr(x); (5) 抽样和

MATLAB实现: y = sum(x(n1:n2));

(6) 抽样积

MATLAB实现: y = prod(x(n1:n2));

(7) 信号能量

第 页

y?n?n1?x(n)n2y??x(n)n?n1n2E?n????|x(n)|?2附 页

MATLAB实现: E = sum(abs(x).^2);

(8) 信号功率

1P?Nn????|x(n)|?2MATLAB实现:

P = sum(abs(x).^2) / N;

2.2离散系统表示与运算

一个离散时间系统,输入信号为x(n),输出信号为y(n),运算关系为T[ ]表示,则输出与输入的关系可以表示为y(n)=T[x(n)]. 1、 线性时不变系统(LTI)的表示

线性时不变系统的输入输出关系可通过单位脉冲响应h(n)表示为:

式中*表示卷积运算. 2、 线性时不变系统(LTI)的实现

可物理实现的线性时不变系统是稳定的、因果的。这种系统的单位脉冲响应是因果的且绝对可和的。即

h(n)=0 n<0

y(n)?x(n)?h(n)??x(k)h(n?k)k?0N?|h(n)|????? 在MATLAB中可采用函数conv实现卷积运算,即:

第 页