典型时域离散序列的产生与简单运算
1. 单位冲激序列
程序1:
function [x,n]=impseq(n0,n1,n2)
% generates x(n)=delta(n-n0); n1<=n<=n2
n=[n1:n2];
x=[(n-n0)==0];
调用:[x,n]=impseq(0,-3,4);
stem(n,x)
程序2:
n1=-3;n2=4;n0=0;
n=n1:n2;
x=[n==n0];
stem(n,x,'filled');
axis([n1,n2,0,1.1*max(x)]);
xlabel('时间(n)');ylabel('幅度x(n)');
title('单位脉冲序列');
2. 单位阶跃序列
程序:
n1=-3;n2=4;n0=0;
n=n1:n2;
x=[n>=n0];
stem(n,x,'filled');
axis([n1,n2,0,1.1*max(x)]);
xlabel('时间(n)');ylabel('幅度x(n)');
title('单位阶跃序列');
3. 矩形序列
程序:
10()00n n n δ=⎧=⎨≠⎩1≥0()00n u n n ⎧=⎨<⎩1 0≤≤1()0 N n N R n -⎧=⎨⎩其他
n=[-10:10];
xn1=[(n-0)>=0];
xn2=[(n-4)>=0]; %定义两个阶跃序列;
xn=xn1-xn2; 两个阶跃序列之差得到矩形序列;
stem(n,xn,'.');
xlabel('时间(n)');ylabel('幅度x(n)');
title(‘矩形序列');
4. 正弦序列
程序:
n=0:20;
xn=sin(pi/4*n);
stem(n,xn,'.');
xlabel('时间(n)');ylabel('幅度x(n)');
title(‘正弦序列');
5. 指数序列
程序:
n=[0:20];
x=(0.9).^n;
stem(n,x);
xlabel('时间(n)');ylabel('幅度x(n)');
title(‘指数序列');
6. 对conv 进行简单的扩展conv_m ,可以完成任意位置序列的卷积.
对于有限长序列x (n ),h (n ),它们分别的区域为[n xb,n xe]和[n hb,n he],则卷积后的区域为
[n xb+n hb,n xe+n he]
程序:
function[y,ny]=conv_m(x,nx,h,nh)
nyb=nx(1)+nh(1);
nye=nx(length(x))+nh(length(h));
ny=[nyb:nye];
y=conv(x,h);
调用:
x=[3,11,7,0,-1,4,2];
h=[2,3,0,-5,2,1];
nx=[-3:3];
nh=[-1:4];
[y,ny]=conv_m(x,nx,h,nh) ()sin()x n A n ωθ=+n
a n x =)(。