2.1 离散时间信号-序列
2.1.1 序列
离散时间信号又称作序列(Sequence)。在物理上是指定义在离散时间上的信号取样值的集合,在数学上可用时间序列 {x(n)}来表示。x(n)代表序列的第n个样点的取值,n代表时间的序号且为整数(-∞<n<∞),非整数点无定义或无意义。
对于抽样信号可以表示为{xa(nT)},T为抽样间隔时间。一般来讲,抽样时间间隔T固定,则抽样值表现为时间间隔序号的序列。所以也通常将T 去掉,而用 {x(n)}来表示。
2.1.2 序列的时域表示
1.枚举表示
枚举表示指把序列的全部取值一一列出在序列的集合中,并标注时间零点位置。如
其中箭头处表示对应n=0 时刻的抽样值,即x(0)=3.45,则x(-1)=-6.7,x(-2)=-1.2,…;x(1)=0.7,x(2)=8,x(3)=5.3,…
2.公式表示
公式表示是指把序列的第n个取值x(n)用通用的函数公式表示。例如
其中n取整数。x(n)的全部用集合{x(n)}或用x(n)表示。
3.图形表示
图形表示是指把序列的取值与离散时间变量n之间的关系用图形表示出来。例如序列,用图形表示则如图2-1 所示。
图 2-1 序列的图形表示
对于式(2.1)表示的序列,当ω=8π时,则对应为x(n)=sin8πn,0≤n≤100,图形表示如图2-2 所示。
图 2-2 序列x(n)= sin8πn,-∞ <n< ∞ 的图形
对于式(2.2)表示的序列,当a=2,b=3 时,则对应为,图形表示如图2-3 所示。
图 2-3 序列的图形
2.1.3 序列的运算
序列的运算是序列的基本操作。通过序列的运算,可以产生新的序列。
1.序列的加、减运算
序列的加、减运算指将两序列x1(n)和x2(n)序号n相同的数值相加或相减,得到新序列,表示为
其中的操作符号“±”是当进行相加运算时取“+”,相减运算时取“-”。其中y(n)值为当n取相同值时的x1(n)和x2(n)值的加或减运算结果值。
【例21】已知两个序列x(n)、y(n)如图24(a)、(b)所示,求z(n)=x(n)+y(n)。
图 2-4 序列的相加运算
解:根据序列加法的定义,得
用MATLAB实现该过程的程序如下:
n=-4:4;
x=[-3 -3 -2 -10123 3];
y=[221.510 -1 -1.5 -2 -2];
z=x+y;%序列相加subplot(311);stem(n,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);grid on;
subplot(312);stem(n,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(b)ˈ);grid on;
subplot(313);stem(n,z);ylabel(ˈz(n)ˈ);xlabel(ˈ(c)ˈ);grid on;
得到序列z(n)如图2-4(c)所示。
2.序列的乘积运算
序列的乘积指将两序列x1(n)和x2(n)序号相同的数值相乘积,表示为
其中“·”表示乘积运算。
【例2-2】已知两个序列x(n)、y(n)如图2-5(a)、(b),求z(n)=x(n)·y(n)。
图 2-5 序列的乘积运算
解:根据序列乘积的定义,得
用MATLAB实现该运算的程序如下:
n=-4:4;
x=[-3 -3 -2 -10123 3];
y=[221.510 -1 -1.5 -2 -2];
z=x.∗y;%序列相乘
subplot(311);stem(n,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);grid on;
subplot(312);stem(n,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(b)ˈ);grid on;
subplot(313);stem(n,z);ylabel(ˈz(n)ˈ);xlabel(ˈ(c)ˈ);grid on;
得到序列z(n)如图2-5(c)所示。
3.序列的时延
序列的时延是将序列的全体在时间轴上进行向右移。可以表示为
其中n0>0 表示延时数。
【例2-3】已知序列x(n)如图2-6(a),求序列y(n)=x(n-2)。
图 2-6 序列的时延
解:根据序列乘积的定义,采用MATLAB实现该运算的程序如下:
x=[3,11,7,0,-1,4,2];
nx=[-3:3];
[y,ny]=sigshift(x,nx,-2);%调用移位函数实现延时subplot(211);stem(nx,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);grid on;
subplot(212);stem(ny,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(b)ˈ);grid on;
其中移位函数 sigshift为
function[y,ny]=sigshift(x,nx,n0)
ny=nx+n0;
y=x;
得到序列y(n)如图2-6(b)所示。
4.序列乘常数
序列乘常数可以表示为
即将原序列的幅度放大k倍后产生新序列。
5.序列反褶
序列反褶是指将序列以n=0 为对称轴进行对褶,序列反褶表示为
【例2-4】已知序列x(n)如图2-7(a)所示,求序列y(n)=x(-n)。
图 2-7 序列的反褶
解:采用MATLAB提供的左右反褶的函数fliplr来完成该题,MATLAB程序如下:
x=[3,11,7,0,-1,4,2];
y=fliplr(x);%调用函数fliplr
subplot(211);stem(nx,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);grid on;
subplot(212);stem(ny,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(b)ˈ);grid on;
得到序列y(n)如图2-7(b)所示。
6.序列的差分运算
序列的差分运算是指同一序列相邻的两个样点之差,分前向差分和后向差分
7.序列的抽取与插值(尺度变换)
抽取:将原来序列每M个抽取一个点组成新序列。公式为y(n)=x(nM)。
插值:将原来的序列每个序列点之间插入L个样点,形成新序列y(n)=x(n/L)。
例如,M=2,x(2n)相当于两个点取一点;以此类推。
例如,L=2,x(n/2)相当于两个点之间插一个点;以此类推。通常,插值用L 倍表示,即插入(L-1)个值。
8.序列的移位
序列的位移可表示为
当m为正时,x(n+m)表示将x(n)依次向左移m位;当m为负数时,x(n+m)表示将x(n)向右移-m位(相当于时延-m位)。例如,已知
则求x(n+1)就是将原序列x(n)左移一位,所以有
比较可知,x(n+1)是将x(n)左移了一位。
注意:当m为正数时,x(-n+m)表示将序列x(-n)向右移位m位(相当于时延m位);当m为负数时,x(-n+m)表示将x(-n)向左移-m位。例如:已知
比较可知:x(1-n)是将x(-n)右移了一位。
9.累加
设某一序列为x(n),则x(n)的累加序列y(n)定义为
即表示n以前的所有x(n)的和。
10.卷积和(序列卷积)
(1)设序列x(n),h(n),它们的卷积和y(n)定义为
(2)卷积和的性质
①交换律
②结合律
③对加法的分配律
(3)卷积和计算
根据式(2.11)可见,计算卷积和运算的每一个值y(n),可采用以下四步来完成。
A.序列翻褶:用m代替n作为时间变量,求翻褶序列h(m)⇒h(-m)。
B.序列移位:固定一个移位n值,求移位序列h(-m)⇒h(n-m)。
C.序列相乘:计算两个序列x(m)和h(n-m)的乘积序列,即⇒x(m)·h(n-m)。
D.序列累加:。
改变n值,重复以上四步,就可以依次计算出卷积和序列y(n)的各个值。
【例2-5】已知如图2-8 所示,求。
图 2-8 已知序列
解:方法一(分步)
首先将离散时间变量n用m代替。
(1)序列翻褶。以m=0 为对称轴,翻褶h(m)得到h(-m),即得n=0 时h(-m)的移位序列h(0-m)=h(-m),对应序号相乘,相加得y(0),如图2-9(a)所示;
(2)h(-m)右移一个单元,即得n=1 时h(-m)的移位序列h(1-m),对应序号相乘,相加得y(1),如图2-9(b)所示;
(3)重复步骤(2),得y(2),y(3),y(4),y(5)。卷积和过程如图2-9 所示。
图 2-9 卷积和过程
卷积和计算结果如图2-10 所示。
图 2-10 卷积和计算结果
方法二(分段)
(1)当n<1 时,x(m)与h(n-m)无相交,相乘处处为0,即:y(n)=0,n< 1。
(2)当 1 ≤n≤3 时,x(m)与h(n-m)有相交项,从m=1 到m=n,即
(3)当3 ≤n≤ 5 时,x(m)与h(n-m)有相交项,从m=n-2 到m=3,即
(4)当n> 5 时,x(m)与h(n-m)无相交项,即:y(n)=0,n> 5。
方法三,用MATLAB实现
MATLAB实现的程序如下:
nx=0:3;%x序列时间范围
x=nx/2;
nh=[0,1,2];%h序列时间范围
h=[111];
subplot(3,1,1);stem(nx,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);
grid on;
subplot(3,1,2);stem(nh,h);ylabel(ˈh(n)ˈ);xlabel(ˈ(b)ˈ);
grid on;
nyb=nx(1)+nh(1);%卷积序列的起始位置
nye=nx(length(x))+nh(length(h));%卷积序列的结束位置
ny=[nyb:nye];%卷积序列的范围
y=conv(x,h);%求卷积
subplot(3,1,3);stem(ny,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(c)ˈ);
grid on;
输出如图2-11 所示。
图 2-11 MATLAB程序计算卷积
定理:若两个序列都是有限长的序列,即:{x(n),n=N1,…,N2},长度为N;{h(n),n=M1,…,M2},长度为M,那么它们的卷积输出序列y(n)=x(n)∗h(n)为:{y(n),n=N 1 +M1,…,N 2 +M2},且卷积序列的长度为:L=M+N-1。
11.序列线性相关
(1)线性相关定义
设序列x(n)和y(n),它们的线性相关(互相关)序列定义如下。
①x(n)和y(n)的线性互相关
②y(n)和x(n)的线性互相关
其中m代表两个序列的相对位移。
(2)线性相关序列特点
①不满足交换律
②自相关
若y(n)=x(n),则称x(n)的(线性)自相关,即
当n=0 时,有
称为信号的能量。
③线性相关与卷积的关系
(3)线性互相关的计算
计算步骤包括:移位、相乘、相加。
【例2-6】已知,计算x与y 的线性互相关rxy、y 与x的线性互相关ryx。
解:
MATLAB程序如下:
nx=1:5;%x序列时间范围
x=1:5;
ny=[1,2,3];%y序列时间范围
y=[786];
subplot(4,1,1);stem(nx,x);ylabel(ˈx(n)ˈ);xlabel(ˈ(a)ˈ);
grid on;
subplot(4,1,2);stem(ny,y);ylabel(ˈy(n)ˈ);xlabel(ˈ(b)ˈ);
grid on;
nrl=2∗max(length(x),length(y))-1;%相关序列的长度
nr=[-(nrl-1)/2:(nrl-1)/2];%相关序列时间的范围
rxy=xcorr(x,y);%x与y相关
ryx=xcorr(y,x);%y与 x相关
subplot(4,1,3);stem(nr,rxy);ylabel(ˈrxy(n)ˈ);xlabel(ˈ(c)ˈ);
grid on;
subplot(4,1,4);stem(nr,ryx);ylabel(ˈryx(n)ˈ);xlabel(ˈ(d)ˈ);
grid on;
输出如图2-12 所示。
图 2-12 MATLAB程序计算相关
2.1.4 常用序列
1.单位取样序列
单位取样序列表示为
如图2-13(a)所示。
(1)单位取样序列的移位序列,当n0=2时图形如图2-13(b)所示。
图 2-13 单位取样序列及其移位序列
(2)x(n)δ(n)=x(0),x(n)δ(n-n0)=x(n0)。
2.单位阶跃序列u(n)
单位阶跃序列表示为
其图形如图2-14 所示。
图 2-14 单位阶跃序列
则
(1)δ(n)=u(n)-u(n-1)。
3.矩形序列
矩形序列表示为
在 [0,N-1]区间的N 个值为1,其他整数点为0;RN(n)=u(n)-u(n-N),其波形如图2-15(c)所示。
图 2-15 序列δ(n),u(n),RN(n)的波形
4.实指数序列
实指数序列表示为
【例2-7】求x(n)=0.9n,n=0∶50。
解:用运算符“.^”来实现指数运算。
MATLAB程序如下:
n=0∶1∶50;%取序列显示范围
x=(0.9).^n;%指数运算
plot(n,x);
stem(n,x);
输出如图2-16 所示。
图 2-16 例 2-7的输出序列
5.复指数序列和正弦序列
复指数序列表示为
根据欧拉公式(Euler)ejθ=cosθ+j sinθ展开得到
则复指数序列可以分解为两个序列组成,其中实部序列:y(n)=eσ n cos(ωn),虚部序列:z(n)=eσ n sin(ωn)。
一般表达式如下
和
分别为正弦序列和余弦序列。
其中:A为幅度,ϕ为初相,单位为弧度(rad);ω为数字域频率,单位为弧度(rad)。
数字信号可以通过对模拟信号取样得到。设模拟信号为
其中取样周期为T,其中:Ω=2πf 为模拟域频率,单位为rad/s;则取样后信号为
与式(2.24)比较,得到
注意:
(1)ej ω n=ej(ω+2πm)n,cos(ωn)=cos((ω+2πm)n);但 ej Ω t ≠ ej(Ω+2πm)t,cos(Ω t)=cos[(Ω+2πm)t];即正弦序列和复指数序列对ω变化以 2π为周期。在数字域考虑问题时,取数字频率的主值区间:[-π,π]或[0,2π]。[-π,π]用于离散时间信号和系统的傅里叶变换(Fourier Transform,FT);[0,2π]用于离散傅里叶变换。
(2)当ω=0 时,cos(ωn)变化最慢(不变化);当ω=π时,cos(ωn)变化最快。故在DSP中,在主值区间上,将ω=0附近称为数字低频;而将ω=π附近称为数字高频。这一特点与模拟正弦信号 x a(t)=cos(Ωt)截然不同,模拟正弦信号中Ω越大,f 越大,cos(Ωt)变化越快。其原因是t连续取值,而n只取整数。
2.1.5 序列的周期性
对于序列x(n),如果存在一个最小的正整数N,对所有的n都满足
则称序列x(n)为周期序列,且周期为N。周期序列可以记为。
对于σ=0 的复指数序列和正弦序列,有
(1)当= 整数时,序列为周期性的,且周期为,如
(2)当= 有理数时,序列为周期性的,且周期大于,如-N=14;
(3)当=无理数时,序列为非周期性的,如
【例2-8】判断以下序列是否为周期序列。若是周期序列,求其周期。
解:
(1)假设序列周期为N。
周期存在即要下式成立
式(2.30)成立则,所以要求:N/8=2πk,k=0,± 1,±2,…,从而得到N=1 6πk,k=0,± 1,…。由于k 为整数,所以不存在最小正整数 N 能使式(2.30)成立。故序列不是周期序列。
(2)假设周期为N,则
周期存在则要求满足
要该式成立,则要求满足
也即要满足,取 140 和 220 的最小公倍数 1540 得到:N=154077 =20,其中k1 =11,k2 =7。序列x(n)的周期为20。
MATLAB实现的程序如下:
n=1:80;
pi=3.1415926;
x=cos(11∗pi/10.∗n-pi/2)+2∗sin(7∗p.i ∗n);
stem(x);xlabel(ˈnˈ);ylabel(ˈx(n)ˈ);grid on;
输出序列x(n)如图2-17 所示。从图可见序列周期的确为20。
图 2-17 周期序列
2.1.6 用单位取样序列表示任意序列
任意序列x(n)都可用单位取样序列δ(n)表示成加权和的形式,即
证明:
因为
所以
由于任意序列皆可以表示成各延迟单位取样序列的幅度加权和,因此,讨论系统的特性时只需讨论系统在单位取样序列作用下的响应即可。
【例2-9】将序列表示成单位取样序列的加权和形式。
解:
【例2-10】已知序列,写出其单位取样序列的加权和形式。
解:
2.1.7 序列的能量与功率
序列能量定义
当E <∞ 时,称x(n)为能量有限信号。若序列的长度为有限长,只要信号的值x(n)是有限值,信号的能量总是有限的。但当信号的长度为无限长时,即使x(n)有界,信号的能量也不一定有限。
对于非周期序列x(n),若序列为无限长,其平均功率为
当信号能量为有限时,称为能量信号。当信号平均功率为有限值时,称信号为功率信号。