
1.1 离散时间信号的产生
1.单位脉冲序列δ(n)
解: MATLAB程序如下:
n=-5:30; %取点个数
x=[zeros(1,5),1,zeros(1,30)]; %定义序列
stem(n,x,'fill');
grid on %网格绘制
运行结果:
图3 单位脉冲序列δ(n)绘制图
2.单位阶跃序列u(n)
解:MATLAB程序如下:
n=-5:30; %取点个数
x=[zeros(1,5),ones(1,31)]; %定义序列
stem(n,x,'fill');
grid on; %网格绘制
运行结果:
图4 单位阶跃序列u(n)绘制图
3.矩形序列R8(n)
解:MATLAB程序如下:
n=-5:30; %取点个数
x=[zeros(1,5),ones(1,8),zeros(1,23)]; %定义序列
stem(n,x,'fill');
grid on; %网格绘制
运行结果:
图5 矩形序列R8(n)绘制图
4.正弦型序列x(n)=Asin(∏/5*n+∏/3)
解:MATLAB程序如下:
n=-15:20; %取点数
ph=pi/6; %定义初相
omega=pi/5; %定义角频率
A=3; %取幅值为3
x=A*sin(omega*n+ph); %定义序列
stem(n,x,'fill');
grid on;
运行结果:
图6 正弦序列绘制图(实验所得的正弦序列的周期T=10)
5.任意序列
例:(1) x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)
解:MATLAB程序如下:
n=-15:20;
x=[zeros(1,15),1,2,3,4,5,zeros(1,16)];
stem(n,x,'fill');
grid on;
运行结果:
图7 序列(1)绘制图
例(2) h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)
解: n=-15:20;
h=[zeros(1,15),1,2,1,2,zeros(1,17)];
stem(n,h,'fill');
grid on;
运行结果:
图8 序列(2)绘制图
2.2 序列的运算
1.序列的移位(MATLAB指令为circshift)
例:(1) x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4) 右移四位
解: MATLAB程序如下:
n=-5:15 %定义序列长度
x=[zeros(1,5),1,2,3,4,5,zeros(1,11)];
y=circshift(x,[0,4]); %右移四位
stem(n,y,'*k');
grid on ;
运行结果:
图9 序列(1)右移四位
(2) h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)左移四位
解:MATLAB程序如下:
n=-15:10
h=[zeros(1,15),1,2,1,2,zeros(1,7)];
y=circshift(h,[0,-4]);
stem(n,y,'*k');
grid on ;
运行结果:
图10 序列(2)左移四位
2.序列的反褶
例:(1)求x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)的反褶
解: MATLAB程序如下:
n=-10:10;
x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];
y=fliplr(x);
stem(n,y,'*k');
grid on ;
运行结果:
图11 序列(1)的反褶
(2)h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)的反褶
解:MATLAB程序如下:
n=-10:10
h=[zeros(1,10),1,2,1,2,zeros(1,7)];
y=fliplr(h);
stem(n,y,'*k');
grid on ;
运行结果:
图12 序列(2)的反褶
3.两序列的和
例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3) 求序列y(n)=x(n)+h(n)。
解:MATLAB程序如下:
n=-10:10;
x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];
h=[zeros(1,10),1,2,1,2,zeros(1,7)];
y=x+h;
stem(n,y,'*k');
grid on ;
图13 两序列的和
4.两序列的积
例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3) 求序列y(n)=x(n).*h(n)。
解:MATLAB程序如下:
n=-10:10;
x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];
h=[zeros(1,10),1,2,1,2,zeros(1,7)];
y=x.*h;
stem(n,y,'*k');
grid on ;
运行结果:
图14 两序列的积
5.两序列的标乘(MATLAB指令为dot)
例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3) 求序列x(n)、 h(n)的标乘
解:MATLAB程序如下:
n=-10:10;
x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];
h=[zeros(1,10),1,2,1,2,zeros(1,7)];
y=dot(x,h)
运行结果:
y =
16
6.序列的累加
例:(1)求x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)的累加
解:MATLAB程序如下:
n=-10:20;
x=[zeros(1,10),1,2,3,4,5,zeros(1,16)];
y=cumsum(x);
stem(n,y,'*k');
grid on ;
运行结果:
图15 序列(1)的累加
例:(2)求h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)的累加
解:MATLAB程序如下:
n=-10:20;
h=[zeros(1,10),1,2,1,2,zeros(1,17)];
y=cumsum(h);
stem(n,y,'*k');
grid on ;
运行结果:
图16 序列(2)的累加
2.3序列的卷积运算
例: x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)
h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)
解:(1)序列卷积计算公式:y(n)=x(n)*h(n)= x(m)h(n-m)
(2)根据定义计算y(n)
MATLAB程序如下:
N=10;
M=10;
L=N+M-1;
x=[1,2,3,4,5,zeros(1,5)];
h=[1,2,1,2,zeros(1,6)];
y=conv(x,h);
n=0:L-1;
stem(n,y,'*k');
grid on ;
运行结果:
图17 卷积和结果序列
通用程序:
function[y,n]=dconv(x,nx,h,nh);
x=input('请输入序列(1):x(n)=');
nx=input('请输入序列(1)长度(如0:5)=');
h=input('请输入序列(2):h(n)=');
nh=input('请输入序列(2)长度(如0:5)=');
y=conv(x,h)
k1=nx(1)+nh(1);
k2=length(x)+length(h)-2;
n=k1:k1+k2
subplot(131); stem(nx,x,'*r'); xlabel('nx');
ylabel('x(n)'); grid on ;
subplot(132); stem(nh,h,'*b'); xlabel('nh');
ylabel('h(n)'); grid on ;
subplot(133); stem(n,y,'*k'); xlabel('n');
ylabel('y(n)'); grid on ;
运行程序:(在命令窗口输入如下指令):
请输入序列(1):x(n)=[1 2 3 4 5]
请输入序列(1)长度(如0:5)=0:4
请输入序列(2):h(n)=[1 2 1 2]
请输入序列(1)长度(如0:5)=0:3
运行结果:
y =
1 4 8 14 20 20 13 10
n =
0 1 2 3 4 5 6 7
绘制的图形:
图18 通用程序卷积结果
2.4 产生方波信号序列
解: T=6; %周期为6
n=-5:0.1:2*T; %步进为0.1
duty=50; %占空比为50%
x=2*square(n,duty); %产生方波,幅值为2
stem(n,x,'*k');
grid on ;
运行结果:
图19 方波序列绘制图
2.5 产生锯齿波信号序列
解: n = 0:0.05:5;
y = 1-mod(x, 1);
stem(n,y,'*k');
grid on ;
图20 方波序列绘制图
2.6 思考题:实验中所产生的正弦序列的频率是多少?是否是周期序列?
答:由2∏/∏/5=10,10是正整数,所以实验产生的正弦序列是是周期序列,周期为10。
