搜档网
当前位置:搜档网 › 试验二用MATLAB建立传递函数模型

试验二用MATLAB建立传递函数模型

试验二用MATLAB建立传递函数模型
试验二用MATLAB建立传递函数模型

《自动控制原理》实验指导书

北京科技大学自动化学院控制科学与工程系

2013年4月

目录

实验一典型系统的时域响应和稳定性分析 (1)

实验二用MATLAB建立传递函数模型 (5)

实验三利用MATLAB进行时域分析 (13)

实验四线性定常控制系统的稳定分析 (25)

实验五利用MATLAB绘制系统根轨迹 (29)

实验六线性系统的频域分析 (37)

实验七基于MATLAB控制系统频域法串联校正设计 (51)

附录1 MATLAB简介 (58)

附录2 SIMULINK简介 (67)

实验一典型系统的时域响应和稳定性分析

一、实验目的

1.研究二阶系统的特征参量(ξ、ωn) 对过渡过程的影响。

2.研究二阶对象的三种阻尼比下的响应曲线及系统的稳定性。

3.熟悉Routh判据,用Routh判据对三阶系统进行稳定性分析。

二、实验设备

PC机一台,TD-ACC+教学实验系统一套。

三、实验原理及内容

1.典型的二阶系统稳定性分析

(1) 结构框图:如图1-1所示。

图1-1

(2) 对应的模拟电路图:如图1-2所示。

图1-2

(3) 理论分析

系统开环传递函数为:G(s)=?

开环增益:K=?

先算出临界阻尼、欠阻尼、过阻尼时电阻R的理论值,再将理论值应用于模拟

电路中,观察二阶系统的动态性能及稳定性,应与理论分析基本吻合。在此实验中由图1-2,可以确地1-1中的参数。

0?T =, 1?T =,1?K = ?K ?=

系统闭环传递函数为:()?W s = 其中自然振荡角频率:?n ω=;阻尼比:?ζ=。

2.典型的三阶系统稳定性分析

(1) 结构框图:如图1-3所示。

图1-3

(2) 模拟电路图:如图1-4所示。

图1-4

(3) 理论分析

系统的开环传函为:()()?G s H s =

系统的特征方程为:1()()0G s H s +=。 (4) 实验内容

实验前由Routh 判断得Routh 行列式为:

S 3 S 2 S 1 S 0

为了保证系统稳定,第一列各值应为正数,因此可以确定

系统稳定K值的范围

系统临界稳定K

系统不稳定K值的范围

四、实验步骤

1)将信号源单元的“ST”端插针与“S”端插针用“短路块”短接。由于每个运放单元均设置了锁零场效应管,所以运放具有锁零功能。将开关分别设在“方波”档和“500ms~12s”档,调节调幅和调频电位器,使得“OUT”端输出的方波幅值为1V,周期为10s左右。

2.)典型二阶系统瞬态性能指标的测试

(1) 按模拟电路图1-2接线,将1中的方波信号接至输入端,取R = 10KΩ。

(2) 用示波器观察系统响应曲线C(t),测量并记录超调M P、峰值时间t p和调节时间t S。

(3) 分别按R = 20KΩ;40KΩ;100KΩ;改变系统开环增益,观察响应曲线C(t),测量并记录性能指标M P、t p和t S,及系统的稳定性。并将测量值和计算值进行比较(实验前必须按公式计算出)。将实验结果填入表1-1中。

3)典型三阶系统的性能

(1) 按图1-4接线,将1中的方波信号接至输入端,取R = 30KΩ。

(2) 观察系统的响应曲线,并记录波形。

(3) 减小开环增益(R = 41.7KΩ;100KΩ),观察响应曲线,并将实验结果填入表1-3中。表1-3中已填入了一组参考测量值,供参照。

五、实验现象分析

1)典型二阶系统瞬态性能指标实验测试值

表1-1

其中2

1e

Mp ζ

-ζπ

-=,2n

p 1t ζ

-ωπ

=

,n s 4

t ζω=,2

1p e 1)t (C ζ-ζπ

-+=

2)典型三阶系统在不同开环增益下的响应情况

表1-2

表1-3

注意:在做实验前一定要进行对象整定,否则将会导致理论值和实际测量值相差较大。

实验二 用MATLAB 建立传递函数模型

一、实验目的

(1)熟悉MA TLAB 实验环境,掌握MA TLAB 命令窗口的基本操作;

(2)掌握MA TLAB 建立控制系统数学模型的命令及模型相互转换的方法; (3)掌握使用MA TLAB 命令化简模型基本连接的方法;

(4)学会使用Simulink 模型结构图化简复杂控制系统模型的方法。 二、实验原理及内容

控制系统常用的数学模型有四种:传递函数模型(tf 对象)、零极点增益模型(zpk 对象)、结构框图模型和状态空间模型(ss 对象)。经典控制理论中数学模型一般使用前三种模型,状态空间模型属于现代控制理论范畴。 1、有理函数模型

线性连续系统的传递函数模型可一般地表示为:

m n a s a s a s b s b s b s b s G n

n n n m m m m ≥++???++++???++=--+- )(11

11

121 (1)

将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num 和den ,就可以轻易地将传递函数模型输入到MA TLAB 环境中。命令格式为:

],,,,[121+???=m m b b b b num ; (2) ]

,,,,,1[121n n a a a a den -???=;

(3)

用函数tf ( ) 来建立控制系统的传递函数模型,该函数的调用格式为: G =tf(num ,den); (4) 例1 一个简单的传递函数模型:

5

4325

)(2

34+++++=

s s s s s s G 可以由下面的命令输入到MATLAB 工作空间中去。 >> num=[1,2];

den=[1,2,3,4,5]; G=tf(num ,den) 运行结果:

Transfer function: s + 2 ----------------------------- s^4 + 2 s^3 + 3 s^2 + 4 s + 5

这时对象G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。 例2 一个稍微复杂一些的传递函数模型:

)

6()13()

5(6)(22++++=

s s s s s G

>> num=6*[1,5];

den=conv(conv([1,3,1],[1,3,1]),[1,6]); tf(num,den) 运行结果

Transfer function:

6 s + 30

-----------------------------------------

s^5 + 12 s^4 + 47 s^3 + 72 s^2 + 37 s + 6

其中conv()函数(标准的MATLAB 函数)用来计算两个向量的卷积,多项式乘法也可以用这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。 【自我实践1】建立控制系统的传递函数模型:25

()(1)(44)

G s s s s s =+++

2、零极点模型

线性系统的传递函数还可以写成极点的形式:

)

())(()

())(()(2121n m p s p s p s z s z s z s K

s G +???+++???++=

将系统增益K 、零点-z i 和极点-p j 以向量的形式输入给三个变量KGain 、Z 和P ,命令格式为:

;K KGain =

(6) ;;;;][21m z z z Z -???--= (7) ;;;;][21n p p p P -???--=

(8)

用函数命令zpk ( ) 来建立系统的零极点增益模型,其函数调用格式为: G=zpk(Z,P,KGain) (9) 例3 某系统的零极点模型为:

)

6412.00433.0)(2272.19567.0()

9287.00353.0)(9294.1(6

)(j s j s j s s s G ±-±+±++=

>> KGain=6;

z=[-1.9294;-0.0353+0.9287j;-0.0353-0.9287j];

p=[-0.9567+1.2272j;-0.9567-1.2272j;0.0433+0.6412j;0.0433-0.6412j]; G=zpk(z,p,KGain)

运行结果:

Zero/pole/gain:

6 (s+1.929) (s^2 + 0.0706s + 0.8637) --------------------------------------------------------- (s^2 - 0.0866s + 0.413) (s^2 + 1.913s + 2.421)

注意:对于单变量系统,其零极点均是用列向量来表示的,故z 、p 向量中各项均用分号(;)隔开。

【自我实践2】建立控制系统的零极点模型:228(1)(1)

()(5)(6)(1)

s j s j G s s s s s +-++=

+++

3、控制系统模型间的相互转换

零极点模型转换为传递函数模型:[num , den] = zp2tf ( z, p, k ) 传递函数模型转化为零极点模型:[z , p , k] = tf2zp ( num, den ) 例4 给定系统传递函数为:

s

s s s s s s G 5.19225.72

.952.618.6)(2

342+++++= 对应的零极点模型可由下面的命令得出 >> num=[6.8, 61.2, 95.2]; den=[1, 7.5, 22, 19.5, 0]; G=tf(num,den); G1=zpk(G) 显示结果:

Zero/pole/gain:

6.8 (s+7) (s+2)

------------------------------ s (s+1.5) (s^2 + 6s + 13)

可见,在系统的零极点模型中若出现复数值,则在显示时将以二阶因子的形式表示相应的共轭复数对。

例5 给定零极点模型:

)

5.1)(23())

7)(2(8

.6)(+±+++=s j s s s s s G

可以用下面的MA TLAB 命令立即得出其等效的传递函数模型。输入程序时要注意大小写。

>> Z=[-2,-7];

P=[0,-3-2j,-3+2j,-1.5]; K=6.8;

G=zpk(Z,P,K); G1=tf(G)

结果显示:

Transfer function:

6.8 s^2 + 61.2 s + 95.2

--------------------------------------- s^4 + 7.5 s^3 + 22 s^2 + 19.5 s

【自我实践3】已知系统传递函数232

56

()2s s G s s s s

++=++,求其等效的零极点模型。 【自我实践4】建立控制系统的多项式模型:8(1)(2)

()(5)(6)(3)

s s G s s s s s ++=+++。

4、反馈系统结构图模型

设反馈系统结构图如图所示。

图2-1反馈系统结构图

两个环节反馈连接后,其等效传递函数可用feedback ( ) 函数求得,其调用格式为:

sys = feedback (G1, G2, sign )

其中sign 是反馈极性,sign 缺省时,默认为负反馈,sign =-1;正反馈时,sign =1;单位反馈时,G2=1,且不能省略。

series( )函数:实现两个模型的串联;多于两个必须嵌套使用。 parallel( )函数:实现两个模型的并联;多于两个必须嵌套使用。 例6 若反馈系统如图2-1中的两个传递函数分别为: 21)1(1)(+=

s s G , 1

1

)(2

+=s s G

则反馈系统的传递函数: >> G1=tf(1,[1,2,1]); G2=tf(1,[1,1]);

G=feedback(G1,G2) 运行结果:

Transfer function:

s + 1

------------------------- s^3 + 3 s^2 + 3 s + 2

若采用正反馈连接结构输入命令 >> G=feedback(G1,G2,1) 则得出如下结果:

Transfer function: s + 1

--------------------- s^3 + 3 s^2 + 3 s

例7 若反馈系统为更复杂的结构如图2- 1所示。其中

2450351024247)(2

34231+++++++=s s s s s s s s G ,2105()s G s s +=,1

01.01

)(+=s s H

图2- 1复杂反馈系统

则闭环系统的传递函数:

>> G1=tf([1,7,24,24],[1,10,35,50,24]);

G2=tf([10,5],[1,0]); H=tf([1],[0.01,1]);

G_a=feedback(G1*G2,H)

结果为:

Transfer function:

0.1 s^5 + 10.75 s^4 + 77.75 s^3 + 278.6 s^2 + 361.2 s + 120 --------------------------------------------------------------------

0.01 s^6 + 1.1 s^5 + 20.35 s^4 + 110.5 s^3 + 325.2 s^2 + 384 s + 120

【自我实践5】已知系统前向通道的传递函数2

21

()23

s G s s s +=

++,求其单位负反馈闭环传递函数。

5、Simulink 建模方法

在一些实际应用中,如果系统的结构过于复杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的Simulink 程序可以用来建立新的数学模型。Simulink 是由Math Works 软件公司1990年为MA TLAB 提供的新的控制系统模型图形输入仿真工具。它具有两个显著的功能:Simul(仿真)与Link(连接),即可以利用鼠标在模型窗口上“画”出所需的控制系统模型。然后利用SIMULINK 提供的功能来对系统进行仿真或线性化分析。与MATLAB 中逐行输入命令相比,输入更容易,分析更直观。下面简单介绍SIMULINK 建立系统模型的基本步骤: (1)

SIMULINK 的启动:在MATLAB 命令窗口的工具栏中单击按钮

或者在

命令提示符>>下键入simulink 命令,回车后即可启动Simulink 程序。启动后软件自动打开Simullink 模型库窗口,如 图2- 3所示。这一模型库中含有许多子模型库,如Sources(输入源模块库)、Sinks(输出显示模块库)、Nonlinear(非线性环节)等。若想建立一个控制系统结构框图,则应该选择File| New 菜单中的Model 选项,或选择工具栏上new Model 按钮,打开一个空白的模型编辑窗口如错误!未找到

引用源。所示。

图2- 2 simulink 模型库 图2- 3模型编辑窗口

(2) 画出系统的各个模块:打开相应的子模块库,选择所需要的元素,用鼠标左键点中后拖到模型编辑窗口的合适位置。

(3) 给出各个模块参数:由于选中的各个模块只包含默认的模型参数,如默认的传递函数模型为1/(s+1)的简单格式,必须通过修改得到实际的模块参数。要修改模块

的参数,可以用鼠标双击该模块图标,则会出现一个相应对话框,提示用户修改模块参数。

(4)画出连接线:当所有的模块都画出来之后,可以再画出模块间所需要的连线,构成完整的系统。模块间连线的画法很简单,只需要用鼠标点按起始模块的输出端(三角符号),再拖动鼠标,到终止模块的输入端释放鼠标键,系统会自动地在两个模块间画出带箭头的连线。若需要从连线中引出节点,可在鼠标点击起始节点时按住Ctrl 键,再将鼠标拖动到目的模块。

(5)指定输入和输出端子:在Simulink下允许有两类输入输出信号,第一类是仿真信号,可从source(输入源模块库)图标中取出相应的输入信号端子,从Sink(输出显示模块库)图标中取出相应输出端子即可。第二类是要提取系统线性模型,则需打开Connection(连接模块库)图标,从中选取相应的输入输出端子。

例8典型二阶系统的结构图如图2- 4所示。用SIMULINK对系统进行仿真分析。

图2- 4 典型二阶系统结构图

按前面步骤,启动simulink并打开一个空白的模型编辑窗口。

(1)画出所需模块,并给出正确的参数:

●在sources子模块库中选中阶跃输入(step)图标,将其拖入编辑窗口,并用

鼠标左键双击该图标,打开参数设定的对话框,将参数step time(阶跃时刻)

设为0。

●在Math(数学)子模块库中选中加法器(sum)图标,拖到编辑窗口中,并双

击该图标将参数List of signs(符号列表)设为|+-(表示输入为正,反馈为负)。

●在continuous(连续)子模块库中、选积分器(Integrator)和传递函数(Transfer

Fcn)图标拖到编辑窗口中,并将传递函数分子(Numerator)改为〔900〕,

分母(Denominator)改为〔1,9〕。

●在sinks(输出)子模块库中选择scope(示波器)和Out1(输出端口模块)图标并将

之拖到编辑窗口中。

(3)将画出的所有模块按错误!未找到引用源。用鼠标连接起来,构成一个原系统的框图描述如图2- 5所示。

(4)选择仿真算法和仿真控制参数,启动仿真过程。

●在编辑窗口中点击Simulation|Simulation parameters菜单,出现参数对话框,在

solver模板中设置响应的仿真范围StartTime(开始时间)和StopTime(终止时间),仿

真步长范围Maxinum step size(最大步长)和Mininum step size(最小步长)。对于本例,StopTime可设置为2。最后点击Simulation|Start菜单或点击相应的热键启动仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果如图2- 7所示。

图2- 5 二阶系统的simulink实现

图2- 6仿真结果示波器显示图2- 7 MA TLAB命令得出的系统响应曲线

命令窗口中键入whos命令,会发现工作空间中增加了两个变量――tout和yout,这是因为Simulink中的Out1 模块自动将结果写到了MATLAB的工作空间中。利用MATLAB命令plot(tout,yout),可将结果绘制出来,如错误!未找到引用源。所示。比较图2- 7和错误!未找到引用源。,可以发现这两种输出结果是完全一致的。

三、实验能力要求

(1)熟练使用各种函数命令建立控制系统数学模型。

(2)完成实验的范例题和自我实践,并记录结果。

实验三 利用MATLAB 进行时域分析

一、实验目的

(1) 学会使用MA TLAB 编程绘制控制系统的单位阶跃响应曲线;

(2) 研究二阶控制系统中,ξ、ωn 对系统动态特性和时域指标的影响; (3) 掌握准确读取动态特性指标的方法;

(4) 分析二阶系统闭环极点和闭环零点对系统动态性能的影响;

(5) 研究三阶系统单位阶跃响应及其动态性能指标与其闭环极点的关系; (6) 研究闭环极点和闭环零点对高阶系统动态性能的影响; (7) 了解高阶系统中主导极点与偶极子的作用;

(8) 了解系统阶跃响应、脉冲响应和斜坡响应输出曲线之间的联系与差别。 二、实验原理及内容 1. 求系统的特征根

若已知系统的特征多项式D (s),利用roots ( ) 函数可以求其特征根。若已知系统的传递函数,利用eig ( ) 函数可以直接求出系统的特征根。 2、求系统的闭环根、ξ和ωn

函数damp ( ) 可以计算出系统的闭环根、ξ和ωn 。 3、零极点分布图

可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,调用格式为:

pzmap(num,den)

【范例3-1】给定传递函数:

2

72436

4523)(2

345234+++++++++=s s s s s s s s s s G 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图3- 所示。

>> num=[3,2,5,4,6]; den=[1,3,4,2,7,2];

pzmap(num,den) title(1Pole-Zero Map1) % 图形标题。

图3- 1 MATLAB 函数零、极点分布图

4、求系统的单位阶跃响应

step ( ) 函数可以计算连续系统单位阶跃响应(impulse( ) 函数可以计算连续系统单位脉冲响应):

step (sys) 或step ( sys , t ) 或step (num , den)

函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys 可以由tf ( ),zpk ( ) 函数中任何一个建立的系统模型。第二种格式中t 可以指定一个仿真终止时间,也可以设置为一个时间矢量(如t =0 : dt : Tfinal ,即dt 是步长,Tfinal 是终止时刻)。

如果需要将输出结果返回到MA TLAB 工作空间中,则采用以下调用格式: c=step(sys)

此时,屏上不会显示响应曲线,必须利用plot()命令查看响应曲线。plot 可以根据两个或多个给定的向量绘制二维图形。 【范例3-2】已知传递函数为:25

425

)(2

++=

s s s G 利用以下MATLAB 命令可得阶跃响应曲线如图3- 所示。 >> num=[0,0,25]; den=[1,4,25];

step(num,den)

grid % 绘制网格线。 title(1Unit-Step Response of G(s)=25/(s^2+4s+25) 1) % 图像标题

图3- 2 MATLAB 绘制的响应曲线

还可以用下面的语句来得出阶跃响应曲线 >> G=tf([0,0,25],[1,4,25]);

t=0:0.1:5; % 从0到5每隔0.1取一个值。 c=step(G,t); % 动态响应的幅值赋给变量c

plot(t,c) % 绘二维图形,横坐标取t ,纵坐标取c 。 Css=dcgain(G) % 求取稳态值。

系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果 Css= 1

5、求阶跃响应的性能指标

MATLAB 提供了强大的绘图计算功能,可以用多种方法求取系统的动态响应指标。首先介绍一种最简单的方法――游动鼠标法。对于例2,在程序运行完毕后,在曲线中空白区域,单击鼠标右键,在快捷菜单中选择”characteristics ”,包含:Peak response (峰值); settling time (调节时间);Rise time(上升时间);steady state(稳态值);在相应位置出现相应点,用鼠标单击后,相应性能值就显示出来。用鼠标左键点击时域响应曲线任意一点,系统会自动跳出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)。这种方法简单易用,但同时应注意它不适用于用plot()命令画出的图形。

【自我实践1】若已知单位负反馈前向通道的传递函数为:2100

()5G s s s

=

+,试作出

其单位阶跃响应曲线,准确读出其动态性能指标,并记录数据。

另一种比较常用的方法就是用编程方式求取时域响应的各项性能指标。与游动鼠标法相比,编程方法稍微复杂,但可以获取一些较为复杂的性能指标。

若将阶跃响应函数step( )获得系统输出量返回到变量y中,可以调用如下格式[y,t]=step(G)

该函数还同时返回了自动生成的时间变量t,对返回变量y和t进行计算,可以得到时域性能指标。

①峰值时间(timetopeak)可由以下命令获得:

[Y,k]=max(y);

timetopeak=t(k)

②最大(百分比)超调量(percentovershoot)可由以下命令得到:

C=dcgain(G);

[Y,k]=max(y);

percentovershoot=100*(Y-C)/C

dcgain( )函数用于求取系统的终值。

③上升时间(risetime)可利用MA TLAB中控制语句编制M文件来获得。

要求出上升时间,可以用while语句编写以下程序得到:

C=dcgain(G);

n=1;

while y(n)

n=n+1;

end

risetime=t(n)

在阶跃输入条件下,y 的值由零逐渐增大,当以上循环满足y=C时,退出循环,此时对应的时刻,即为上升时间。

对于输出无超调的系统响应,上升时间定义为输出从稳态值的10%上升到90%所需时间,则计算程序如下:

C=dcgain(G);

n=1;

while y(n)<0.1*C

n=n+1;

end

m=1;

while y(n)<0.9*C

m=m+1;

end

risetime=t(m)-t(n)

④调节时间(setllingtime)可由while语句编程得到:

C=dcgain(G);

i=length(t);

while(y(i)>0.98*C)&(y(i)<1.02*C)

i=i-1; end

setllingtime=t(i)

用向量长度函数length( )可求得t 序列的长度,将其设定为变量i 的上限值。 【范例3-3】已知二阶系统传递函数为:)

31)(31(3

)(i s i s s G ++-+=

利用下面的stepanalysis.m 程序可得到阶跃响应如图3-及性能指标数据。 >> G=zpk([ ],[-1+3*i,-1-3*i ],3);

% 计算最大峰值时间和超调量。 C=dcgain(G) [y,t]=step(G);

plot(t,y) grid

[Y,k]=max(y); timetopeak=t(k)

percentovershoot=100*(Y-C)/C % 计算上升时间。 n=1;

while y(n)

risetime=t(n)

% 计算调节时间。 i=length(t);

while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1; end

setllingtime=t(i)

运行后的响应图如图3-,命令窗口中显示的结果为

C = timetopeak = 0.3000 1.0491 percentovershoot = risetime =

35.0914 0.6626 setllingtime = 3.5337

图3-3 二阶系统阶跃响应

用游动鼠标法求取此二阶系统的各项性能指标与本例是一致的。

6、分析ωn不变时,改变阻尼比ξ,观察闭环极点的变化及其阶跃响应的变化。【自我实践2】二阶系统,ωn=10,当ξ=0,0.25,0.5,0.75,1,1.25时,求对应系统的闭环极点、自然振荡频率及阶跃响应曲线;并分析ξ对系统性能的影响。

参考程序:

实验六、用窗函数法设计FIR滤波器

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现 2013-12-16 13:58 2296人阅读评论(0) 收藏举报 分类: Matlab(15) 数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。 频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。表1 是几种常用的窗函数的比较。 如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

实验一 MATLAB基本操作及运算(含实验报告).

实验一 MATLAB 基本操作及运算 一、 实验目的 1、 理解Matlab 数据对象的特点; 2、 掌握基本Matlab 运算规则; 3、 掌握Matlab 帮助的使用方法; 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 三、 实验内容 要求建立一个名为experiment01.m 的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。注意对实验中出现的相关函数或变量,请使用help 或doc 查询相关帮助文档,学习函数的用法。 1、 建立以下标量: 1) a=10 2) b=2.5×1023 3) c=2+3i ,(i 为虚数单位) 4) d=3/2πj e ,(j 为虚数单位,这里要用到exp ,pi ) 2、 建立以下向量: 1) aVec=[3.14 15 9 26] 2) bVec=????? ???????18228871.2 3) cVec=[5 4.8 … -4.8 -5 ] (向量中的数值从5到-5,步长为-0.2) 4) dVec=[100 100.01 … 100.99 101] (产生1到10之间的等对数间隔向量,参考logspace ,注意向量的长度) 3、 建立以下矩阵: 1)???? ??????=2222 aMat aMat 一个9×9的矩阵,其元素全为2;(参考ones 或zeros )

2)??????? ?????????=1000005000001 bMat bMat 是一个9×9的矩阵,除主对角上的元素为[1 2 3 4 5 4 3 2 1]外,其余元素均为0。(参考diag )。 3)100 20109212291111 =cMat cMat 为一个10×10的矩阵,可有1:100的向量来产生(参考reshape ) 4)???? ??????=NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN dMat dMat 为3×4的NaN 矩阵,(参考nan ) 5)?? ????---=8710225113eMat 6)产生一个5×3随机整数矩阵fMat ,其值的范围在-3到3之间。(参考rand 和floor 或ceil ) 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ) 6/)15((11--+=a e x 2) g g h h b a y /121,)(=+=提示π,参考sqrt 。 3) c c a d c d c R z ))3/sin()]))([(log(π-+= ,其中R 表示取括号内复数的实数部分,c 表示c 的共轭复数,log 是自然对数。(参考real ,conj ,log ) 5、 使用题2中的向量求解一下等式: 1))25.2/(22 25.221 cVec e xVec -=π, 其中cVec 指的是题2 中定义的向量cVec ,一下雷同。 2)22)(bVec aVec yVec T +=,T aVec 表示aVec 的转置 3) )/1(log 10dVec zVec =,10log 表示已10为底的对数,参考log10 6、 使用题2和题3中所产生的向量和矩阵计算以下等式,注意本题的操作

实验11 用MATLAB设计FIR数字滤波器

实验11 用MATLAB 设计FIR 数字滤波器 一、实验目的: 1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。 2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。 3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。 二、实验内容及步骤 2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N) wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m); function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w); wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

matlab操作实验报告

实验一matlab基本操作 一、实验目的 熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。 二、实验设备与工具 1.计算机 2.matlab软件 三、实验步骤 1. 了解matlab的硬件和软件必备环境; 2. 启动matlab; 3. 学习优化建模过程。 四、实验报告要求 1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部 分的功能; 2. 优化建模过程应用举例 五、实验内容 (一)、Matlab操作界面 1.命令窗口(command window) 2.命令历史窗口(command history) 3.工作空间管理窗口(workspace) 4.当前路径窗口(current directory) (二)、优化建模过程应用举例 1、简单矩阵 123 456 789 A ?? ?? =?? ?? ?? 的输入步骤。 (1)在键盘上输入下列内容 A = [1,1,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9

2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9] A = 1 2 3 4 5 6 7 8 9 3、指令的续行输入 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 4、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线3 0t e y -=。t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') grid 5、画出2222) sin(y x y x z ++=所表示的三维曲面。y x ,的取值范围是]8,8[-。 clear;x=-8:0.5:8; y=x';

MATLAB各种“窗函数”定义及调用

MATLAB窗函数大全 1.矩形窗(Rectangle Window)调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w。 2.三角窗(Triangular Window)调用格式:w=triang(n),根据长度n 产生一个三角窗w。 3.汉宁窗(Hanning Window)调用格式:w=hanning(n),根据长度n 产生一个汉宁窗w。 4.海明窗(Hamming Window)调用格式:w=hamming(n),根据长度n 产生一个海明窗w。 5.布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度n 产生一个布拉克曼窗w。 6.恺撒窗(Kaiser Window)调用格式:w=kaiser(n,beta),根据长度n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。 窗函数: 1.矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’等价于‘w=ones(1,n)’. 2.三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。

3.汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。 4.海明窗:利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5.布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6.切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。 7.巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 8.凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

MATLAB基本操作实验报告

MATLAB基本操作 实验报告 课程名称: 院系: 专业班级: 学号: 学生姓名: 指导教师: 开课时间:至学年第学期

一、学生撰写要求 按照实验课程培养方案的要求,每门实验课程中的每一个实验项目完成后,每位参加实验的学生均须在实验教师规定的时间内独立完成一份实验报告,不得抄袭,不得缺交。 学生撰写实验报告时应严格按照本实验报告规定的内容和要求填写。字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。 二、教师评阅与装订要求 1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给出评语和实验报告成绩,签名并注明批改日期。实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。 2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。 3.各实验项目的实验报告成绩登记在实验报告成绩登记表中。本学期实验项目全部完成后,给定实验报告综合成绩。 4.实验报告综合成绩应按课程教学大纲规定比例(一般为10-15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩; 5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项目顺序排序)。装订时统一靠左侧按“两钉三等分”原则装订。

实验四 窗函数法设计FIR数字滤波器

实验四 窗函数法设计FIR 数字滤波器 一、实验目的 1、掌握窗函数法设计FIR 数字滤波器的原理及具体方法。 2、掌握频率取样法设计FIR 数字滤波器的原理和基本方法。 3、学习利用窗函数法和频率取样法设计低通、带通、高通、带阻数字滤波器。 二、实验环境 计算机、MATLAB 软件 三、实验基础理论 窗函数设计FIR 滤波器 1.基本原理 窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器()j d H e ω ,然后 用窗函数截取它的单位脉冲响应(n)d h ,得到线性相位和因果的FIR 滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。 2.设计步骤 (1)给定理想滤波器的频率响应()j d H e ω ,在通带上具有单位增益和线性相位, 在阻带上具有零响应。一个带宽为()c c ωωπ<的低通滤波器由下式给定: π ωωωωωωω≤<=≤=-||,0)(,||,)(c j d c ja j d e H e e H 其中α为采样延迟,其作用是为了得到一个因果系统。 (2)确定这个滤波器的单位脉冲响应 ) ()) (sin()(a n a n n h c d --= πω 为了得到一个(n)h 长度为N 的因果的线性相位FIR 滤波器,我们令 2 1 -= N a (3)用窗函数截取(n)d h 得到所设计FIR 数字滤波器:)()()(n R n h n h N d = 3.窗函数的选择 常用的窗函数有矩形(Rectangular )窗,汉宁(Hanning )窗,海明(Hamming )窗、布莱克曼(Blackman )窗、凯瑟(Kaiser )窗等 表4-1 MATLAB 中产生窗函数的命令

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

实验3 用MATLAB窗函数法设计FIR滤波器

实验10 用MATLAB 窗函数法设计FIR 滤波器 一、实验目的 ㈠、学习用MA TLAB 语言窗函数法编写简单的FIR 数字滤波器设计程序。 ㈡、实现设计的FIR 数字滤波器,对信号进行实时处理。 二、实验原理 ㈠、运用窗函数法设计FIR 数字滤波器 与IIR 滤波器相比,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR 滤波器单位脉冲响应)(n h 长度为N ,其系统函数)(z H 为 ∑-=-=1 0)()(N n n z n h z H )(z H 是1-z 的)1(-N 次多项式,它在z 平面上有)1(-N 个零点,原点0=z 是)1(-N 阶重极点。因此,)(z H 永远是稳定的。稳定和线性相位特性是FIR 滤波器突出的优点。 FIR 滤波器的设计任务是选择有限长度的)(n h ,使传输函数)(ωj e H 满足技术要求。主要设计方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。本实验主要介绍用窗函数法设计FIR 数字滤波器。 图7-10-1 例1 带通FIR 滤波器特性 ㈡、 用MATLAB 语言设计FIR 数字滤波器 例1:设计一个24阶FIR 带通滤波器,通带为0.35<ω<0.65。其程序如下 b=fir1(48,[0.35 0.65]); freqz(b,1,512)

可得到如图7-10-1 所示的带通FIR滤波器特性。由程序可知,该滤波器采用了缺省的Hamming窗。 例2:设计一个34阶的高通FIR滤波器,截止频率为0.48,并使用具有30dB波纹的Chebyshev窗。其程序如下 Window=chebwin(35,30); b=fir1(34,0.48,'high',Window); freqz(b,1,512) 可得到如图7-10-2 所示的高通FIR滤波器特性。 图7-10-2 例2 高通FIR滤波器特性 例3:设计一个30阶的低通FIR滤波器,使之与期望频率特性相近,其程序如下 f=[0 0.6 0.6 1]; m=[1 1 0 0]; b=fir2(30,f,m); [h,w]=freqz(b,1,128); plot(f,m,w/pi,abs(h)) 结果如图7-10-3所示。 图7-10-3 例3 理想和实际滤波器特性 例4:使用Hamming窗设计一个50阶的FIR带通滤波器,通带为0.3<ω<0.7,试用绝对和相对两种形式显示其幅频特性。 w1=0.3;w2=0.7;n=50; Window=hamming(n+1); b=fir1(n,[w1 w2],Window); [h,w]=freqz(b,1); GB=real(20*log10(h)); subplot(2,1,1);plot(w/pi,abs(h),'linewidth',2 );

matlab实验报告

实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

MATLAB实验报告1(推荐文档)

学生实验报告

一、实验目的 熟悉MATLAB 软件的用户环境;了解MATLAB 软件的一般命令;掌握MATLAB 向量、数组、矩阵操作与运算函数;掌握MATLAB 软件的基本绘图命令;掌握MATLAB 语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。 二、实验仪器、设备或软件: 电脑,MATLAB 软件 三、实验内容 1.MATLAB 软件的数组操作及运算练习; 2.直接使用MATLAB 软件进行作图练习; 3.用MATLAB 语言编写命令M 文件和函数M 文件。 四、实验步骤 1.在D 盘建立一个自己的文件夹; 2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中; 3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法; 4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 五、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→算法与编程→计算结果或图形→心得体会) 1. 已知矩阵??????????=321212113A , ???? ? ?????--=101012111B 要求:(1)屏幕输出A 与B ;(2)A 的转置A′;(3)求A+B 的值;(4)求A-B 的值;(5)求4A ;(6)求A×B ;(7)求A -1.

利用MATLAB进行基于窗函数的FIR数字滤波器的设计

西南石油大学实验报告 一实验目的: 学习利用MATLAB进行基于窗函数的FIR数字滤波器的设计。 二实验内容: 利用矩形窗、哈明窗、汉宁窗和布莱克曼窗设计一个FIR低通滤波器,已知ωc=0.25π,N=10 三实验步骤: 1、实验程序 N=10; M=128; b1=fir1(N,0.25,boxcar(N+1)); %用矩形窗作为冲激响应的窗函数 b2=fir1(N,0.25,hamming(N+1)); %用哈明窗作为冲激响应的窗函数 b3=fir1(N,0.25,blackman(N+1)); %用布莱克曼窗作为冲激响应的窗函数 b4=fir1(N,0.25,hanning(N+1)); %用汉宁窗作为冲激响应的窗函数 h1=freqz(b1,1,M); %矩形窗对应的频率响应 h2=freqz(b2,1,M); %哈明窗对应的频率响应 h3=freqz(b3,1,M); %布莱克曼窗对应的频率响应 h4=freqz(b4,1,M); %汉宁窗对应的频率响应 f=0:0.5/M:0.5-0.5/M; plot(f,abs(h1),'-.',f,abs(h2),f,abs(h3),'*',f,abs(h4),':'); legend('??D?′°','1t?÷′°','BLACKMAN','oo?t′°'); grid; ylabel('magnitude response'); xlabel('w/(2*pi)'); axis([0 0.5 0 1.2]); set(gca,'XTickMode','manual','XTick',[0,0.25,0.5]); set(gca,'YTickMode','manual','XTick',[0,0.5,1]);

相关主题