实验一--常见离散信号的MATLAB产生和图形显示 下载本文

内容发布更新时间 : 2024/6/3 13:08:10星期一 下面是文章的全部内容请认真阅读。

.

实验一 常见离散信号的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;

.