资源描述:
《实验一 常见离散信号的MATLAB产生和图形显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一常见离散信号的MATLAB产生和图形显示授课课时:2学时一、实验目的:(1)熟悉MATLAB应用环境,常用窗口的功能和使用方法。(2)掌握MATLAB在时域内产生常用离散时间信号的方法。(3)掌握离散信号的基本运算。(4)掌握简单的绘图命令。二、实验原理:(一)信号的表示和产生①单位抽样序列如果在时间轴上延迟了k个单位,得到即:参考程序:例1-1:clearalln1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x
2、(n)stem(n,x);%绘制脉冲杆图xlabel('n');ylabel('x(n)');%横坐标和纵坐标的标注说明。title('UnitSampleSequence');%图形上方标注图名axis([-102001.2]);%确定横坐标和纵坐标的取值范围②单位阶跃序列例1-2:clearalln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x(n)stem(n,x,'filled');6xlabel('n');ylabel('x(n)');title('Unitst
3、epSequence');axis([-22001.2]);③正弦序列例1-3:一正弦信号的频率为1HZ,振幅值幅度A为1V,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。参考程序:clearf=1;A=1;nt=2;N=32;T=1/f;%输入信号频率,振幅和显示周期数dt=T/N;%采样时间间隔n=0:nt*N-1;%建立离信号的时间序列tn=n*dt;%确定时间序列阳电在时间轴上的位置。x=A*sin(2*pi*f*tn);subplot(2,1,1);plot(
4、tn,x);%显示原连续信号axis([0nt*T1.1*min(x)1.1*max(x)]);%限定横坐标和纵坐标的显示范围ylabel('x(t)');subplot(2,1,2);stem(tn,x);%显示经采样的信号axis([0nt*T1.1*min(x)1.1*max(x)]);ylabel('x(n)');④复指数序列例1-4;,求n1=30;a=-0.1;w=0.6;n=0:n1;x=exp((a+j*w)*n);stem(n,x);xlabel('n');ylabel('x(n)');title('复指数序列')
5、;⑤指数序列6例1-5:,其中a为实数clearn1=-10;n2=10;a1=0.5;a2=2;na1=n1:0;x1=a1.^na1;na2=0:n2;x2=a2.^na2;subplot(2,2,1),plot(na1,x1);title('实指数信号(a<1)');subplot(2,2,3),stem(na1,x1);title('实指数序列(a<1)');subplot(2,2,2),plot(na2,x2);title('实指数信号(a>1)');subplot(2,2,4),stem(na2,x2);title('实
6、指数序列(a>1)');(二)序列的基本运算对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。a)序列的相加与相乘设两离散序列x1(n),x2(n),序列相加为x(n)=x1(n)+x2(n),相乘为x(n)=x1(n).x2(n),实际上是对应的序列值相加或相乘。在MATLAB中可以用运算符“+”实现,但相加的两个序列必须有相同的长度,且应该保证它们是相
7、同的采样位置相加或相乘,因此在计算时,必须格外注意序列下标的计算。例1-6:求clearalln1=0;n2=10;n01=2;n02=4;%赋初值n=n1:n2;x1=[(n-n01)==0];x2=[(n-n02)==0];x3=x1+x2;subplot(3,1,1);stem(n,x1);title('x1');subplot(3,1,2);stem(n,x2);title('x2');subplot(3,1,3);stem(n,x3);6title('x3');例1-7:求x1(n)+x2(n)clearalln1=-4:
8、6;n01=-2;x1=[(n1-n01)>=0];%建立x1信号n2=-5:8;n02=4;x2=[(n2-n02)>=0];%建立x2信号n=min([n1,n2]):max([n1,n2]);%为x信号建立时间序列nN=leng