资源描述:
《数字信号处理及应用卢光跃》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、求序列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
2、)= δ(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.两序列的标
3、乘(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) 运行结果:
4、 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)
5、= δ(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)=
6、δ(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 卷积和结果序列 通用程序: fu
7、nction[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(n
8、x,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)');