离散序列的基本运算
离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、倒相及尺度变换等。
在MATLAB中,序列的相加和相乘运算是两个向量之间的运算,因此参加运算的两个序列必须具有相同的长度,否则不能直接进行运算,需要进行相应的处理后再进行运算。
一、实验用函数
1、find
功能:寻找非零元素的索引号。
调用格式:
find((n>=min(n1))&(n<=max(n1))):在符号关系运算条件的范围内寻找非零元素的索引号。
2、fliplr
功能:对矩阵行元素进行左右翻转。
调用格式:
x1=fliplr(x):将x的行元素进行左右翻转,赋给变量x1。
二、实例
1、信号的时域变换
1)序列移位
将一个离散序列进行移位,形成新的序列:x1(n)=x(n-m)。当m>0时,原序列向右移m位,当m<0时,原序列向左移。
%建立移位函数(sigshift(x,m,n0))
function [y,n]=sigshift(x,m,n0)
n=m+n0;
y=x;
2)序列反折
在这个运算中,x(n)以n=0为基准点,以纵轴为对称轴反折得到一个新的序列。
y(n)=|x(-n)|
在MATLAB中提供了fliplr函数实现序列反折。
%建立反折函数(sigfold(x,n))
function [y,n]=sigfold(x,n)
y=fliplr(x);
n=-fliplr(n);
3)序列倒相
是求一个与原序列的向量值相反,对应的时间向量不变的新序列。
4)序列的尺度变换
通过对时间轴的放大或压缩形成新的序列。