实验一基于Matlab的数字信号处理基本分析解析

  • 格式:doc
  • 大小:2.99 MB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 基于Matlab 的数字信号处理基本操作

一、 实验目的:学会运用MA TLAB 表示的常用离散时间信号;学会运用MA TLAB 实现离

散时间信号的基本运算。 二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。 三、 实验内容:

(一) 离散时间信号在MATLAB 中的表示

离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。

离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。由于MATLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。

1. 单位取样序列

单位取样序列)(n δ,也称为单位冲激序列,定义为

)

0()

0(0

1)(≠=⎩⎨

⎧=n n n δ

要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即

function y=impDT(n)

y=(n==0); %当参数为0时冲激为1,否则为0

调用该函数时n 必须为整数或整数向量。

【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为

>>n=-3:3; >>x=impDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])

程序运行结果如图1-1所示。

图1-1 单位冲激序列

2. 单位阶跃序列

单位阶跃序列)(n u 定义为

)

0()

0(0

1)(<≥⎩⎨

⎧=n n n u

在MA TLAB 中,冲激序列可以通过编写uDT .m 文件来实现,即

function y=uDT(n)

y=n>=0; %当参数为非负时输出1

调用该函数时n 也同样必须为整数或整数向量。

【实例1-2】 利用MATLAB 的uDT 函数绘出单位阶跃序列的波形图。 解:MATLAB 源程序为

>>n=-3:5; >>x=uDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])

程序运行结果如图1-2所示。

3. 矩形序列

矩形序列)(n R N 定义为

)

,0()

10(0

1

)(N n n N n n R N ≥<-≤≤⎩⎨

⎧= 1

矩形序列有一个重要的参数,就是序列宽度N 。)(n R N 与)(n u 之间的关系为

)()()(N n u n u n R N --=

因此,用MATLAB 表示矩形序列可利用上面所讲的uDT 函数。

图2-2 单位阶跃序列

【实例1-3】 利用MATLAB 命令绘出矩形序列)(5n R 的波形图。 解:MATLAB 源程序为

>>n=-3:8;

>>x=uDT(n)-uDT(n-5);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('矩形序列') >>axis([-3 8 -0.1 1.1])

程序运行结果如图1-3所示。

4. 单边指数序列

单边指数序列定义为

)()(n u a n x n =

【实例2-4】 试用MA TLAB 命令分别绘制单边指数序列)(2.1)(1n u n x n =、

)()2.1()(2n u n x n -=、)()8.0()(3n u n x n =、)()8.0()(4n u n x n -=的波形图。

解:MATLAB 源程序为

>>n=0:10;

>>a1=1.2;a2=-1.2;a3=0.8;a4=-0.8; >>x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n; >>subplot(221)

>>stem(n,x1,'fill'),grid on >>xlabel('n'),title('x(n)=1.2^{n}') >>subplot(222)

>>stem(n,x2,'fill'),grid on

>>xlabel('n'),title('x(n)=(-1.2)^{n}') >>subplot(223)

>>stem(n,x3,'fill'),grid on >>xlabel('n'),title('x(n)=0.8^{n}') >>subplot(224)

>>stem(n,x4,'fill'),grid on

图1-3 矩形序列

>>xlabel('n'),title('x(n)=(-0.8)^{n}')

单边指数序列n 的取值范围为0≥n 。程序运行结果如图1-4所示。从图可知,当1||>a 时,

单边指数序列发散;当1||a 时,该序列均取正值;当0

5. 正弦序列

正弦序列定义为

)sin()(0ϕω+=n n x

其中,0ω是正弦序列的数字域频率;ϕ为初相。与连续的正弦信号不同,正弦序列的自变量n 必须为整数。可以证明,只有当

2ωπ

为有理数时,正弦序列具有周期性。

【实例1-5】 试用MATLAB 命令绘制正弦序列)6

sin()(π

n n x =的波形图。 解:MATLAB 源程序为

>>n=0:39; >>x=sin(pi/6*n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('正弦序列') >>axis([0,40,-1.5,1.5]); eree

程序运行结果如图1-5所示。

图1-4 单边指数序列