实验1 常见离散信号产生与实现 一、实验目得 1、加深对常用离散信号得理解; 2、熟悉使用MATLAB在时域中产生一些基本得离散时间信号。 二、实验原理 1、单位抽样序列
在MATLAB中可以利用函数实现。 2、单位阶越序列 在MATLAB中可以利用函数实现: 3、正弦序列 在MATLAB中实现过程如下: 4、复指数序列 在MATLAB中实现过程如下: 5、指数序列 在MATLAB中实现过程如下: 三、预习要求 1、预先阅读实验讲义(MATLAB基础介绍); 2、讨论正弦序列、复指数序列得性质。
A.绘出信号,当、时、、时得信号实部与虚部图;当时呢?此时信号周期为多少?
程序如下: titlez1=-1/12+j*pi/6; titlez2=1/12+j*pi/6; z3=1/12; z4=2+j*pi/6; z5=j*pi/6; n=0:20; x1=exp(titlez1*n); x2=exp(titlez2*n); x3=exp(z3*n); x4=exp(z4*n); x5=exp(z5*n); subplot(5,2,1); stem(n,real(x1)); xlabel('n');ylabel('real(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,2); stem(n,imag(x1)); xlabel('n');ylabel('imag(x1)'); title('z1=-1/12+j*pi/6时') subplot(5,2,3); stem(n,real(x2)); xlabel('n');ylabel('real(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,4); stem(n,imag(x2)); xlabel('n');ylabel('image(x2)'); title('z2=1/12+j*pi/6时') subplot(5,2,5); stem(n,real(x3)); xlabel('n');ylabel('real(x3)'); title('z3=1/12时') subplot(5,2,6); stem(n,imag(x3)); xlabel('n');ylabel('image(x3)'); title('z3=1/12时') subplot(5,2,7); stem(n,real(x4)); xlabel('n');ylabel('real(x4)'); title('z4=2+j*pi/6时') subplot(5,2,8); stem(n,imag(x4)); xlabel('n');ylabel('image(x4)'); title('z4=2+j*pi/6时') subplot(5,2,9); stem(n,real(x5)); xlabel('n');ylabel('real(x5)'); title('z5=j*pi/6时') subplot(5,2,10); stem(n,imag(x5)); xlabel('n');ylabel('image(x5)'); title('z5=j*pi/6时')
运行结果如下: 当Z=pi/6时,序列周期为12。 B.绘出信号得频率就是多少?周期就是多少?产生一个数字频率为0、9得正弦序列,并显示该信号,说明其周期。 (1)当x1=1、5*sin(2*pi*0、1*n)时 程序如下: n=-20:20; x=1、5*sin(2*pi*0、1*n); stem(n,y) xlabel('时间序号'); ylabel('幅度'); title('x1=1、5*sin(2*pi*0、1*n)')
程序运行结果如下: 由图可知,x1得周期为10,频率为0、1、 (2)当x2=1、5*sin(0、9*pi*0、1*n)时 程序如下: n=-20:20; x2=1、5*sin(0、9*n); stem(n,x2) xlabel('时间序号'); ylabel('幅度'); title('x2=1、5*sin(0、9*pi*0、1*n)') 程序运行结果如下: 由图可知,x2为非周期函数,由理论分析可得,0、9不就是π得倍数,所以不就是周期函数。
3、使用帮助功能学习square(方波),sawtooth(锯齿波)与sinc函数,并绘图。 程序如下: (1)方波程序: %%%%%%%%%%%%%%%%%%%% n=-2*pi:0、0001:2*pi y=square(n); plot(n,y) xlabel('时间序号'); ylabel('幅度'); title('square') 方波结果: %%%%%%%%%%%%%%%%%%% (2)锯齿波程序: n=-10:0、0001:10; y=sawtooth(n); plot(n,y) xlabel('时间序号'); ylabel('幅度'); title('sawtooth') 锯齿波结果: %%%%%%%%%%%%%%%%%%%%% (3)sinc函数程序: n=-10:0、1:10; y=sinc(n); plot(n,y) xlabel('时间序号'); ylabel('幅度'); title('sinc') Sinc函数结果: 四、实验内容 编制程序产生上述5种信号,长度可输入确定,函数需要得参数可输入确定,并绘出其图形。 (1)单位抽样序列 函数部分: function y=fun1(n) y=[zeros(1,n-1) 1 zeros(1,n-1)]; 调用部分: n = 3; y = fun1(n); stem((-n+1):(n-1),y) xlabel('时间序号'); ylabel('幅度'); -2-1.5-1-0.500.511.5200.10.20.30.40.50.60.70.80.91时间序号幅度
(2)阶跃序列 函数部分: function y=fun2(n) y=[zeros(1,n-1) ones(1,n)]; 调用部分: n=3; y = fun2(n); stem((-n+1):(n-1),y) xlabel('时间序号'); ylabel('幅度'); -2-1.5-1-0.500.511.5200.10.20.30.40.50.60.70.80.91时间序号幅度
(3)正弦序列 n=-20:20; A=2; fai=pi/6; f=10; fs=100; y=A*sin(2*pi*f*n/fs+fai); clf; stem(n,y) xlabel('时间序号'); ylabel('幅度'); 图形如下: -20-15-10-505101520-2-1.5-1-0.500.511.52时间序号幅度
(4)复指数序列 函数部分: function y=fun4(n,r,w) y=r*exp(j*w*n); subplot(2,1,1); stem(n,real(y)) xlabel('时间序号'); ylabel('幅度'); title('real part') subplot(2,1,2); stem(n,imag(y)); xlabel('时间序号'); ylabel('幅度'); title('imaginary part'); 调用部分: n=-20:20; r=2; w=5; y=fun4(n,r,w); 图形如下:
-10-8-6-4-20246810-2-1012
时间序号幅度
real part
-10-8-6-4-20246810-2-1012时间序号幅度
imaginary part
(5)指数序列 函数部分: function y=fun5(a,n); y=a、^n; stem(n,y) xlabel('时间序号'); ylabel('幅度'); xlabel('时间序号'); ylabel('幅度'); title('指数序号') 调用部分: n=-5:10; a=2; y=fun5(a,n);