内容发布更新时间 : 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实现卷积运算,即:
第 页