内容发布更新时间 : 2024/11/2 16:38:00星期一 下面是文章的全部内容请认真阅读。
.
实验一 常见离散信号的MATLAB产生和图形显示
授课课时:2学时 一、实验目的:
(1)熟悉MATLAB应用环境,常用窗口的功能和使用方法。 (2)掌握MATLAB在时域内产生常用离散时间信号的方法。 (3)掌握离散信号的基本运算。 (4)掌握简单的绘图命令。
二、实验原理:
(一)信号的表示和产生
① 单位抽样序列
?1n?0 ?(n)??
0n?0?如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:
?(n?k)??
参考程序:
例1-1:x(n)??(n)(?10?n?20)
clear all
?1?0n?kn?0
n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。 n=n1:n2;%生成离散信号的时间序列 x=[n==n0];%生成离散信号x(n) stem(n,x);%绘制脉冲杆图
.
.
xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。 title('Unit Sample Sequence');%图形上方标注图名 axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围
② 单位阶跃序列
n?0?1 u(n)??
n?0?0例1-2:x(n)?u(n)(?2?n?20)
clear all
n1=-2;n2=20;n0=0;
n=n1:n2;%生成离散信号的时间序列 x=[n>=n0];%生成离散信号x(n) stem(n,x,'filled'); xlabel('n');ylabel('x(n)'); title('Unit step Sequence'); axis([-2 20 0 1.2]);
③ 正弦序列
x(n)?Asin(wn??)
例1-3:一正弦信号的频率为1HZ,振幅值幅度A为1V,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。 参考程序:
clear f=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(tn,x);%显示原连续信号
axis([0 nt*T 1.1*min(x) 1.1*max(x)]);%限定横坐标和纵坐标的显示范围 ylabel('x(t)');
subplot(2,1,2);stem(tn,x);%显示经采样的信号 axis([0 nt*T 1.1*min(x) 1.1*max(x)]); ylabel('x(n)');
④ 复指数序列
x(n)?ejwn
jwn例1-4;??-0.1、??0.6,求x(n)?en1=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('复指数序列');
⑤ 指数序列
x(n)?anu(n)
例1-5:x(n)?an ,其中a为实数
clear n1=-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('实指数序列(a>1)');
(二)序列的基本运算
.
.
对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB的点乘和点除、序列移位和反折来实现,与连续时间信号处理方法基本一样。 a)序列的相加与相乘
设两离散序列x1(n),x2(n),序列相加为x(n)=x1(n)+x2(n),相乘为x(n)=x1(n).x2(n),实际上是对应的序列值相加或相乘。在MATLAB中可以用运算符“+”实现,但相加的两个序列必须有相同的长度,且应该保证它们是相同的采样位置相加或相乘,因此在计算时,必须格外注意序列下标的计算。
例1-6:求x(n)??(n?2)??(n?4)clear all
n1=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);
title('x3'); 例1-7:
(0?n?10)
x1(n)?u(n?2)(?4?n?6) 求x1(n)+x2(n)
x2(n)?u(n?4)(?5?n?8)clear all n1=-4:6;
.