7生4523)等 -m) ☐例2.1:画出以下各序列在给定这间的波形图 a.x(n)÷28(n+2)-6(n-4),-5≤b≤5 b.xn)=n[u(n)-u(n-10)]+10e-0.3n-1o[u(n-10)-u(n-20)],0≤n≤20 c.x(n)=cos(0.04πn)+0.2w(n),0≤n≤50其中w(n)为具有零均值及单位方差 的高斯随机序列。 d.n)={.,5,4,3,2,1.5,4,3,2,1,5,4,3,2,1..}.-10≤n≤9 解:a.x(n)=28(n+2)-6(n-4),-5≤n≤5 >>n=[-5:5]; >>x=2*impseq(-2,-5,5)-impseq(4,-5,5): >>subplot(2,2,1);stem(n,x);title('例2.1a的序列') >clabel('n');ylabel('x(n)'); 图2.1a给出了本序列的波形。 b.x(n)=n[u(n)-u(n-10)]+10*exp(-0.3(n-10)[u(n-10)-u(n-20)], 0≤n≤20 >>n=[0:20]: >>x1=n.*(stepseq(0,0,20)-stepseq(10,0,20): >>x2=10*exp(-0.3*(n-10).*(stepseq(10,0,20)-stepsec(20,0,20): >>x=x1+x2; >>subplot(2,2,2);stem(n,x);>>title('例2.1b的序列') >xlable('n');ylabel('x(n)'); 图2.1b给出了本序列的波形。 c.xn)=cos(0.04πn)+0.2w(n),0≤n≤50 >>n=[0:50]; >x=cos(0.04 pi n)+0.2*randn(size(n)); >>subplot(2,2,1);stem(n,x);tite('例2.1c的序列) >xlabel('n');ylabel('x(n)'); 图2.1c给出了本序列的波形。 d.x(n)={.,5,4,3,2,1,5,4,3,2,1,f,-10≤n≤9 注意在给定的区间上序列x(n)有四个周期。 11
>>n=[-10:9];x=[5,4,3,2,1]; >xtilde=x'ones(1,4); >xtilde (xtilde(:))'; >>subplot(2,2,4);stem(n,xtilde):title('例2.1d的序列) >>xlabel('n');ylabel('xtilde(n)'); 图2.1d给出了本序列的波形。 例2.1a的序列 例2.1b的序列 10 2 -1 2 0 5 0 10 20 例2.1c的序列 例2.1d的序列 6 0.5 0 2 0.5 -1 n 20 40 .10 -5 图2.1例2.1的序列曲线 ☐例2.2令x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1},求出以下序列的波形: a.x1(n)=2x(n-5)-3x(n+4) b.x2(n)=x(3-n)+x(n)x(n-2) 解:序列x(n)在-2≤n≤10区间内不等于零,因而 >>n=-2:10;x=[1:7,6:-1:1]; 将产生x(n)。 a.x1(n)=2x(n-5)-3x(n+4) 其中第一部分由将x(n)移位5,第二部分将x()移位-4求得。移位和相加可用 sigshift和sigadd函数方便地完成o >[x11,n11]=sigshift(x,n,5);[x12,n12]=sigshift(x,n,-4); >[x1,nl]=sigadd(2 x11,nl1,-3*x12,n12); >>subplot(2,l,I);stem(nl,xl);title('例2.2a的序列) 12
>xlabel('n');ylabel('xI(n)') x1(n)的波形见图2.2a。 b.x2(n)=x(3-n)+x(n)x(n-2) 其中第一项可以写成x(-(n-3)。因而它由先把x(n)折叠再把结果移位3而得。第 一项为x(n)和x(n-2)的乘积,它们两者的长度相同但基底(或采样位置)不同。这运算 可方便地用函数sigfold和sigmult完成o >[x21,n21]sigfold(x,n);x21,n21]=sigshift(x21,n21,3); >[x22,n22]=sigshift(x,n,2);[x22,n22]=sigmult(x,n,x22,n22); >>[x2,n2]=sigadd(x21,n21,x22,n22): >>subplot(2,1,2);stem(m2,x2);title('例2.2b的序列') >>xlabel('n');ylabel('x2(n)'); x2(n)的波形见图2.2b。 这个例了说明在本节中开发的四个sg*函数提供了一个处理序列的方便的方法。 例2.2a的序列 10 8 999 10 -20 6 0 15 时22b的座列 40 30 2 号 10 -7 0 12 图2.2例2.2的序列 例2.3产生复数值信号: x(n)=e-0.1+j0.3)m,-10≤n≤10 在四个子图中画出其幅度、相位、实部和虚部的波形。 解:其MATLAB程序为: >>n=[-10:1:10];alpha=-0.1+0.3ji 13
>x=exp(alpha n); >>subplot(2,2,i);stem(n,real(x):title('实部');xlable('n) >>subplot(2,2,2);stem(n,imag(x);title('虚部');xlable('n') >>subplot(2,2,3);stem(n,abs(x):title('振幅'):xlabel('n') >subplot(2,2.4);stem(n,(180/pi)angle(x));title('');xlabel('n') 此序列的波形见图2.3。 实部 应部 2 -10 0 0 .0 10 振幅 相位 3 200 0 100 0 .100 200 10 10 0 0 10 分 图2.3 例2.3的复数序列分解 一些有用的结果 在离散时间信号理论中有不少重要的结果。我们将讨论在数字信号处理中有用的那些内 容c 单位采样合成:任意序列x()可用移位和倍率厅的单位采样序列加权和求得: x(n)= x(k)8(n-k) (2.1) 我们将在下.·节中用这个结果。 偶和奇合成:一个实数序列x(n)被称为偶的(对称的)果: x.(-n)=x.(n) 同样,一个实数序列x,(n)被称为奇的(反对称的)如果: 14
x(-n)=-x。(n) 这样任何任意实数序列x(n)可用分解成它的偶和奇分量: x(n)=x。(n)+x(n) (2.2) 其中偶部和奇部分别由下式给出: xe(n)=[x(n)+x(-n)]/2;x.(n)=[x(n)-x(-n)l/2 (2.3) 我将在研究付利叶变换的特性时用到这种分解。因此,开发一个简单的MATLAB函 数来把个给定信号分解为偶部和奇部是一个很好的练习。利用已有的MATLAB运算,我 们可得到如下的evenodd函数。 function [xe,xo,m]=evenodd(x,n) %实信号分解为偶和奇两部分 % %[xe,xo,m]=evenodd(x,n) % if any(imag(x)"=0) error('x不是实序列) end m=-fliplr(n); ml min([m,n]);m2 max([m,n]);m=ml:m2; nm÷n(1))-m(1);nl=1:length(n): x1=zeros(1,length(m)); xl(nl +nm)=x;x=xl; xe=0.5*(x+fliplr(x); xo=0.5*(x -fliplr(x)); 本序列及其基底分别由x和数组给出。程序首先检查给定的序列是否为实,并在m 数组中确定偶和奇分量的基底。然后它执行(2.3),特别注意MATLAB的下标运算。得出的 分量分别存储在数组xe和x0中。 □例2.4设x(n)=u(n)-u(n-10),将它分解为偶和奇分量。 解:序列x(n)称为矩形脉神,它在0<=<=9区间不为零。我们将用MATLAB求得 并画出其偶部和奇部。 >>n=[0:10];x=stepseg(0,0,10)-stepseq(10,0,10); >Ixe,xo,m]=evenodd(x,n); >figure(1);clf 15