第一篇:南邮自动控制原理实验报告
实验一、控制系统的时域分析 实验二、线性系统的根轨迹研究 实验三、系统的频率响应和稳定性研究 实验四、连续系统串联校正
课程名称:
自动控制原理
仿真实验一:控制系统的时域分析 一、实验目的:. 观察控制系统的时域响应; 2 . 记录单位阶跃响应曲线; 3 . 掌握时间响应分析的一般方法; 4 . 初步了解控制系统的调节过程。
二、
实验步骤:. 开机进入 Matlab 运行界面。. Matlab 指令窗:“Command Window”,运行相关指令。依次完成实验内容。. 本次实验的相关 Matlab 函数(参考材 教材 P74:
:
控制系统模型描述):
G=tf([num],[den])可输入一传递函数。
step(G,t)在时间范围 t 秒内,画出单位阶跃响应图。
impulse(G,t)在时间范围 t 秒内,画出单位脉冲响应图。
三、
实验结果 1.观察一阶系统1()1sTs 数 的时域响应:取不同的时间常数 T,分别观察该系统的脉冲响应、阶跃响应、斜坡响应以及单位加速度响应。
脉冲响应:
T=1s
T=3S
阶跃响应:
T=1s
T=7s
斜坡响应:
T=1s
T=3s
单位加速度 响应:
T=1s
T=7s
2、、二阶系统的时域性能分析:观测 二阶系统22 2()2nn nss 的单位 阶跃响应。
((1))
令 1n ,0, 0.5, 2 分别取,结合单位 阶跃 响应图,观察阻尼比对阶跃响应的影响。
阻尼比 =0 :
>> G=tf([1],[1,0,1])
Transfer function:
1
-------
s^2 + 1
>> step(G,18)
阻尼比 =0.5 :
>> G=tf([1],[1,1,1])
Transfer function:1
-----------
s^2 + s + 1
>> step(G,18)
阻尼比 =2 :
>> G=tf([1],[1,2,1])
Transfer function:1
-------------
s^2 + 2 s + 1
>> step(G,18)
结论:
当阻尼比取 0 0 时,其振荡频率为 1 1,即为无阻尼振荡;当阻尼比大于 0 0 小于 1 1 时,二阶系统
为欠阻尼二阶系统,其单位阶跃响应为衰减振荡;当阻尼于 比大于 1 1 时,二阶系统为过阻尼二阶系统,其单位阶跃响应为是非振荡的。
(2 2)
令 0.5 ,1, 2, 5n 分别取
,结合单位阶跃响应图,观察自然频率对阶跃响应的影响。
自然频率 =1 :
>> G=tf([1],[1,1,1])
Transfer function:1
-----------
s^2 + s + 1
>> step(G,18)
自然频率 =2 :
>> G=tf([4],[1,2,4])
Trans fer function:2
-------------
s^2 + 2 s + 2
>> step(G,18)
自然频率 =5 :
>> G=tf([25],[1,5,25])
Transfer function:5
-------------
s^2 + 5 s + 5
>> step(G,18)
结论:
自然频率越小,阻尼比越小,系统的阶跃响应幅值越大。
((3))
调节自然频率与阻尼比,要求:
Tr<0.56s Tp<1.29s Ts<5.46 超调不大于 于 5 %.记录下满足上述要求的自然频率与阻尼比。
G=tf([45],[1,10,45])G = 45
---------------
s^2 + 10 s + 45 Continuous-time transfer function.>> step(G,6)
自然频率=16.9538rad/sec 阻尼比=0.73578
实验二线性系统的根轨迹研究
2.1 实验目的((1))
考察闭环系统根轨迹的一般形成规律。
((2))
观察和理解引进零极点对闭环根轨迹的影响。
((3))
观察、理解根轨迹与系统时域响应之间的联系。
((4))
初步掌握利用产生根轨迹的基本指令和方法。
2.2 实验内容 根轨迹绘制的指令法、交互界面法;复平面极点分布和系统响应的关系。
已知单位负反馈系统的开环传递函数为2)^ 5 4()2()(2 s ss Ks G,实验要求:
((1))
用 试用 MATLAB 的 的 rlocus 指令,绘制闭环系统根轨迹。(要求写出指令,并绘出图形。)
指令:
:G=tf([1 2],[1 8 26 40 25])
rlocus(G)
((2))
用 利用 MATLAB 的 的 rlocfind 指令,确定根轨迹的分离点、根轨迹与虚轴的交点。(要求写出指令,并给出结果。)
指令:
:rlocfind(G)分离点:-2.0095 + 1.0186i
K=0.0017 与 虚轴的 交点:
:-0.0000 + 3.6025i
K=65.8411
((3))
用 利用 MATLAB 的 的 rlocfind 指令, 求出系统临界稳定增益, 并用指令验证系统的稳定性。
系统 临 界稳定增益:
:65.8411 由于系统 无右半平面的开环极点,且 奈奎斯特曲线不 包围((-1,j0)点。
系统稳定。
((4))
用 利用 SISOTOOL 交互界面,获取和记录根轨迹分离点、根轨迹与虚轴的交点处的关键参数,并与前面所得的结果进行校对验证。(要)
求写出记录值,并给出说明。)
指令:
:SISOTOOL(G)
原值:
:K=0.00017
校正值:
:K=0.000169
原值:K=65.8411
校正值:K=71.8((5))
在 在 SISOTOOL 界面上,打开闭环的阶跃响应界面,然后用鼠标使闭环极点(小红方块)从开环极点开始沿根轨迹不断移动,在观察三个闭环极点运动趋向的同时,注意观察系统阶跃响应的变化。根据观察,(A)写出响应中出现衰减振荡分量时的 的 K 的取值范围,(B)写出该响应曲线呈现“欠阻尼”振荡型时的 K。的取值范围。
(A A)
0< K<71.8
(B B)
0 实验三系统的频率响应和稳定性研究 3.1 实验目的(1)绘制并观察典型开环系统的 Nyquist 围线。 (2)绘制并观察典型开环系统的 Bode 图。 (3)运用 Nyquist 准则判断闭环系统的稳定性。 (4)初步掌握相关 MATLAB 指令的使用方法。 3.2 实验内容 一、(必做内容)使用 sisotool 交互界面研究典型开环系统的频率特性曲线,并进行闭环系统稳定性讨论。 以下各小题的要求: (A)根据所给开环传递函数的结构形式,绘制相应的幅相频率曲线和对数幅相频率曲线。 (B)显示出曲线对应的开环传递函数具体表达式。 (C)假如 MATLAB 指令绘制的幅相频率曲线不封闭,或用文字说明所缺部分曲线的走向,或在图上加以添加所缺曲线;曲线与(-1,j0)点的几何关系应足够清晰,能支持判断结论的导出。 (D)对该开环函数构成的单位负反馈系统的稳定性作出判断,说明理由;假如闭环不稳定,则应指出不稳定极点的数目。 (1))1)(1(2 11 s T s TKG,其中 K , T 1, T 2 可取大于 0 的任意数。 取 K=1,T1=1,T2=2; 指令如下: G=tf([1],[2 3 1])Transfer function: 2 s^2 + 3 s + 1 margin(G)nyquist(G) P=0,R=0,Z=0 系统稳定 (2))1)(1)(1(3 2 12 s T s T s TKG,其中 K , T 1, T 2, T 3 可取大于 0 的任意 取 K=1,T1=1,T2=2,T3=3; 指令如下: G=tf([1],[6 11 6 1])Transfer function:------------------------6 s^3 + 11 s^2 + 6 s + 1 margin(G) nyquist(G) P=0,R=0,Z=0 系统稳定 (3))1(14s T sKG,其中 K , T 1 可取大于 0 的任意数。 取 K=1,T1=1; 指令如下: G=tf([1],[1 1 0])Transfer function:-------s^2 + s margin(G) nyquist(G) P=0,R=0,Z=0 系统稳定(4))1)(1()1(2 16 s T s T ss T KGa,其中。 K 可取大于 0 的任意数。 K=1,Ta=1,T1=1,T2=2; 指令如下: G=tf([1 1],[2 3 1 0])Transfer function: s + 1-----------------2 s^3 + 3 s^2 + s margin(G)nyquist(G) P=0,R=0,Z=0 系统稳定(5))1(127s T sKG,其中 K , T 1 可取大于 0 的任意数。 K=1,T1=1; 临界稳定,指令如下: G=tf([1],[1 1 0 0])Transfer function: 1---------s^3 + s^2 margin(G) nyquist(G) (6)1128,)1()1(T Ts T ss T KGaa,其中 K 可取大于 0 的任意数。 K=1,Ta=2,T1=1; 指令如下: G=tf([2 1],[1 1 0 0])Transfer function:s + 1---------s^3 + s^2 margin(G)nyquist(G) 临界稳定(7)1129,)1()1(T Ts T ss T KGaa,其中 K 可取大于 0 的任意数。 K=1,Ta=1,T1=2; 临界稳定,指令如下: G=tf([1 1],[2 1 0 0])Transfer function: s + 1-----------2 s^3 + s^2 margin(G)nyquist(G) (8)210)1)(1(ss T s T KGb a ,其中 K , T a,T b 可取大于 0 的任意数。 时间常数 T 与 K 给出具体数值仿真 取 K=1,Ta=1,Tb=2 指令如下: G=tf([2,3,1],[1,0,0])G =s^2 + 3 s + 1 --------------- s^2 Continuous-time transfer function.>> margin(G)>> nyquist(G) 临界稳定 实验四 连续系统串联校正 一、实验目的 1.加深理解串联校正装置对系统动态性能的校正作用。 2.对给定系统进行串联校正设计,并通过模拟实验检验设计的正确性。 二、实验仪器 1.EL-AT-III 型自动控制系统实验箱一台 2.计算机一台 三、实验内容 1.串联超前校正(1)系统模拟电路图如图 5-1,图中开关 S 断开对应未校情况,接通对应超前校正。 图 图 5 5--1 1 超前校正电路图 (2)系统结构图如图 5-2 图 图 5 5--2 2 超前校正系统结构图 图中 Gc1(s)=2 2(0.055s+1) Gc2(s)= 0.005s+1 2.串联滞后校正(1) 模拟电路图如图 5-3,开关 s 断开对应未校状态,接通对应滞后校正。 图 图 5 5--3 滞后校正模拟电路图 (2)系统结构图示如图 5-4 图 图 5 5--4 滞后系统结构图 图中 Gc1(s)=10 10(s+1) Gc2(s)= 11s+1 3.串联超前—滞后校正(1) 模拟电路图如图 5-5,双刀开关断开对应未校状态,接通对应超前—滞后校正。 图 图 5 5--5 超前 — 滞后校正模拟电路图 (2) 系统结构图示如图 5-6。 图 图 5 5--6 6 超前 — 滞后校正系统结构图 图中 Gc1(s)=6 6(1.2s+1)(0.15s+1) Gc2(s)= (6s+1)(0.05s+1) 四、实验步骤 1.启动计算机,在桌面双击图标 [自动控制实验系统] 运行软件。 2.测试计算机与实验箱的通信是否正常,通信正常继续。如通信不正常查找原因使通信正常后才可以继续进行实验。 超前校正: 3.连接被测量典型环节的模拟电路(图 5-1)。电路的输入 U1 接 A/D、D/A 卡的 DA1 输出,电路的输出 U2 接 A/D、D/A 卡的 AD1 输入,将将纯积分电容两端连在模拟开关上。检查无误后接通电源。 4.开关 s 放在断开位置。-5.在实验项目的下拉列表中选择实验五[五、连续系统串联校正]。鼠标单击 按钮,弹出实验课题参数设置对话框。在参数设置对话框中设置相应的实验参数后鼠标单击确认等待屏幕的显示区显示实验结果,并记录超调量p 和调节时间 ts。 6.开关 s 接通,重复步骤 5,将两次所测的波形进行比较。并将测量结果记入下表中: 超前校正系统 指标 校正前 校正后 阶跃响应曲线 见图 1.1 见图 1.2 δ% 51.1 11,8 Tp(秒) 166 118 Ts(秒) 1152 154 滞后校正: 7.连接被测量典型环节的模拟电路(图 5-3)。电路的输入 U1 接 A/D、D/A 卡的 DA1 输出,电路的输出 U2 接 A/D、D/A 卡的 AD1 输入,将纯积分电容两端连在模拟开关上。检查无误后接通电源。 8.开关 s 放在断开位置。 9.在实验项目的下拉列表中选择实验五[五、连续系统串联校正]。鼠标单击 按钮,弹出实验课题参数设置对话框,在参数设置对话框中设置相应的实验参数后鼠标单击确认等待屏幕的显示区显示实验结果,并记录超调量p 和调节时间 ts。 10.开关 s 接通,重复步骤 9,将两次所测的波形进行比较。并将测量结果记入下表中: 滞后校正系统 指标 校正前 校正后 阶跃响应曲线 见图 2.1 见图 2.2 δ% 67.2 11.53 Tp(秒) 213 439 Ts(秒) 2529 529 五、实验报告 1.计算串联校正装置的传递函数 Gc(s)和校正网络参数。 2.画出校正后系统的对数坐标图,并求出校正后系统的ω′c 及ν′。 3.比较校正前后系统的阶跃响应曲线及性能指标,说明校正装置的作用。 阶跃响应曲线: 串联超前校正前: 串联超前校正后: 图 1.1 图 1.2 串联滞后校正前: 串联滞后校正后: 图 2.1 图 2.2 串联超前校正前: G(s)= Wc=16.7rad/s,V=17 度 串联超前校正后: G(s)= Wc=25rad/s,V=65 度 串联滞后校正前: G(s)= Wc=17.7rad/s V=-14 度 串联滞后校正后: G(s)= Wc=6.83rad/s V=31 度 由以上实验结果,得到校正装置作用:超前校正的是利用超前校正网络的相位超前特性来增大系统的相位裕量,以达到改善系统瞬态响应的目的。为此,要求校正网络最大的相位超前角出现在系统的截止频率(剪切频率)处。由于 RC 组成的超前网络具有衰减特性,因此,应采用带放大器的无源网络电路,或采用运算放大器组成的有源网络。 滞后校正装置即利用校正装置的超前部分来增大系统的相位裕度,以改善其动态性能;利用它的滞后部分来改善系统的静态性能,两者分工明确,相辅相成。 北京交通大学 自动控制原理研究性学习报告 ——基于MATLAB软件的系统建模分析与校正 谭堃15221309 田斌15221310 努尔夏提15221305 张雪程13222028 摘要 本文利用MATLAB软件来实现对自动控制系统建模、分析与设计、仿真的方法。它能够直观、快速地分析系统的动态性能、和稳态性能。并且能够灵活的改变系统的结构和参数通过快速、直观的仿真达到系统的优化设计。 关键词:MATLAB,自动控制,系统仿真 1.主要任务 单位负反馈随动系统固有部分的传递函数为 G(s)=4K/s(s+2) 1、画出未校正系统的Bode图,分析系统是否稳定。 2、画出未校正系统的根轨迹图,分析闭环系统是否稳定。 3、设计系统的串联校正装置,使系统达到下列指标:(1)静态速度误差系数Kv=20s-1;(2)相位裕量γ≥50°(3)幅值裕量Kg≥10dB。 4、给出校正装置的传递函数。 5、分别画出校正前,校正后和校正装置的幅频特性图。计算校正后系统的穿越频率ωc、相位裕量γ。 6、分别画出系统校正前、后的开环系统的奈奎斯特图,并进行分析。 2.理论分析 (1)确定K值 Kv=limsWk =2k=20 所以K = 10(2)校正前系统的开环对数幅频特性如图实线所示。 由A(wc)=20/[wc√(1+(wc/2)^2]=1; 得wc≈6.32; γ(wc)=180˚+ɸ(wc)=90˚-72.4˚=17.6˚ 可见相位裕量并不满足要求,为不影响低频段特性和改善暂态响应性能,采用引前矫正。 (3)设计串联微分校正装置: 微分校正环节的传递函数为 Wc(s)=(Tds+1)/[(Tds/γd)+1);最大相位移为 ɸmax=arcsin[(rd-1)/(rd+1)] 根据系统相位裕量γ(wc)≥50˚的要求,微分矫正环节最大相位移为 ɸmax≥50˚-17.6˚=32.4˚ 考虑Wc’≥Wc,原系统相角位移将更负些,故ɸmax将更大些,取ɸmax=40˚,即有 Sin40˚=(γd-1)/(γd+1)=0.64解得γd=4.6 设校正后的系统穿越频率Wc’为矫正装置两交接频率w1与w2的几何中点。即 Wc’=√w1w2=w1√rd 若认为Wc’/w1>>1,Wc’/w2<<1,则得 A(wc’)=1≈20wc’/(wc^2/2)解得w1≈4.32;w2≈19.87;wc’≈9.26。所以校正装置的传递函数为 Wc(s)=(s/4.32+1)/[(s/19.87)+1);(4)验算校正后系统指标 Wk’(s)=20(s/4.32+1)/[s(s/2+1)(s/19.87+1)] 同理,代入数值得校正装置的相位裕量为γ(wc’)=52.4˚ 另ɸ(wj)=-180˚,可得出系统穿越频率wj→∞;所以一定满足 GM=20lg[1/(wk’(jwj)]≥10dB(三)MATLAB仿真 (1)时域分析 1.校正前系统的暂态响应曲线如图: -图1 系统单位阶跃相应 计算结果: pos(超调量)=60.46%、、tp(峰值时间)= 0.5s、tr(上升时间)=1.8s,ts(调节时间)=3.7s 由图可知:校正前系统的的调节时间较长,超调量过大。 3.校正后系统的暂态响应曲线如图 图2系统单位阶跃相应 计算结果: pos(超调量)=15.88%、、tp(峰值时间)= 0.3s、tr(上升时间)=0.2s,ts(调节时间)=0.6s 系统的暂态响应与校正前相比有较大改善。该系统依然稳定,而且反应更加快速,应采用。 (2)根轨迹 校正前系统的根轨迹如图 校正后系统的根轨迹如图: 校正前后根轨迹对比 (3)对数频率特性 校正前系统的开环对数频率特性如图实线所示: 图1 系统对数频率特性曲线 相位裕量γ=17.6 穿越频率=6.32rad/s微分校正环节的对数频率特性如图所示: 校正后系统的开环对数频率特性如图所示: 相位裕量γ=52.4穿越频率=9.26rad/s 对比图 (4)幅相频率特性 校正前系统的开环幅相频率特性如图所示: 图7 系统幅相频率特性曲线 校正后系统的开环幅相频率特性如图所示: 对比图 四、程序附录(1)时域分析 clear t=0:0.1:5;s=[184 794.8];d=[1 21.87 233.7 794.8];sys=tf(s,d);y1=step(sys,t);plot(t,y1)maxy1=max(y1);yss1=y1(length(t));pos1=100*(maxy1-yss1)/yss1;for i=1:1:51 if(y1(i)==maxy1)n=i;break;end end tp1=(n-1)*0.1;for i=1:1:51 if(y1(i)<1.02&&y1(i)>0.98)m=i;break;end end tr1=(m-1)*0.1;for i=51:-1:1 if(y1(i)>1.02||y1(i)<0.98)a=i;break;end end ts1=a*0.1;pos=[pos1] tp=[tp1] tr=[tr1] ts=[ts1] clear t=0:0.1:10;s=[40];d=[1 2 40];sys=tf(s,d);y1=step(sys,t);plot(t,y1)maxy1=max(y1);yss1=y1(length(t));pos1=100*(maxy1-yss1)/yss1;for i=1:1:101 if(y1(i)==maxy1)n=i;break; end end tp1=(n-1)*0.1;for i=1:1:101 if(y1(i)<1.02&&y1(i)>0.98)m=i;break;end end tr1=(m-1)*0.1;for i=101:-1:1 if(y1(i)>1.02||y1(i)<0.98)a=i;break;end end ts1=a*0.1;pos=[pos1] tp=[tp1] tr=[tr1] ts=[ts1] (2)对数频率特性 clear s1=[0.23 1];d1=[0.05 1];s2=[40];d2=[1 2 40];s3=[184 794.8];d3=[1 21.87 233.7 794.8];sys1=tf(s1,d1);sys2=tf(s2,d2);sys3=tf(s3,d3);figure(1)bode(sys1,sys2,sys3) (3)根轨迹 clear s1=[40];d1=[1 2 40];s2=[184 794.8];d2=[1 21.87 233.7 794.8];sys1=tf(s1,d1);sys2=tf(s2,d2);figure(1)rlocus(sys1,sys2) (4)幅相频率特性 clear s1=[40];d1=[1 2 40];s2=[184 794.8];d2=[1 21.87 233.7 794.8];sys1=tf(s1,d1);sys2=tf(s2,d2);figure(1)nyquist(sys1,sys2) 总结 本次研究性学习的内容主要是建立自动控制系统并运用MATLAB软件对设计的自动控制系统进行仿真,其中涉及了关于自动控制方面的很多知识,也有关于数学建模方面的知识以及MATLAB软件的应用,此次研究性学习建立了卫星姿态的自动控制。 在此次设计过程中遇到了很多问题,也接触到了很多以前不知道的知识,特别是之前很少接触过MATLAB软件,这让本次设计一度陷入停滞阶段。后来在图书馆和网络上查阅了大量的相关书籍,并在同学的细心指导下安装了MATLAB软件并学习其使用方法,从而使问题一步步得到了解决,最终成功的完成了此次研究性学习。 《自动控制原理》课程实验报告 姓名: 班级: 学号: 实验时间: 实验成绩: 一、实验目的: 1.熟练掌握step()函数和impulse()函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。 2.通过响应曲线观测特征参量ζ和ωn对二阶系统性能的影响。3.熟练掌握系统的稳定性的判断方法。 二、实验要求: 1.根据实验步骤,写出调试好的MATLAB语言程序,及对应的MATLAB运算结果。 2.记录各种输出波形,根据实验结果分析参数变化对系统的影响。3.总结判断闭环系统稳定的方法,说明增益K对系统稳定性的影响。 三、实验步骤: 1.观察函数step()函数和impulse()的调用格式,假设系统的传递函 s23s7数模型为G(s)4,可以用几种方法绘制出系统的阶s4s36s24s1跃响应曲线?试分别绘制。 2n2.对典型二阶系统G(s)2 2s2nsn1)分别绘制出ωn=2(rad/s),ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响。 2)绘制出当ζ=0.25,ωn分别取1,2,4,6时单位阶跃响应曲线,分析参数ωn对系统的影响。 3.单位负反馈系统的开环模型为G(s)K,试判2(s2)(s4)(s6s25)断系统的稳定性,并求出使得闭环系统稳定的K值范围 四、实验结果与结论 时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。 1.用MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s的降幂排列写为两个数组num、den。由于控制系统分子的阶次m一般小于其分母的阶次n,所以num中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。用MATLAB求控制系统的瞬态响应 1)阶跃响应 ①求系统阶跃响应的指令有: step(num,den,t)时间向量t的范围可以由人工给定(例如t=0:0.1:10) 在MATLAB程序中,先定义num,den数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。② 求阶跃响应的另一种方法 应当指出,当初始条件为零时,G(s)的单位阶跃响应与 G(s)的单s位阶跃响应相同。考虑到求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以 C(s)G(s)s23s71 C(s)432R(s)ss4s6s4s1s因此,可以将G(s)的单位阶跃响应变换成G(s)的单位脉冲响应。s向MATLAB输入下列num1和den1,给出阶跃响应命令,可以得到系统的单位阶跃响应曲线如图1-1所示,输入下列num2和den2,给出脉冲响应命令,可以得到如图1-1所示一样的单位脉冲响应曲线。t=[0:0.1:10];num1=[1,3,7];den1=[1,4,6,4,1];y=step(num,den,t);plot(t,y);grid;t=[0:0.1:10];num=[1,3,7];den=[1,4,6,4,1,0]; 图1-1 单位阶跃响应曲线 y=impulse(num,den,t);plot(t,y);grid; 2.特征参量和n对二阶系统性能的影响 标准二阶系统的闭环传递函数为: 2nC(s)2 2R(s)s2nsn二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。1)对二阶系统性能的影响 设定无阻尼自然振荡频率n2(rad/s),考虑5种不同的值:利用MATLAB对每一种求取单位阶跃响应=0,0.25,0.5,1.0和2.0,曲线,分析参数对系统的影响。 为便于观测和比较,在一幅图上绘出5条响应曲线(采用“hold”命令实现)。 num=[0 0 4];den1=[1 0 4];den2=[1 1 4];den3=[1 2 4];den4=[1 4 4];den5=[1 8 4];t=[0:0.1:5];step(num,den1,t);grid;hold;text(2,1.7,'Zeta=0');step(num,den2,t);text(1.6,1.5,'0.25');step(num,den3,t);text(1.6,1.1,'0.5');step(num,den4,t);text(1.6,0.8,'1.0');step(num,den5,t); 图1-2 ζ不同时系统的响应曲线 text(1.6,0.5,'2.0');由此得到的响应曲线如图1-2所示: 2)n对二阶系统性能的影响 同理,设定阻尼比0.25时,当n分别取1,2,4,6时,利用MATLAB求取单位阶跃响应曲线,分析参数n对系统的影响。num1=[0 0 1];num2=[0 0 4];num3=[0 0 16];num4=[0 0 36];den1=[1 0.5 1];den2=[1 1 4];den3=[1 2 16];den4=[1 3 36];t=[0:0.1:5];step(num1,den1,t);grid;hold;text(0.1,1.4,'wn=1');step(num2,den2,t); text(1,1.4,'wn=2');step(num3,den3,t);text(2,1.4,'wn=4');step(num4,den4,t);text(4,1.4,'wn=6'); 图1-3 n不同时系统的响应曲线 由此得到的响应曲线如图1-3所示: 3.系统稳定性判断 利用代数稳定判据可确定系统个别参数变化对系统稳定性的影响,以及为使系统稳定,这些参数应取值的范围。 K 根据单位负反馈系统的开环模型 G(s)(s2)(s4)(s26s25)可以求的闭环系统的特征方程式为: D(s)s412s369s2198s200K0 则其劳斯阵列为: s4s3s211252.552.519812(200K)52.5200K69198200K0200K s1s0根据稳定条件: 52.519812(200K)>0;200+K>0;因此0<K<666.25 通信与信息工程学院 2011/2012学年第一学期 实 验 报 告 实验课程名称 数字图像处理与图像通信实验 专 业 电子信息工程 学 生 学 号 B08020425 学 生 姓 名 席与曦 指 导 教 师 刘 瑜 指 导 单 位 图像与广播电视系 日 期: 2011 年9 月 6 日 ================================ 实验名称:图像的锐化处理 一、实验目的: 学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts算子、Sobel算子边缘检测处理和Laplace算子边缘增强处理,是图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。 二、实验内容: (1)编写梯度算子和Roberts算子滤波函数。 (2)编写Sobel算子滤波函数。 (3)编写拉普拉斯边缘增强滤波函数。 三、实验方法及编程: 在实验中,我们对于这三种算子的算法,都有其各自对应的模板,根据这个模板我们可以方便地编写出程序的主体结构。指导书中也有对应的流程框图可供参考,以下是程序的主体部分: function newbuf=RobFilter(oldbuf,M,N);% ************************************************************************ % 函数名称: % RobFilter()% 说明: % ‘Robert梯度’滤波算法。% ************************************************************************ for i=1:M-1 for j=1:N-1 newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1))+abs(oldbuf(i+1,j)-oldbuf(i,j+1));end end %-----------function newbuf=SobFilter(oldbuf,M,N);% ************************************************************************ % 函数名称: % SobFilter()% 说明: % ‘Sobel’滤波算法。% ************************************************************************ for i=2:M-1 for j=2:N-1 sx=oldbuf(i+1,j-1)+2*oldbuf(i+1,j)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i-1,j)-oldbuf(i-1,j+1);sy=oldbuf(i-1,j+1)+2*oldbuf(i,j+1)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i,j-1)-oldbuf(i+1,j-1);newbuf(i,j)=abs(sx)+abs(sy);end end %-----------function newbuf=LapFilter(oldbuf,M,N);% ************************************************************************ % 函数名称: % LapFilter()% 说明: % ‘Laplace’滤波算法。% ************************************************************************ for i=2:M-1 for j=2:N-1 newbuf(i,j)=5*oldbuf(i,j)-oldbuf(i-1,j)-oldbuf(i+1,j)-oldbuf(i,j-1)-oldbuf(i,j+1);end end %----------- 四、实验结果及分析:(原图像和处理后的图像比较及分析) 从上面的图像可以看出: Robert梯度算子得出的图像能够得出原图的大部分边缘细节,灰度差别越大的地方结果越大,所以显示时较为明亮。一些边缘由于灰度差值较小,在得出的结果图像中不容易分辨出来。 Sobel算子得出的图像则显得明亮而粗壮。所有的边缘细节均被显示出来,特别是人物面部。由于其结果粗壮,面部细节显得非常密集。 Laplace算子则用以将图像的边缘、细节增强,通过结果结果可以看出,图像的细节明显比原来突出。但是这个方法存在的弊端是,在背景区域,结果图像中有一些噪声的图样也被加强了。 日 期: 2011 年9 月 13 日 ================================ 实验名称:图像信号的数字化 一、实验目的: 通过本实验了解图像的数字化参数取样频率(像素个数)、量化级数与图像质量的关系。 二、实验内容: (1)编写并调试图像数字化程序。要求参数k,N可调。其中,k为亚抽样比例,N为量化比特数。 (2)可选任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。 三、实验方法及编程: 在数字系统中进行处理、传输和存储图像,必须把代表图像的连续信号转变为离散信号,这种变换过程称为图像信号的数字化。它包括采样和量化两种处理。本实验对数字图像进行再采样和再量化,以考察人眼对数字图像的分辨率和灰度级的敏感程度。 function newbuf=Sample_Quant(oldbuf,k,n)% % ************************************************************************ % 函数名称: % Sample_Quant()图像数字化算法函数 % 参数: % oldbuf 原图像数组 % M N 原图像尺寸 % k 取样间隔 % n 量化比特值 % newbuf 存放处理后的图像二维数组 % 说明: % 在水平和垂直方向作1:k取样,得到新的取样图像,再根据量化公式对每个像 % 素分别取n 比特量化,为了观察显示的需要,再按k:1的比例将再取样的图像还原 % 为原图像尺寸。最后放入新的图像数组中并返回该数组。% ************************************************************************ [M,N]=size(oldbuf);oldbuf=double(oldbuf);x=1;y=1;while x 四、实验结果及分析:(原图像和处理后的图像比较及分析) 由实验结果可以看出,亚抽样比例k和量化比特数N对都会使图像变得模糊,但两者的影响是不相同的。 亚抽样比例k的大小决定了数字化图像的方块效应是否明显。当k较大时,数字化图像会有较为明显的块状出现,对于图像的视觉效果影响很大。 量化比特数N则决定了图像的灰度级,量化比特数为N时,图像有个2N灰度级。所以当N较小时,图像会出现不规则的区域有着相同的灰度值的情况,但是这些区域在原图像中却有着差别较小的不同的灰度值。特别是在原图的灰度渐变的区域,这种效应会变得尤为明显。 日 期: 2011 年9 月 20 日 ================================ 实验名称:图像灰度级修正 一、实验目的: 掌握常用的图像灰度级修正方法,即图像的灰度变换法和直方图均衡化法,加深对灰度直方图的理解。 二、实验内容: (1)编程实现图像的灰度变换。改变图像输入、输出映射的灰度参数范围(拉伸和反比),观看图像处理结果。 (2)修改可选参数gamma值,使其大于1,等于1和小于1,观看图像处理结果。(3)对图像直方图均衡化处理,显示均衡前后的直方图和图像。实验图像选用hor256或vax256。 三、实验方法及编程: 图像增强常用到三种基本方式,分别为1线性2对数3幂次。线性变换的公式可表示为gx,y幂次变换的公式:scxr function newbuf=GrayTransf(oldbuf)% ************************************************************************ % 函数名称: % GrayTransf()灰度变换函数 % 参数: % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 % 说明: % 可以任意指定输入图像需要映射的灰度范围和指定输出图像所在的灰度范围。还可接 % 受一个可选的参数来指定修正因素r。% ************************************************************************ [M,N]=size(oldbuf);newbuf=imadjust(oldbuf,stretchlim(oldbuf),[]);newbuf=uint8(newbuf);%-----------function newbuf=GrayGamma(oldbuf,r)% ************************************************************************ % 函数名称: % GrayGamma()gamma校正函数 % 参数: % r gamma校正值 % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 % 说明: % 图像获取、打印和显示的各种装置是根据幂次规律进行响应的。习惯上,幂次等式中 % 的指数是指伽马值.用于修正幂次响应现象的过程称作伽马校正。% imadjust()函数还可接受一个可选的参数来指定修正因素r(也称gamma校正值)。% 根据r值的不同,输入图像与输出图像间的映射可能是非线性的。% ************************************************************************ newbuf=imadjust(oldbuf,stretchlim(oldbuf),[],r);newbuf=uint8(newbuf);%-----------function newbuf=GrayEqualize(oldbuf)% ************************************************************************ % 函数名称: % GrayEqualize()直方图均衡算法函数 dcba[fx,ya]c % 参数: % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 % 说明: % 对oldbuf的原图像数据进行灰度统计,然后计算每一个K所对应的S值,求出对照 % 表S(k),最后以原图像灰度值K作为地址,对每一象素进行变换,得出均衡化以后的 % 新图像存放在newbuf中。% ************************************************************************ [M,N]=size(oldbuf);NN=M*N;sk=0;[COUNTS,X]=imhist(oldbuf,256);for i=1:M for j=1:N kk=double(oldbuf(i,j));for k=1:kk sk=sk+COUNTS(k);end sk=sk/NN*256;newbuf(i,j)=sk;end end newbuf=uint8(newbuf);%----------- 四、实验结果及分析:(原图像和处理后的图像比较及分析) 由实验结果可以看出,所选的测试图像的灰度值主要分布于低值的部分。 经过无gamma值的灰度值变换后,直观地看出:分布于低值部分的直方图分散开来,分布于几乎所有的灰度值,但是对映于各个灰度值的像素个数分布仍是不均匀的。变换后的图像比原图显得明亮、清晰。 经过第二第三幅图像可以进一步看出:gamma值的灰度值变换则明显受gamma值的影响:当gamma值大于1时,直方图有向灰度为0的一端压缩的趋势,gamma越大,这种趋势越明显。此时的图像比原图清晰,但是原本偏暗的部分更加偏黑,原本较亮的部分则变得发白,总体而言,图像偏暗的部分较多。当gamma值小于1时,其趋势与gamma值大于1相反,故整个图像显得发白。 直方图均衡后的图像也显得较为清晰、均匀。它能尽量将直方图变得均衡,分布也更为均匀,各个灰度值所对应的像素个数尽可能相同。 日 期: 2011 年9 月 27 日 ================================ 实验名称:图像的平滑滤波 一、实验目的: 图像平滑主要目的是减少噪声对图像的影响。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波两种最典型、最常用的处理算法进行程序设计,学习如何对已被污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。 二、实验内容: (1)编写并调试窗口尺寸为m×n的平滑滤波函数。 (2)编写并调试窗口尺寸为m×n的中值滤波函数。 三、实验方法及编程: 在M*N的图像f上,用m*n大小的滤波器模板进行线性滤波由这个公式给出: gx,yabmanbf(xm,yn)h(m,n) function newbuf=AverageFilter(oldbuf,M,N,m)% ************************************************************************ % 函数名称: % AverageFilter()均值滤波算法函数 % 参数: % oldbuf 噪声图像数组 % M N 噪声图像尺寸 % m 矩形平滑窗口尺寸 % newbuf 存放处理后的图像二维数组 % 说明: % 用m*m的滤波器模板对oldbuf数组的噪声图像进行线性滤波,即用窗口内m*m个像 % 素的平均灰度值来代替图像每个像素点的值,最后结果存放在newbuf数组中。% ************************************************************************ oldbuf=double(oldbuf);newbuf=zeros(M,N);for i=(m+1)/2:M-(m+1)/2 for j=(m+1)/2:N-(m+1)/2 for x=-(m-1)/2:(m-1)/2;for y=-(m-1)/2:(m-1)/2;newbuf(i,j)=newbuf(i,j)+oldbuf(i+x,j+y)/(m*m);end end end end %----------- function newbuf=MedianFilter(oldbuf,M,N,m)% ************************************************************************ % 函数名称: % MedianFilter()中值滤波算法函数 % 参数: % oldbuf 原图像数组 % M N 原图像尺度 % m 滑动窗口尺寸 % newbuf 存放处理后的图像数组 % 说明: % 把oldbuf数组m*m窗口内的象素值赋给winbuf,然后调用排队函数SeekMid(),% 把该函数在窗口中找到的中值放到newbuf数组中。% ************************************************************************ for i=(m+1)/2:M-(m+1)/2 for j=(m+1)/2:N-(m+1)/2 k=1;for x=-(m-1)/2:(m-1)/2;for y=-(m-1)/2:(m-1)/2;winbuf(k)=oldbuf(i+x,j+y);k=k+1;end end newbuf(i,j)=SeekMid(winbuf,m);end end %-----------function mid=SeekMid(winbuf,m)% ************************************************************************ % 函数名称: % SeekMid()排序函数 % 参数: % winbuf 滑动窗口 % m 滑动窗口尺寸 % mid 存放排序后中间位置的像素值 % 说明: % 将winbuf窗口中的m*m个像素进行排序,将排序队列中间的像素值赋给变量mid。% ************************************************************************ winsize=length(winbuf);%取窗口尺寸 for i=1:winsize %编写排序函数 for j=1:winsize-i if(winbuf(i)>winbuf(j+i))t=winbuf(i);winbuf(i)=winbuf(j+i);winbuf(j+i)=t;end end end mid=winbuf(ceil(m*m/2));% ceil函数朝正无穷大方向取整,总能取到中间位置 %----------- 四、实验结果及分析:(原图像和处理后的图像比较及分析) 由实验结果可以看出,对于处理椒盐噪声,中值滤波比均值滤波要好很多。当窗口大小为3×3时,均值滤波能一定程度上降低噪声的污染,但是,仍能看出在噪声点,并没有完全消除噪声,只是将噪声与周围的图像进行了平均,噪声点只是显得模糊了,并没有完全消除。相比之下,中值滤波则效果明显,同为3×3的窗口,几乎能把所有的噪声点消除,效果非常显著。当窗口大小变大时,也能将大部分噪声点消除,但是会带来严重的模糊。 同时我们可以看出,两种方法都使得处理后的图像比原图要模糊,并且随着窗口的变大,图像变得越来越模糊。通过两种方法之间的比较则可以看出,同等窗口下中值滤波带来的模糊比均值滤波要轻一些。 日 期: 2011 年10 月 11 日 ================================ 实验名称:图像方块编码(BTC) 一、实验目的: 通过编程实验,掌握方块编码的基本方法及压缩性能。 二、实验内容: 编程实现子块为n×n的方块编码基本方法,分别取n=2,4,8方块尺寸进行方块编码实验,计算编码后的均方误差和压缩比。 三、实验方法及编程: 本实验采用的方案为: (1)xTxxmi11mi (2)a0xl1mq1qmmqxi1ii xixT (3)a1xhximq1 xixT function outbuf=BtcBlock(inbuf,n)% ************************************************************************ % 函数名称: % btcblock()方块编码算法函数 % 参数: % inbuf 方块数组 % n 方块尺寸 % outbuf 存放处理后的方块图像 % 说明: % 把原图像分成n*n子块,对每个方块的图像数据分别计算xt,a0,a1值,再用分辨率 % 分量(a0,a1)替代方块原来的数据 最后放入方块图像数组中并返回该数组。% ************************************************************************ temp=0;temp0=0;temp1=0;q=0;m=n*n;inbuf=double(inbuf);for i=1:n for j=1:n temp=temp+inbuf(i,j);end end xt=temp/m;for i=1:n for j=1:n if(inbuf(i,j)>=xt)q=q+1;temp1=temp1+inbuf(i,j);else temp0=temp0+inbuf(i,j);end end end if q~=m a0=round(temp0/(m-q));end if q~=0 a1=round(temp1/q);end for i=1:n for j=1:n if(inbuf(i,j) 四、实验结果及分析:(原图像和处理后的图像比较及分析) 由实验结果可以看出,窗口大小较小(如2×2)时,编码图像与原图像比几乎相同,很难察觉出误差。而当窗口较大(如8×8)时,在一些细节较多的部位就能看出有较明显的方块效应。同时,窗口越大,其对码率的压缩效果也越明显。综合考虑,当窗口大于8×8时,方块效应会导致观察上有一定的障碍,故选择2×2或4×4较为合适。 日 期: 2011 年10 月 18 日 ================================ 实验名称:图像线性预测编码(DPCM) 一、实验目的: 通过编程设计,掌握帧内DPCM的编解码方法(预测、量化)及其压缩性能。 二、实验内容: (1)编制一维前值预测DPCM编解码程序,预测系数取(1,0,0,0)。 (2)编制二维前值预测DPCM编解码程序,预测系数取(1/2,1/4,0,1/4)。(3)重建图像f′(i,j)与原图像f(i,j)的误差图像,用绝对值表示如下。 di,jnf(i,j)f(i,j) 式中的n为放大因子,以便观察误差的分布情况。 本实验采用15个量化分层的主观量化器,其量化电平分别取(0,±5,±7,±10,±17,±28,±39,±52,±67)。 实验图像为cla0或cla1。 三、实验方法及编程: 图像的线性预测编码所运用的基本原理是基于二维图像中相邻图像间存在着很强的相关性。 ˆ0表示预测值,则x0的预测值为: 假定当前待编码的像素为x0,ai表示预测系数,并用xˆ0a1x1a2x2a3x3a4x4 x预测误差为: ˆ0 ex0xx0的恢复值为: xˆ0eq(eq为e的量化值)x0function newbuf=Dpcm_code(oldbuf,M,N,dim);% ************************************************************************ % 函数名称: % Dpcm_Code()“线性预测编解码器”算法函数 % 参数: % oldbuf 原图像数组 % M,N 原图像尺度 % dim 选择预测编码维数 % newbuf 存放处理后的图像二维数组 % 说明: % 根据线性预测编解码算法调用各子模块,对原图像进行1D/2D线性预测编码和解码,% 解码后的恢复图像放在newbuf数组中。% ************************************************************************ global newbuf;%定义全局变量 for i=1:M for j=1:N pre_val=Predict_Value(i,j,N,dim);err=oldbuf(i,j)-pre_val;quan_err=Quant_Value(err);res_val=Restor_Value(quan_err,pre_val);newbuf(i,j)=Clip_Value(res_val);end end %-----------function newbuf=Error_Code(M,N,dim);% ************************************************************************ % 函数名称: % Error_Code()“传输误码解码器”算法函数 % 参数: % M,N 原图像尺度 % dim 选择预测编码维数 % newbuf 存放处理后的图像二维数组 % 说明: % 模拟信道传输过程中产生的误码,观察传输误码经解码后对恢复图像的影响,解码 % 后的恢复图像放在newbuf数组中。% ************************************************************************ global newbuf;wrong=zeros(M,N);wrong(100,100)=120;for i=1:M for j=1:N pre_val=Predict_Value(i,j,N,dim);err=wrong(i,j);quan_err=Quant_Value(err);res_val=Restor_Value(quan_err,pre_val);newbuf(i,j)=Clip_Value(res_val);end end %-----------function Pvalue=Predict_Value(row,col,N,dim)% ************************************************************************ % {This function is used to give predicted value as linear predictor.% The prediction formula is as follows: % 1_D DPCM: ^x[i,j]=128 if j=1 % x'[i,j-1] if j>1 % 2_D DPCM: ^x[i,j]=128 if i=1,j=1 % x'[ i,j-1] if i=1,j>1 % x'[i-1,j ] if i>1,j=1 or N % 1/2x'[ i,j-1] if i>1,j>1 % 1/8x'[i-1,j-1](Pirsch's predictor)% 1/4x'[i-1,j ] % 1/8x'[i-1,j+1] % Dim : Dimension of prediction % Row : vertical coordinate of current pixel to be predicted % COL : horizontal coordinate of current pixel to be predicted} % ************************************************************************ global newbuf;switch dim case 1 if col==1 Pvalue=128;else Pvalue=newbuf(row,col-1);end case 2 if(row==1&&col==1)Pvalue=128;end if(row==1&&col>1)Pvalue=newbuf(row,col-1);end if(row>1&&col==1)||(row>1&&col==N)Pvalue=newbuf(row-1,col);end if(row>1&&col>1&&col 四、实验结果及分析:(原图像和处理后的图像比较及分析) 由实验结果可以看出,一维和二维预测编码图像与原图均十分接近,两者的差别难以察觉。而从误码图像中可以看出,当在某一位置出现误码后,一维预测编码会将误差延续至整个行,显得很明显。二维预测编码则与之不同,其将误码延续至其后的斜后方,并且随着距离的增加迅速消失,总体而言,影响要小一些。两相比较,可以体现出二维预测编码的一些优势。 日 期: 2011 年10 月 25 日 ================================ 实验名称:JPEG压缩编码 一、实验目的: (1)掌握n×n子块的DCT图像变换及频谱特点。(2)熟悉JPEG基本系统的图像编解码方法。 二、实验内容: (1)编程实现n×n子块DCT变换的图像频谱显示,8×8子块DCT变换系数按“Z”(Zig-Zag)扫描图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。 (2)编程实现JPEG压缩编码,进行8×8子块的DCT图像变换,JPEG量化矩阵的量化与反量化,8×8子块DCT的图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。 三、实验方法及编程: DCT频谱系数在方块中的分布有如下规律:直流系数位于左上角第一个的位置,且值较大。余下的为交流系数,越向右下角系数的值一般越小,属于高频分量。在细节较多的区域,DCT频谱系数整体显得较亮,而在背景区,除了直流系数和少数低频系数,其余都为0或很小的值,故而显示为黑色。对DCT系数做反DCT变换则可复原出原图。若反变换前对DCT系数进行取舍则可以降低码率,但是,会对图像质量带来一定的影响。JPEG压缩编码的算法主要计算步骤如下: (1)通过前向离散余弦变换减少图像数据相关性。 (2)利用人眼的视觉特性对DCT系数进行量化。 (3)使用差分脉冲编码调制对直流系数进行编码。 (4)对交流系数进行“Z”形扫描,使用行程长度编码对交流系数进行编码。 (5)熵编码器对上述描述符进行熵编码,可以采用霍夫曼编码,也可以采用算数编码。 function newbuf=DctBlock(oldbuf,Block)% ************************************************************************ % 函数名称: % DctBlock()DCT n*n块频谱函数 % % 参数: % oldbuf 原图像数组 % Block DCT n*n当前块选择值 % newbuf 存放处理后的图像二维数组 % % 说明: % 根据Block块的当前选择值,计算原图像的n*n块DCT变换,并转换为可视频谱图,% 有利于频谱的观察。% ************************************************************************ oldbuf=double(oldbuf);H=dctmtx(Block);newbuf=blkproc(oldbuf,[Block Block],'P1*x*P2',H,H');newbuf=log(abs(newbuf));subplot(2,2,2);imshow(newbuf,[]);%-----------function newbuf=DctCode(oldbuf,DCTch)% ************************************************************************ % 函数名称: % DctCode()DCT 8*8 块系数“Z”字扫描图像压缩函数 % % 参数: % oldbuf 原图像数组 % DCTch DCT 8*8 块“Z”扫描当前系数选择值 % newbuf 存放处理后的图像二维数组 % % 说明: % 计算图像的8×8子块DCT变换,按“Z”字扫描顺序,根据DCTch参数,只保留64个 % DCT系数中的前DCTch个系数,对修改后的DCT系数用逆DCT变换重建图像,得到DCT % 变换的压缩图像。计算重建图像的均方根误差RMSE ;显示误差图像和误差直方图。% ************************************************************************ zigzag=[1 2 6 7 15 16 28 29 %设置Z扫描顺序 3 5 8 14 17 27 30 43 4 9 13 18 26 31 42 44 10 12 19 25 32 41 45 54 11 20 24 33 40 46 53 55 21 23 34 39 47 52 56 61 22 35 38 48 51 57 60 62 36 37 49 50 58 59 63 64];tbuf=ones(8);%定义8*8全1数组 maskbuf=tbuf.* zigzag<=DCTch;%根据当前DCTch值得到“Z”字扫描的二值掩模 oldbuf=double(oldbuf);H=dctmtx(8);dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');newbuf=blkproc(dctno,[8 8],'P1*(x.*P2)*P3',H',maskbuf,H);subplot(2,2,2);imshow(newbuf,[]);eimag(oldbuf,newbuf);%-----------function newbuf=JpegCode(oldbuf)% ************************************************************************ % 函数名称: % JpegCode()JPEG近似基准编码 % % 参数: % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 % % 说明: % 实现JPEG压缩编码,进行 8×8 子块DCT变换、JPEG量化矩阵的量化与反量化,8×8 %子块DCT的图像重建;计算重建图像的均方根误差RMSE;显示误差图像和误差直方图。% ************************************************************************ z = [16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99];%标准亮度量化表 oldbuf=double(oldbuf);%原图像数据转换为双精度 H=dctmtx(8);dctno=blkproc(oldbuf,[8 8],'P1*x*P2',H,H');jpegno=blkproc(dctno,[8 8],'round(x./P1)',z);jpegno1=blkproc(jpegno,[8 8],'x.*P1',z);newbuf=blkproc(jpegno1,[8 8],'P1*x*P2',H',H);subplot(2,2,2);imshow(newbuf,[]);eimag(oldbuf,newbuf);%-----------function eimag(oldbuf,newbuf)% ************************************************************************ % 函数名称: % eimag()% 说明: % 计算重建图像的均方根误差RMSE;显示误差图像和误差直方图。% ************************************************************************ e=double(oldbuf)-newbuf;%计算原图像与压缩图像之差 [m,n]=size(e);RMSE=sqrt(sum(e(:).^2)/(m*n));%计算均方根误差 if RMSE %如果有误差,即rmse不为0 emax=max(abs(e(:)));%找图像差最大值 [h,x]=hist(e(:),emax);%用于生成直方图数据 if length(h)>= 1 %如果有数据 s=max(h(:));subplot(2,2,3),bar(x,h/s,'k');%显示图像差值直方图 RMSE=num2str(RMSE);%把数值转换为字符串 strRMSE=strcat('图像差值直方图 均方根误差RMSE= ',RMSE);%把多个串连接成长串 title(strRMSE);e=mat2gray(e,[-emax,emax]);%显示差值图像 subplot(2,2,4),imshow(e);title('原图像与压缩图像的差值图像');%显示结果图像标题 end end %----------- 四、实验结果及分析:(原图像和处理后的图像比较及分析)由实验结果可以看出: 当保留的系数很少时,恢复的图像有着严重的方块效应,对观看造成很大的阻碍。而当保留的系数较多时,恢复的图像和原图十分接近,对于观看基本没有影响。 JPEG是常用的静态图片编码方法,实验时进行了一定的简化。从结果看,其编码的结果较好,对观看影响很小。同时,JPEG对于码率的压缩也是效果很好的。 实验课程小结和思考(包括感想、体会与启示) 本学期所学的图像处理和图像通信编码方面的实验所用到的理论知识在以前的课程中都学习过,但是当运用到实际实验中的时候却显得比较生疏。这次实验课程让我对于理论知识和Matlab软件的应用有了更多的了解,尤其是一些编程函数与之前学习的C或是C++有很大区别,这花费了我一定的时间去学习Matlab的使用。 实验中的内容都是较为基础和简单的,与实际应用还有较大的距离。在今后的工作与学习过程中肯定会遇到复杂的多的难题。但是通过这次实验课程,我从中看到了这些知识的应用方向与方法,对我有很大的帮助。 实验报告 课程名称 自动控制原理 _ 学生学院 自动化学院 _ 专业班级___物联网工程(4)班___ 学 号____________ 学生姓名_________________ 组 员_________________ 指导教师_______李顺祥 ________ 2018 年 1 月 一.实验目的 1、用MATLAB的命令 2、掌握MATLAB有关传递函数求取其零、极点计算的函数 3、掌握用MATLAB求取系统的数学模型 二.实验软件环境 1、计算机 2、MATLAB软件 三.实验内容 1、特征多项式的建立与特征根的求取 在命令窗口依次运行下面命令,并记录各命令运行后果 >>p=[1,2,0,4]; 构建特征多项式p(s)=s^3+3s^2+4的矩阵 >>r=roots(p) 求特征方程p(s)= p(s)=s^3+3s^2+4=0的特征根 >>p=poly(r) 从特征根构建特征多项式的矩阵 2、求单位反馈系统的传递函数 在命令窗口依次运行下面命令,并记录各命令运行后果 >>numg=[1];deng=[500,0,0]; 构建传递函数G(s)=1/500s^2的特征多项式 >>numc=[1,1];denc=[1,2]; 构建传递函数Gc(s)=(s+1)/(s+2)的特征多项式 >>[num1,den1]=series(numg,deng,numc,denc); 求G(s)Gc(s)>>[num,den]=cloop(num1,den1,-1)求开环传递函数G(s)Gc(s)的闭环传递函数 >>printsys(um,den) 输出传递函数 3、传递函数零、极点的求取 在命令窗口依次运行下面命令,并记录各命令运行后果 >>num1=[6,0,1];den1=[1,3,3,1]; 构建传递函数G(s)=(6s^2+1)/(s^3+3s^2+3s+1)的特征多项式 >>z=roots(num1); 求G(s)的零点 >>p=roots(den1); 求G(s)的极点 >>n1=[1,1];n2=[1,2];d1=[1,2*i];d3=[1,3];>>num2=conv(n1,n2) 求多项式(s+1)(s+2)>>den2=conv(d1,conv(d2,d3)) 求多项式(s-2j)(s+2j)(s+3)>>printsys(num2,den2) 构建H(s)=(s+1)(s+2)/(s-2j)(s+2j)(s+3)>>num=conv(num1,den2);den=conv(den1,num2);构建G(s)/H(s)的特征多项式的矩阵 >>printsys(num,den) 输出以多项式表示的传递函数 >>pzmap(num,den),title(‘极点-零点图’) 输出传递函数的极点和零点图 4、求反馈联接系统的传递函数 命令窗口依次运行下面命令,并记录各命令运行后果 >>numg=[1];deng=[500,0,0]; 构建传递函数G(s)=1/500s^2的特征多项式 >>numh=[1,1];denh=[1,2]; 构建传递函数H(s)=(s+1)/(s+2)的特征多项式 >>[num,den]=feedback(numg,deng,numh,denh)>>printsys(num,den) 5、自行利用MATLAB命令求取以下系统传递函数,并记录下结果 四.实验的结果及分析1、2、3、4、5、五.实验心得体会 通过本实验,我了解了基本的Mathlab指令,也让我认识到了mathlab的强大。还有通过本实验我主要了解了如何使用matlab指令求解传递函数以及其零极点,较为基础,但十分重要,为后面实验的开展打下基础。 一.实验目的 1、掌握MATLAB对系统进行时间响应分析 2、掌握一节惯性系统以及二阶系统的时间响应特征以及系统性能与系统参数之间的关系 二.实验软件环境 3、计算机 4、MATLAB软件 三.实验内容 1、使用MATLAB求一阶惯性系统的单位阶跃响应曲线。 系统传递函数: 在命令窗口依次运行下面命令,并记录各命令运行后结果 >>t=[0:.5:5];>>y=1-exp(-2*t);>>plot(t,y’r’);>>axis[0 5 0 1.1];>>set(gca,’ytick’,0:.1:1.1);>>title(‘y(t)=1-exp(-2t)’);>>xlabel(‘t’);>>ylabel(‘y(t)’);>>grid 若系统传递函数:G(S)=10/s+1 自行编制在命令窗口运行命令,求其单位阶跃响应,并与上面的结果进行比较 2、使用MATLAB求二阶系统的单位阶跃响应曲线。系统传递函数如下: 在命令窗口如下运行命令,并记录各命令运行后结果 >>sysms s for zeta=[0:0.2:0.8,1:0.5:2] wn=0.4;wn=sym(num2str(wn));zet=sym(num2str(zeta));if zeta==0 figure(1)ezplot(ilaplace(wn^2/s/(s^2+wn^2)),[0 80]);grid on title(‘xi=0’)elseif zeta==1 figure(2)ezplot(ilaplace(wn^2/s/(s+wn)^2),[0 80]); hold on;else figure(2) ezplot(ilaplace(wn^2/s/(s^2+2*zeta*wn^2)),[0 80]); hold on;end end grid on;title(‘xi:0.2,0.4,0.6,0.8,1.0,1.5,2.0’)axis([0 80 0 1.8])gtext(‘0.4’)gtext(‘1.0’)gtext(‘2.0’) 四.实验的结果及分析1、2、五.实验心得体会 做完了这次实验,我对如何使用Matlab对系统进行时域分析有了进一步的了解,包括对一阶和二阶系统,这是对系统分析的重要步骤。 一.实验目的 1、掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquist图(极坐标图)的方法 2、掌握利用Bode图和Nyquist图对系统性能进行分析的理论和方法 二.实验软件环境 5、计算机 6、MATLAB软件 三.实验内容 1、作各自典型环节的Bode图和Nyquist图,参数自定(1)比例环节 (2)积分环节 (3)惯性环节 (4)震荡环节 2、开环传递函数如下 作Bode图和Nyquist图:求取幅值裕度和相角裕度,据此判断闭环系统稳定性与相对稳定性;按Nyquist稳定盘踞判断闭环系统的稳定性。 四.实验的结果及分析 1、(1) (2) (3) (4) 2、五.实验心得体会 本实验主要了解Matlab软件的使用以及使用matlab指令求传递函数的频率响应,了解各典型环节的频率响应,并求出某一开环传递函数的伯德图,通过其幅值裕量和相角裕量,判断系统的稳定性。这是一整个对系统进行频域分析的步骤,十分重要!第二篇:自动控制原理实验报告
第三篇:《自动控制原理》课程实验报告(范例)
第四篇:南邮08级图像实验报告
第五篇:广工物联网自动控制原理实验报告