实验三离散时间信号的表示及运算 联系客服

发布时间 : 星期一 文章实验三离散时间信号的表示及运算更新完毕开始阅读8e633f3583c4bb4cf7ecd1d1

实验三 离散时间信号的表示及运算

3.1实验目的

1.学会运用MATLAB表示常用离散时间信号的方法; 2.学会运用MATLAB实现离散时间信号的基本运算。 3.2实验原理及实例分析 1 信号的表示

例3-1该程序用来产生离散时间信号x[n]=sin(0.2πn)。 >> clear, close all, n = -10:10;

x = sin(0.2*pi*n); stem (n,x)

title ('Sinusoidal signal x[n]')

例3-2该程序用来仿真下面形式的离散时间信号: x[n]={...., 0.1, 1.1, -1.2, 0, 1.3, ….} ↑n=0 >> clear, close all, n = -5:5;

x = [0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0]; stem(n,x,'.') grid on,

title ('A discrete-time sequence x[n]') xlabel ('Time index n')

例3-3 当 x[n]={ 0.1, 1.1, -1.2, 0, 1.3} 时,为了得到例3-2中的序列, ↑n=0

可以用这个MATLAB语句x = [zeros(1,4) x zeros(1, 2)] 来实现。用这种方法编写的程序如下: >> clear, close all, n = -5:5;

x = [zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2)]; stem (n,x,'.') grid on,

title ('A discrete-time sequence x[n]') xlabel ('Time index n')

离散时间单位阶跃信号u[n]定义为

?1,u[n]???0, n?0n?0 1.2

离散时间单位阶跃信号u[n]除了也可以直接用前面给出的扩展函数来产生,还可以利用MATLAB内部函数ones(1,N) 来实现。这个函数类似于zeros(1,N),所不同的是它产生的矩阵的所有元素都为1。

值得注意的是,利用ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为N单位门(Gate)序列,也就是u[n]-u[n-N]。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。 在绘制信号的波形图时,有时我们需要将若干个图形绘制在同一个图形窗口中,这就需要使用MATLAB的图形分割函数subplot(),其用法是在绘图函数stem或plot之前,使用图形分割函数subplot(n1,n2,n3),其中的参数n1,n2和n3的含义是,该函数将把一个图形窗口分割成n1×n2个子图,即将绘制的图形将绘制在第n3个子图中。 2 信号的基本运算

对于离散信号,它的基本运算包括加、减、乘、除、时移、反折等,与连续时间信号处理方法基本一样。

3.3 编程练习

1.利用MATLAB命令画出下列各序列的波形图。

?1?(1)x(n)???u?n?

?2?>> clear, close all, n =0:10;

x =(1/2).^n.*(n>=0); stem (n,x)

title ('signal x[n]')

n

(2)x(n)?2nu?n? >> clear, close all, n =0:6;

x =2.^n.*(n>=0); stem (n,x)

title ('signal x[n]')

?1?(3)x(n)????u?n?

?2?>> clear, close all, n =0:10;

x =(-(1/2)).^n.*(n>=0); stem (n,x)

title ('signal x[n]')

n