实验一
1. 在MATLAB中实现??n?n0?序列,显示范围n1?n?n2(函数命名为impseq(n0,n1,n2))。并利用该函数实现序列:y?n??2??n?3????n?6?;
?3?n?10
程序如下:
%函数impseq(n0,n1,n2) function y=impseq(n0,n1,n2) n=n1:1:n2%横坐标
y=[(n-n0)==0]%生成离散信号y(n) %脚本文件 %调用以上函数 n=-3:10;
y=2*impseq(3,-3,10)+impseq(6,-3,10); stem(n,y,'k','filled') title('单位脉冲序列') xlabel('时间(n)'); ylabel('幅度y(n)'); 仿真结果:
单位脉冲序列21.81.61.41.2幅度y(n)10.80.60.40.20-4-202时间(n)46810
2. 在MATLAB中实现u?n?n0?序列,显示范围n1?n?n2(函数命名为
y?n??u?n?2??u?n?2??5?n?20 stepseq(n0,n1,n2))。并利用该函数实现序列:
程序如下:
%函数stepseq(n0,n1,n2) function y=stepseq(n0,n1,n2) n=n1:1:n2; y=[(n-n0)>=0]; %脚本文件 %调用以上函数 n=-5:20;
y=stepseq(2,-5,20)+stepseq(-2,-5,20); stem(n,y,'k',’filled’) title('单位阶跃序列') xlabel('时间(n)'); ylabel('幅度y(n)');
仿真结果:
单位阶跃序列21.81.61.41.2幅度y(n)10.80.60.40.20-505时间(n)101520
3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。如:
x?n???0.3?n0?n?50
程序如下:
%函数zhishu(a,n1,n2) function y=zhishu(a,n1,n2) n=n1:n2; y=(a).^n; %脚本文件 %调用以上函数 y=zhishu(0.3,0,50); n=0:50;
stem(n,y,'k','filled') title('实指数序列') xlabel('时间(n)');
ylabel('幅度y(n)'); 仿真结果:
实指数序列10.90.80.70.6幅度y(n)0.50.40.30.20.100510152025时间(n)3035404550
4. 在MATLAB中用函数sin或cos产生正余弦序列,如:
π??x?n??11sin?0.3πn???5cos?0.3πn?5??0?n?20
程序如下: %脚本文件 n=0:20;
x=11*sin(0.3*pi*n+0.2*pi)+5*cos(0.3*pi*n); stem(n,x,'k','filled') title('正余弦序列') xlabel('时间(n)'); ylabel('幅度y(n)'); 仿真结果:
相关推荐: