当前位置:文档之家› 常见离散信号实现.

常见离散信号实现.

常见离散信号实现.
常见离散信号实现.

实验2 常见离散信号产生和实现

一、实验目的:

(1) 了解离散信号的特点; (2) 熟悉MATLAB 的基本使用方法; (3) 典型信号的MATLAB 表示方法; (4) 熟悉MATLAB Plot 函数等应用。

二、实验原理:

1.单位抽样序列

???=0

1

)(n δ

≠=n n 在MATLAB 中可以利用zeros()函数实现。

;

1)1();,1(==x N zeros x

如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:

?

??=-01

)(k n δ

0≠=n k n 2.单位阶越序列

???0

1

)(n u

<≥n n 在MATLAB 中可以利用ones()函数实现。

);,1(N ones x =

3.正弦序列 ?π+=Fs fn A n x

在MATLAB 中

)

/***2sin(*1

:0fai Fs n f pi A x N n +=-=

4.复指数序列 n j e r n x ??=)(

在MATLAB 中 )

**ex p(1

:0n w j r x N n ?=-=

5.指数序列 n a n x =

在MATLAB 中

n

a x N n .^1

:0=-=

三、MATLAB 基本使用方法

1、MATLAB 运行平台如图所示:在“>>”提示符后输入命令

并回车,执行结果会显示在屏幕上。

例如:输入y=3+5回车,显示结果如图所示。

另外在输入命令时,有时我们希望有些中间过程的结果不显示在屏幕上,而只显示最后的结果,这时我们需要在不显示执行结果的命令后加上“;”,该命令执行的结果不回显在屏幕上。例如:计算z=x+y,其中x=2+1,y=3+5,我只想看到z的值,输入命令格式如图所示,我们可以看

到x,y的结果没有在屏幕上显示,只显示z的值。

矩阵的输入方法有两种,第一种方式如图所示;

第二种方式如图所示

3、M文件的使用:

在处理一些包含多条命令的问题时,如果在MATLAB的命令窗口中进行处理,当出现错误时不好修改,这时我们需要借助MATLAB提供的M文件方式来处理。M文件类似于批处理件,单击MATLAB菜单中的“file”选项,从下拉列表中选取“new”

选项,从其下拉列表中选取“m_file”,即可打开M文件的编辑窗口如图所示:

另外,M文件还可以编写函数。MATLAB的工具箱提供了丰

富的函数,但有些时候,我们在解决一些问题的时候,需要编写一些自己需要而工具箱没有提供的函数。

函数在编写完成后进行保存时要注意,保存的文件名要与你定义的函数名一致,也就是说,该函数的文件名应该是“two_add.m

如何调用该函数?

4、使用MATLAB时候还有一些需要注意的地方:

1、变量的大小写有区别。

2、可以借助键盘的光标键调出之前输入的命令重新执行。

3、在命令窗口调用编写的M文件时,是有路径要求的,它的

默认路径是“work”子目录。如你编写的M文件在其他目

录,需要修改当前路径,修改的地方在命令窗口的工具栏

上“Current Directory”处,如图所示。

四、涉及的MATAB函数

1.plot函数

功能:在X轴和Y轴方向都按线性比例绘制二维图形。调用格式:

plot(x,y):绘出x对y的函数的线形图。

plot(x1,y1,x2,y2,….):绘出多组x对y的线性曲线图。

2.ezplot函数

功能:绘制符号函数在一定范围内的二维图形。简易绘制函数曲线。

调用格式:

ezplot(fun):在[-2π,2π]区间内绘制函数。

ezplot(fun,[min,max]:在[min,max]区间内绘制函

数。

ezplot(funx,funy):定义为同一曲面的函数,默认的区间是[0,2π].

3.sym函数

功能:定义信号为符号变量。

调用格式:

sym(fun):fun为所要定义的表达式。

4.subplot函数

功能:产生多个绘图区间

调用格式:

Subplot(m,n,p):产生m行n列的绘图区间的第p个绘图区间。

5.zeros函数

二维用法:zeros(m,n)或zeros(n)

功能:zeros(m,n)产生m×n的零矩阵,zeros(n)产生n×n 的全0方阵。

n维用法:zeros(m,n,p,...) 或zeros([m n p ...])或zeros (m,n,p...,classname)

功能:返回一个m×n×p×...的零矩阵。注意:m, n, p,...必须是非负整数,负整数将被当做0看待。当没有参数时classname时,产生的是标量零矩阵,有参数时产生指定类型的零矩阵,例如zeros(3,2,'uint8')。

6.stem函数

在matlab中,stem函数用于绘制火柴梗图。stem英文有“(工具的)柄,把,杆,茎,(树)干,(叶)柄的意思。

在matlab的命令窗口中输入doc stem或者help stem就可以获得该函数的帮助信息。

调用格式

stem(Y)

stem(X,Y)

stem(...,'fill')

stem(...,LineSpec)

stem(axes_handle,...)

h = stem(...)

7.ones函数

ones函数能够生成元素全为1的矩阵。

8、exp函数

如果在命令窗口中输入:exp(0)

则输出:1。

其实MATLAB和C中的exp函数和数学中以e为底的指数函数都是一样的。

9、clf函数

clf; 用来清除图形的命令。一般在画图之前用。

四、实验内容实现和图形生成

1、五种基本函数的生成

程序如下:

(1)、单位抽样序列

% 单位抽样序列和延时的单位抽样序列

clf;

n=0:10;

x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)]; subplot(1,2,1);

stem(n,x1);xlabel ('时间序列n');ylabel('振幅'); title('单位抽样序列x1');

subplot(1,2,2);

stem(n,x2); xlabel('时间序列n');ylabel('振幅'); title('延时了5的单位抽样序列');

(2)、单位阶越序列

clf;

n=0:10;

u=[ones(1,11)];

stem(n,u);xlabel ('时间序列n');ylabel('振幅');title('单位阶越序列');

所得的图形如下所示:

(3)正弦函数

clf;

n=1:30;

x=2*sin(pi*n/6+pi/3);

stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');

(4)、复指数序列

clf;

n=1:30;

x=2*exp(j*3*n);

stem(n,x); xlabel ('时间序列n');ylabel('振幅'); title('复指数序列x=2*exp(j*3*n)'); 图形如下:

(5)指数序列 clf; n=1:30; x=1.2.^n;

stem(n,x); xlabel ('时间序列n');ylabel('振幅'); title('指数序列x=1.2.^n');

2、绘出信号zn

e n x =)(,当6)12/1(πj z +-=、6

)12/1(πj z +=时、121=z 、

6

j

z +=、6

π

j z =时的信号实部和虚部图;

程序如下: clf;

z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j *pi/6;

n=0:20;

x1=exp(z1*n);x2=exp(z2*n); x3=exp(z3*n);x4=exp(z4*n); x5=exp(z5*n);

subplot(5,2,1);

stem(n,real(x1)); xlabel ('时间序列n');

ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部');

subplot(5,2,2);

stem(n,imag(x1)); xlabel ('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部');

subplot(5,2,3);

stem(n,real(x2)); xlabel ('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');

subplot(5,2,4);

stem(n,imag(x2)); xlabel ('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部');

subplot(5,2,5);

stem(n,real(x3)); xlabel ('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部');

subplot(5,2,6);

stem(n,imag(x3)); xlabel ('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');

subplot(5,2,7);

stem(n,real(x4)); xlabel ('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部');

subplot(5,2,8);

stem(n,imag(x4)); xlabel ('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部');

subplot(5,2,9);

stem(n,real(x5)); xlabel ('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部');

subplot(5,2,10);

stem(n,imag(x5)); xlabel ('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');

由上图的实部部分可以看出,Z=pi/6时,序列周期为12。计算序列周期为2*6=12。实验和理论相符。

3、绘出信号)1.0*2sin(5.1)(n n x π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?

程序如下: clf; n=0:40;

x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n); subplot(1,2,1);

stem(n,x1); xlabel ('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');

subplot(1,2,2);

stem(n,x2); xlabel ('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');

运行结果如下:

由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。理论计算中对第一个,N=2*pi/(0.1*pi)=10,第二个0.9不是pi的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。

4、使用帮助功能学习 square(方波), sawtooth(锯齿波)和sinc 函数,并绘图。

(1)、方波绘图程序如下:

%用square

t=-2*pi:0.001:2*pi;

x=square(t);

plot(t,x);

xlabel('t'),ylabel(' x=square(t)');

(2)、三角波绘图程序如下:

%用Sawtooth

t=-2*pi:0.001:2*pi;

y=sawtooth(t);

plot(t,y);

xlabel('t'),ylabel(' y=sawtooth(t);');

(3)sinc函数绘图程序如下:

>> t=-pi:0.001:pi; x=sinc(t);

>> plot(t,x);

>> xlabel('t'),ylabel('sinc(t);');

五、问题讨论与总结:

1、离散正弦序列的性质:

离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。对于离散序列x=sin(n*w) 来说,只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。所以在本实验中x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。因为0.9不是pi的倍数。

2、离散复指数序列性质:

对于离散复指数函数x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。其它情况下均不是。这个性质由本次实验中的五个函数的图像可以被证明。

实验1离散时间信号的产生与运算

数字信号处理 实验报告 班级: 学号: 姓名:word文档可自由复制编辑

实验1离散时间信号的产生与运算 一、实验目的 (1)了解离散时间信号的特点。 (2)掌握在计算机中生成及绘制各种常用离散时间信号序列的方法。 (3)掌握序列的加、减、乘、除和平移、反转、尺度变换等基本运算及计算机的 实现方法。 二、实验原理 信号是随时间变化的物理量,而计算机只能处理离散信号。离散信号是在某些不连续的时间上有信号值,而在其它时间点上没有定义的一类信号。离散信号一般可以由连续信号通过模数转换得到。 常用的离散信号有单位脉冲序列、单位阶跃序列、复指数序列、正弦信号序列、随机序列等。 离散信号的基本运算包括信号的加、减、乘、除。离散信号的时域变换包括信号的平移、反转、尺度变换等。 三、实验内容与方法 1、编写程序,生成如下数字信号:sqrt(2*k)u(k错误!未找到引用源。3), δ(k+5)。 (1) f(k)=sqrt(2*k)u(k错误!未找到引用源。3) 代码: k=(1:10); n=3; u=[(k-n)>=0]; a=sqrt(2*k); stem(k,a.*u); title('sqrt(2*k)u(k 3)的图像'); xlabel('时间(k)');ylabel('幅值f(k)'); 运行图: word文档可自由复制编辑

(2) f(k)= δ(k+5) 代码: k1=-10;k2=0;k=k1:k2; n=-5; %单位脉冲出现的位置 f=[(k-n)==0]; stem(k,f,'filled');title('δ(k+5)序列的图像') xlabel('时间(k)');ylabel('幅值f(k)'); 运行图: word文档可自由复制编辑

matlab实现:常见的离散时间信号

1. 单位抽样序列,或称为离散时间冲激,单位冲激: ? ??=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ? ??01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。 );,1(N ones x = 3.正弦序列 )(cos )(0φω+=n A n x 这里, ,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( 6. 随机序列 长度为N 的随机序列 基本数学函数参考教材P69页以及随后的使用说明。 注意使用行向量,特别是冒号运算符。 举例,长度为N 的实指数序列在MATLAB 中实现: n a x N n .^1 :0=-= 1. 单位采样 长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:

u=[1 )1,1(-N zeros ]; 延迟M 个采样点的长度为N 的单位采样序列ud(n)(M

实验一离散时间信号分析

实验一离散时间信号分析 一、实验目的 1. 初步掌握Matlab 的使用,掌握编写M 文件和函数文件 2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。 3. 掌握生成及绘制数字信号波形的方法。 4. 掌握序列的基本运算及实现方法。 5. 研究信号采样时采样定理的应用问题。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n 代表时间的序列,n 的取值范围为-∞< n<+∞的整数,n 取其它值x(n)没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x a(t)进行等间隔采样,采样间隔为T,得到{x (nT )} a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)δ(n)、单位阶跃序列u(n)、矩形序列R N(n)、 实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算

序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 y(n)=∑ x (m )h (n ?m )+∞m=?∞ =x(n)*h(n) 上式的运算关系称为卷积运算,式中* 代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4 个步骤。 (1)反褶:先将x (n )和h (n )的变量n 换成m ,变成x (m )和h (m ),再将h (m )以纵 轴为对称轴反褶成h (-m )。 (2)移位:将h (-m )移位n ,得h (n- m )。当n 为正数时,右移n 位;当n 为负数时, 左移n 位。 (3)相乘:将h (n -m )和x (m )的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得y (n )。 三、主要实验仪器及材料 PC 机、Matlab7.0。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB 产生和绘制下列有限长序列:

用MATL新编实现常用的离散时间信号及其时域运算

用M A T L新编实现常用的离散时间信号及其 时域运算 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

实验四用MATLAB实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时 间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时 间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必 须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的 相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运 算。 二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的 序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非 常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0

若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为: 1 n≥n0 1 n=n0 u(n-n0)= δ(n-n0)= 0 n

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

第2章 离散时间信号的表示及运算 2.1 实验目的 ● 学会运用MATLAB 表示的常用离散时间信号; ● 学会运用MATLAB 实现离散时间信号的基本运算。 2.2 实验原理及实例分析 2.2.1 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”、“filled”,或者参数“.”。由于MA TLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0()0(0 1)(≠=?? ?=n n n δ (12-1) 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例2-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])

离散控制系统分析方法

实验二 离散控制系统分析方法 一、实验目的 利用MATLAB 对各种离散控制系统进行时域分析。 二、实验指导 1.控制系统的稳定性分析 由前面章节学习的内容可知,对线性系统而言,如果一个连续系统的所有极点都位于s 平面的左半平面,则该系统是一个稳定系统。对离散系统而言,如果一个系统的全部极点都位于z 平面的单位圆内部,则该系统是一个稳定系统。一个连续的稳定系统,如果所有的零点都位于s 平面的左半平面,即所有零点的实部小于零,则该系统是一个最小相位系统。一个离散的稳定系统,如果所有零点都位于z 平面的单位圆内,则称该系统是一个最小相位系统。由于Matlab 提供了函数可以直接求出控制系统的零极点,所以使用Matlab 判断一个系统是否为最小相位系统的工作就变得十分简单。 2.控制系统的时域分析 时域分析是直接在时间域对系统进行分析。它是在一定输入作用下,求得输出量的时域表达式,从而分析系统的稳定性、动态性能和稳态误差。这是一种既直观又准确的方法。 Matlab 提供了大量对控制系统的时域特征进行分析的函数,适用于用传递函数表示的模型。其中常用的函数列入表1,供学生参考。 例1.z z z H 5.05 .1)(2+= 试绘出其单位阶跃响应及单位斜波输入响应。 解:为求其单位阶跃响应及单位斜波输入响应,编制程序如下: num=[1.5]; den=[1 0.5 0];sysd=tf(num,den,0.1) [y,t,x]=step(sysd);

subplot(1,2,1) plot(t,y); xlabel('Time-Sec'); ylabel('y(t)'); gtext('单位阶跃响应') grid; u=0:0.1:1; subplot(1,2,2) [y1,x]=dlsim(num,den,u); plot(u,y1) xlabel('Time-Sec'); ylabel('y(t)'); gtext('单位速度响应') grid 二、实验内容 1、MATLAB在离散系统的分析应用 对于下图所示的计算机控制系统结构图1,已知系统采样周期为T=0.1s,被 控对象的传递函数为 2 () s(0.11)(0.05s1) G s s = ++ ,数字控制器 0.36 () 0.98 z D z z - = + ,试 求该系统的闭环脉冲传递函数和单位阶跃响应。 图1 计算机控制系统结构图 实验步骤: 1).求解开环脉冲传递函数,运用下面的matlab语句实现:>> T=0.1; >> sys=tf([2],[0.005 0.15 1 0]); %将传函分母展开>> sys1=c2d(sys,T,'zoh'); >> sys2=tf([1 -0.36],[1 0.98],0.1); >> sys3=series(sys2,sys1) 执行语句后,屏幕上显示系统的开环脉冲传递函数为: sys3 = 0.03362 z^3 + 0.05605 z^2 - 0.01699 z - 0.002717 --------------------------------------------------

离散信号与系统时域分析

目录 第1章设计任务及要求 (1) 1.1课程设计内容 (1) 1.2课程设计要求 (1) 第2章设计原理 (2) 2.1离散信号与系统的时域分析设计 (2) 2.1.1描写系统特性的方法介绍 (2) 2.1.2系统的时域特性 (2) 第3章设计实现 (3) 3.1实验内容与方法 (3) 3.1.1实验内容 (3) 第4章设计结果及分析 (3) 4.1程序设计结果及分析 (4) 总结 (7) 参考文献: (7) 附录: (8)

第1章 设计任务及要求 1.1课程设计内容 编制Matlab 程序,完成以下功能,产生系统输入信号;根据系统差分方程求解单位脉冲响应序列;根据输入信号求解输出响应;用实验方法检查系统是否稳定;绘制相关信号的波形。具体要求如下: (1) 给定一个低通滤波器的差分方程为 ()0.05()0.05(1)0.9(1)y n x n x n y n =+-+- 输入信号分别为182()=()()()x n R n x n u n =, ① 分别求出系统响应,并画出其波形。 ② 求出系统的单位脉冲响应,画出其波形。 (2) 给定系统的单位脉冲响应为1102()=()()() 2.5(1) 2.5(2)(3)h n R n h n n n n n δδδδ=+-+-+-,用线性卷积法求18()=()x n R n 分别对系统h1(n)和h2(n)的输出响应,并画出波形。 (3) 给定一谐振器的差分方程为() 1.8237(1)-0.9801(2)()(2)o o y n y n y n b x n b x n =--++-令b0=1/100.49,谐振器的谐振频率为0.4rad 。 1) 用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。 2) 给定输入信号为()=sin(0.014)sin(0.4)x n n n +求出系统的输出响应,并画出其波形。 1.2课程设计要求 1. 要求独立完成设计任务。 2. 课程设计说明书封面格式要求见《天津城市建设学院课程设计教学工作规范》附表1 3. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。 4. 简述离散系统时域分析方法和通过实验判断系统稳定性的方法;完成以上设计实验并对结果进行分析和解释;打印程序清单和要求画出的信号波形;写出本次课程设计的收获和体会。 5. 课设说明书要求: 1) 说明题目的设计原理和思路、采用方法及设计流程。 2) 详细介绍运用的理论知识和主要的Matlab 程序。 3) 绘制结果图形并对仿真结果进行详细的分析。

离散时间信号与系统分析

离散时间信号与系统分析

离散时间信号与系统分析 5-1 下列系统中,表示激励,表示响应。试判断每个激励与响应的关系是否线性的,是否具有非移变性。 (1)(2) 解: (1)线性性 则 所以系统是线性的。 移变性 则 所以系统是移变系统。 (2)线性性 , 则 所以系统是线性的。 移变性 ()x n ()y n 2()()cos()510n y n x n ππ =+()()n m y n x m =-∞ =∑112()()cos( )510n y n x n ππ =+222()()cos() 510n y n x n ππ =+1122112211222()()[()()]cos( )()()510 n k x n k x n k x n k x n k y n k y n ππ +→++=+2()()cos( )510 n y n x n ππ=+2()'()()cos()()510 n x n m y n x n m y n m ππ -→=-+≠-11 ()() n m y n x n =-∞ = ∑22 ()() n m y n x n =-∞ = ∑11 22 11 2 2[()()]()() n m k x n k x n k y n k y n =-∞ +=+∑

设 则 所以系统是非移变的。 5-2求下列信号的卷积。 (1) (2) 解: (1)由卷积的性质可知 (2) 5-3 已知差分方程,激励,初始值,,试用零输入、零状态法求全响应。 ()() n m y n x n =-∞ = ∑()'()()()()() n n k n k m p m x n k y n x n k m k p x p x m y n k --=-∞ =-∞ =-∞ -→= --===-∑∑∑而故[()(4)][()(4)]u n u n u n u n --*--sin()()2() 2n n u n u n π*[()(4)][()(4)] [()(1)(2)(3)][()(1)(2)(3)] ()2(1)3(2)4(3)3(4)2(5)(6) u n u n u n u n n n n n n n n n n n n n n n n δδδδδδδδδδδδδδδ--*--=+-+-+-*+-+-+-=+-+-+-+-+-+-221111 5510510 Z[sin()()*2()]2122n i i n z z u n u n z z z z i z i π+-+=?=-++---+121111 5510510sin()()2()Z [] 2221111 [2()()()]()5510510 n n n n i i n u n u n Z Z i Z i i i i i u n π -+-+*=-+--+=?-++-+-()3(1)2(2)()y n y n y n f n +-+-=()2()n f n u n =(0)0y =(1)2y =()y n

离散时间信号表与运算

离散时间信号表与运算

————————————————————————————————作者:————————————————————————————————日期:

实验一 离散时间信号的表示与运算 一 实验目的 1、熟悉MATLAB 的绘图函数; 2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法; 3、掌握离散时间信号基本运算的MATLAB 实现; 4、掌握离散时间信号线性卷积和运算的MATLAB 实现。 二 实验设备 1、计算机 2、MA TLAB R2007a 仿真软件 三 实验原理 1)序列相加和相乘 设有序列)(1n x 和)(2n x ,它们相加和相乘如下: ) ()()()()()(2121n x n x n x n x n x n x ?=+= 注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。如果不相同,在运算前应采用zeros 函数将序列左右补零使其长度相等并且位置相对应。在MATLAB 中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。 2)序列翻转 设有序列:)()(n x n y -=,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。MATLAB 中,翻转运算用fliplr 函数实现。设序列)(n x 用样值向量x 和位置向量nx 表述,翻转后的序列 )(n y 用样值向量y 和位置向量ny 描述。 3)序列的移位 移位序列)(n x 的移位序列可表示为:)()(0n n x n y -=,其中,00>n 时代表序列右移 0n 个单位;00

离散时间系统的分析

课程设计报告 课程设计题目:离散时间系统分析学号:201420130206 学生姓名:董晓勇 专业:通信工程 班级:1421301 指导教师:涂其远 2015年12月18日

离散时间系统的分析 一、设计目的和意义 1 . 目的: (1)深刻理解卷积和、相加、相乘运算,掌握求离散序列卷积和、相加相乘的计算方法;(2)加深理解和掌握求离散序列Z变换的方法; (3)加深和掌握离散系统的系统函数零点、函数极点和系统时域特性、系统稳定性的关系。 2 . 意义: 在对《信号与系统》一书的学习中,进行信号与系统的分析是具有十分重要的意义,同时也是必不可少的。利用matlab函数,只需要简单的编程,就可以实现系统的时域、频域分析,对系统特性进行分析,为实际的系统设计奠定了基础。本设计在离散系统Z域分析理论的基础上,利用matlab对离散系统的稳定性和频域响应进行了分析。 二、设计原理

第一部分:对离散时间系统的时域进行分析呈 对离散时间信号的代数运算(相加、相乘、卷积和),是在时域进行分析。相加用“+”来完成,相乘用“·*”来完成,卷积和则用conv 函数来实现,具体形式为y=conv(x1,x2,….),其中x1,x2,…..为输入的离散序列 ,y 为输出变量。 在零初始状态下,matlab 控制工具箱提供了一个filter 函数,可以计算差分方程描述的系统的响应,其调用形式为: y=filter(b,a,f) 其中,a=[a0,a1,a2,…]、b=[b0,b1,b2,….]分别是系统方程左、右边的系数向量,f 表示输入向量,y 表示输出向量。 第二部分:对离散时间系统的Z 域进行分析 matlab 工具箱提供了计算Z 正变换的函数ztrans,其调用形式为: F=zrtans(f) %求符号函数f 的Z 变换,返回函数的自变量为z 。 Matlab 的zplane 函数用于系统函数的零极点图的绘制,调用方式为: zplane(b,a)其中,b 、a 分别为系统函数分子、分母多项式的系数向量。 matlab 中,利用freqz() 函数可方便地求得系统的频率响应,调用格式为: freqz(b,a,N) 该调用方式将绘制系统在0~PI 范围内N 个频率等分点的幅频特性和相频特性图。 三、 详细设计步骤 1.自己设计两个离散时间序列x1、x2,对其进行相加,相乘,卷积运算,并显示出图形。 2.根据已知的LTI 系统:y[n]-0.7y[n-1]-0.6y[n-2]+y[n-3]=x[n]+0.5[n-1],得其在Z 域输 入输出的传递函数为: 1 12310.5()10.70.6z H z z z z ----+= --+ 利用matlab 求:(1)系统函数的零点和极点,并在z 平面显示他们的分布;(2)画出幅频响应和相频响应的特性曲线。 四、 设计结果及分析 (1).自行设计产生两个离散序列信号,对其进行相加、乘及卷积运算

用MATLAB实现常用的离散时间信号及其时域运算

实验四用MATLAB实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。 二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0 若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为: 1 n≥n0 1 n=n0 u(n-n0)= δ(n-n0)= 0 n

单位样值序列与连续时间的单位冲激信号的异同。 (2)离散时间信号的时域运算。 与连续时间系统的研究类似,在离散系统分析中,经常遇到离散时间信号的运算,包括两信号的相加、相乘以及序列自身的移位、反褶、尺度等等,也需要了解在运算过程中序列的表达式以及对应的波形的变化。 序列x(n)的移位:x(n-n0) 序列x(n)的反褶:x(-n) 序列x(n)的尺度变换:x(an) 两序列x1(n)与x2(n)的相加减:x1(n) ±x2(n) 两序列与的相乘:x1(n) ·x2(n) (3)学习如何使用MATLAB语言产生离散时间信号并对离散时间信号进行时域运算。四、实验任务: (1)编制用于产生下列信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。调试并运行这些通用的程序。 ①x(n)=Aδ(n-n0) 程序:function un(t1,t2,t0) t=t1:t2; n=length(t); tt=t1:t2; n1=length(tt); f=zeros(1,n); f(1,t0-t1+1)=3; stem(t,f),grid on title('μ¥??3??÷D?o?') axis([t1,t2 -0.2 4])

离散时间信号分析

离散时间信号分析 实验目的:利用MA TLAB进行离散时间序列的基本运算,掌握基本的MA TLAB函数的编写和调试方法。 实验内容: (1)信号相加 x(n)=x1(n)+x2(n) 当两个相加的序列长度不同时或位置不对应时,首先必须调整二者的位置对齐,然后通过zeros函数左右补零使其长度相等后再相加。下面的参考代码利用函数sigadd说明了这些运算,其验证将在后续实验中进行。 MATLAB参考代码 function[y,n]=sigadd(x1,n1,x2,n2) %implements y(n)=x1(n)+x2(n) %--------------------------------------------- %[y,n]=sigadd(x1,n1,x2,n2) %y=sum sequence over n,which includes n1 and n2 %x1=first sequence over n1 %x2=second sequence over n2(n2 can be different from n1) % n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n) y1=zeros(1,length(n)); y2=y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;%x1 with duration of y y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;%x2 with duration of y y=y1+y2;%sequence addition (2)信号相乘 信号相乘,即两个序列的乘积(或称“点乘”),表达式为: x(n)=x1(n)?x2(n) 在MA TLAB中,用运算符“.*”实现。

连续和离散系统分析

实验一连续与离散系统分析 一、实验目得 学习连续系统与离散系统响应得matlab求解方法; 二、实验主要仪器设备与材料 计算机 三、实验方法、步骤及结果测试 实验方法:编程,上机调试,分析实验结果; 步骤: 编程实现上述各实验内容 四、实验结果 1、某系统得传递函数为: 试求系统得冲激响应与阶跃响应。 2、编制程序求解下列两个系统得单位冲激响应与阶跃响应,并绘出其图形。要求

分别用filter、conv、impz三种函数完成。给出理论计算结果与程序计算结果并讨论。 (I) 理论计算结果: 程序计算结果: A:单位冲激响应 (1)用Filter函数(2)用Conv函数 (3)用impz函数 单位冲激响应: n 0 1 2 3 4 5 h(n) 1 -1、75 1、19 -0、67 0、355 -0、18 单位阶跃响应: n 0 1 2 3 4 5 y(n) 1 -0、75 0、44 -0、234 0、12 -0、06

B:单位阶跃响应(1)用Fil ter 函数 (2)用Conv 函数 (3)用Imp z函数 (II ) 理论计算结果: 程序计算结果: A:单位冲激响应(1)用f ilter 函数 单位冲激响应: n 0 1 2 3 4 5 h(n) 0 0、25 0、25 0、25 0、25 单位阶跃响应: N 0 1 2 3 4 5 y(n) 0 0、25 0、5 0、75 1 1

(2)用Conv函数 (3)用Impz函数 B:单位阶跃响应 (1)用filter函数 (2)用Conv函数 (3)用Impz函数

实验一离散时间信号与系统分析

实验一 离散时间信号与系统分析 一、实验目的 1.掌握离散时间信号与系统的时域分析方法。 2.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。 3.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。 二、实验原理 1.离散时间系统 一个离散时间系统是将输入序列变换成输出序列的一种运算。若以][?T 来表示这种运算,则一个离散时间系统可由下图来表示: 图 离散时间系统 输出与输入之间关系用下式表示 )]([)(n x T n y = 离散时间系统中最重要、最常用的是线性时不变系统。 2.离散时间系统的单位脉冲响应 设系统输入)()(n n x δ=,系统输出)(n y 的初始状态为零,这是系统输出用)(n h 表示,即)]([)(n T n h δ=,则称)(n h 为系统的单位脉冲响应。 可得到:)()()()()(n h n x m n h m x n y m *=-= ∑∞ -∞= 该式说明线性时不变系统的响应等于输入序列与单位脉冲序列的卷积。 3.连续时间信号的采样 采样是从连续信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域何频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、Z 变换和序列傅氏变换之间关系的理解。 对一个连续时间信号进行理想采样的过程可以表示为信号与一个周期冲激脉冲的乘 积,即:)()()(?t t x t x T a a δ=

其中,)(?t x a 是连续信号)(t x a 的理想采样,)(t T δ是周期冲激脉冲 ∑∞ -∞=-= m T mT t t )()(δδ 设模拟信号)(t x a ,冲激函数序列)(t T δ以及抽样信号)(?t x a 的傅立叶变换分别为)(Ωj X a 、)(Ωj M 和)(?Ωj X a ,即 )]([)(t x F j X a a =Ω )]([)(t F j M T δ=Ω )](?[)(?t x F j X a a =Ω 根据连续时间信号与系统中的频域卷积定理,式(2.59)表示的时域相乘,变换到频域为卷积运算,即 )]()([21)(?Ω*Ω=Ωj X j M j X a a π 其中 ?∞ ∞ -Ω-==Ωdt e t x t x F j X t j a a a )()]([)( 由此可以推导出∑∞-∞=Ω-Ω=Ωk s a a jk j X T j X )(1)(? 由上式可知,信号理想采样后的频谱是原来信号频谱的周期延拓,其延拓周期等于采样频率。根据香农定理,如果原信号是带限信号,且采样频率高于原信号最高频率的2倍,则采样后的离散序列不会发生频谱混叠现象。 4.有限长序列的分析 对于长度为N 的有限长序列,我们只观察、分析在某些频率点上的值。 ???-≤≤=n N n n x n x 其它010),()( 一般只需要在π2~0之间均匀的取M 个频率点,计算这些点上的序列傅立叶变换: ∑-=-=1 0)()(N n jn j k k e n x e X ωω 其中,M k k /2πω=,1,,1,0-=M k 。)(ωj e X 是一个复函数,它的模就是幅频特 性曲线。 三、主要实验仪器及材料

实验七--离散系统分析的MATLAB实现讲解学习

实验七 离散系统分析的MATLAB 实现 一、实验目的 1、掌握利用MATLAB 绘制系统零极点图的方法; 2、掌握离散时间系统的零极点分析方法; 3、学习离散系统响应的MATLAB 求解方法; 4、掌握用MATALB 实现离散系统频率特性分析的方法; 5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。 二、基本原理 (一)离散系统零极点 线性时不变离散系统可用线性常系数差分方程描述,即 ()()N M i j i j a y n i b x n j ==-=-∑∑ (1) 其中()y k 为系统的输出序列,()x k 为输入序列。 将式(1)两边进行Z 变换, 00 () () ()() () M j j j N i i i b z Y z B z H z X z A z a z -=-== == ∑∑ (2) 将式(2)因式分解后有: 11 () ()() M j j N i i z q H z C z p ==-=-∏∏ (3) 其中C 为常数,(1,2,,)j q j M =L 为()H z 的M 个零点,(1,2,,)i p i N =L 为()H z 的 N 个极点。 系统函数()H z 的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。因此,系统函数的零极点分布对离散系统特性的分析具有非常重要意义。 (二)离散系统零极点图及零极点分析 1、零极点图的绘制 设离散系统的系统函数为 () ()() B z H z A z =

则系统的零极点可用MATLAB 的多项式求根函数roots()来实现,调用格式为: p=roots(A) 其中A 为待求根多项式的系数构成的行矩阵,返回向量p 则是包含多项式所有根的列向量。如多项式为231 ()48 B z z z =+ +,则求该多项式根的MATLAB 命令为为: A=[1 3/4 1/8]; P=roots(A) 运行结果为: P = -0.5000 -0.2500 需注意的是,在求系统函数零极点时,系统函数可能有两种形式:一种是分子、分母多项式均按z 的降幂次序排列;另一种是分子、分母多项式均按1z -的升幂次序排列。这两种方式在构造多项式系数向量时稍有不同。 (1)()H z 按z 的降幂次序排列:系数向量一定要由多项式最高次幂开始,一直到常数项,缺项要用0补齐。如 34322()3221 z z H z z z z z +=++++ 其分子、分母多项式系数向量分别为A=[1 0 2 0]、B=[1 3 2 2 1]。 (2)()H z 按1z -的升幂次序排列:分子和分母多项式系数向量的维数一定要相同,不足的要用0补齐,否则0z =的零点或极点就可能被漏掉。如 1 1212()11124 z H z z z ---+=++ 其分子、分母多项式系数向量分别为A=[1 2 0]、B=[1 1/2 1/4]。 用roots()求得()H z 的零极点后,就可以用plot()函数绘制出系统的零极点图。下面是求系统零极点,并绘制其零极点图的MATLAB 实用函数ljdt(),同时还绘 制出了单位圆。函数ljdt()的程序如下: function ljdt(A,B) % The function to draw the pole-zero diagram for discrete system p=roots(A) %求系统极点 q=roots(B) %求系统零点 p=p'; %将极点列向量转置为行向量 q=q'; %将零点列向量转置为行向量 x=max(abs([p q 1])); %确定纵坐标范围

信号、系统及系统响应,离散系统的时域分析实验报告

实验报告 实验二 信号、系统及系统响应,离散系统的时域分析 一、实验目的 (1) 熟悉连续信号经理想采样前后的频谱变换关系,加深对时域采样定理的理 解; (2) 熟悉时域离散系统的时域特性; (3) 利用卷积方法观察分析系统的时域特性; (4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信 号、离散信号及系统响应进行频域分析。 (5) 熟悉并掌握离散系统的差分方程表示法; (6) 加深对冲激响应和卷积分析方法的理解。 二、实验原理与方法 1、信号、系统及系统响应 采样是连续信号数字处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号信息不丢失的条件,而且可以加深对傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。 我们知道,对一个连续信号xa(t)进行理想采样的过程可用(2-1)表示。 ^ ()()() (21) a a x t x t p t =- 其中^ ()a x t 为()a x t 的理想采样,()p t 为周期冲激脉冲,即 ()() (22) n p t t nT δ∞ =-∞= --∑ ^ ()a x t 的傅里叶变换^ ()a X j Ω为 ^ 1()[()] (23) a a s m X j X j m T ∞ =-∞ Ω=Ω-Ω-∑ (2-3)式表明^ ()a X j Ω为()a X j Ω的周期延拓,其延拓周期为采样角频率

(2/)s T πΩ=。其采样前后信号的频谱只有满足采样定理时,才不会发生频率混叠失真。 将(2-2)带入(2-1)式并进行傅里叶变换: ^ ()[()()]j t a a n X j x t t nT e dt δ∞ ∞ -Ω-∞ =-∞ Ω=-∑? [()()]j t a n x t t nT e dt δ∞ ∞ -Ω-∞ =-∞ = -∑? ()(24) j nT a n x nT e ∞ -Ω=-∞ = -∑ 式中()a x nT 就是采样后得到的序列()x n ,即 ()()a x n x nT = ()x n 的傅里叶变换()j X e ω为 ()()(25) j j n n X e x n e ω ω∞ -=-∞ = -∑ 比较(2-5)和(2-4)可知 在数字计算机上观察分析各种序列的频域特性, 通常对X(ej ω)在[0, 2π]上进行M 点采样来观察分析。 对长度为N 的有限长序列x(n), 有 一个时域离散线性非移变系统的输入/输出关系为 上述卷积运算也可以在频域实现 2、离散系统时域分析 ^ ()() (26) j a T X j X e ωω=ΩΩ=-1 ()()(27) 2,0,1,,1k N j n j k n k X e x m e k k M M ωωπ ω--==-= =???-∑()()()()() (28) m y n x n h n x m h n m ∞ =-∞ =*= --∑()()() (29) j j j Y e X e H e ωωω=-式中

《离散时间信号的表示及运算》

实验一 离散时间信号的表示及运算 一、实验目的 1.掌握离散时间信号的时域表示; 2.掌握离散时间信号的基本运算; 3.用MA TLAB 表示的常用离散时间信号及其运算; 4.掌握用MA TLAB 描绘二维图形的方法。 二、实验原理 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。离散时间信号的波形绘制在MATLAB 中一般用stem 函数。 对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB 的点乘和点除、序列移位和反折来实现。 一些常用序列 1.单位冲激序列(单位抽样))(n δ ?? ?≠==0,00,1)(n n n δ (1) 2.单位阶跃序列)(n u ???=,,01)(n u 00<≥n n (2) 3.矩形序列)(n R N ???=,,01)(n R N 其他10-≤≤N n (3) 4.正弦序列和指数序列 正弦序列 )s i n ()(0?ω+=n A n x (4) 式中:A 为幅度,0ω为数字域的频率,它反映了序列变化的速率,?为起始相位。 实指数序列 )()(n u a n x n = (5)

式中,a 为实数。当1a 时,序列是发散的。a 为负数时,序列是摆动的。 复指数序列 n j e n x )(0)(ωσ+= (6) 它具有实部和虚部,0ω是复正弦的数字域频率。 三、实验内容 1.用Matlab 编制程序分别产生单位抽样序列)(n δ、单位阶跃序列)(n u 、矩形序列)()(5n R n x =、正弦序列)8 sin(2)(n n x π=、复指数序列n j e n x )641()(π+=,并画波形图; 绘制)(n δ波形 绘制n j e n x ][)()2.01.0(π+-=的实部和虚部的波形。

相关主题
文本预览
相关文档 最新文档