数字信号课设 判断系统稳定性文档格式.docx
《数字信号课设 判断系统稳定性文档格式.docx》由会员分享,可在线阅读,更多相关《数字信号课设 判断系统稳定性文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
第一章稳定性判定原理·
·
6
第二章命令介绍及GUI介绍·
2.1仿真程序用到的命令·
2.2GUI人机交互简单介绍·
7
第三章软件仿真程序设计·
8
3.1系统函数零极点分布·
3.2单位阶跃响应·
9
3.3单位脉冲响应·
3.4系统幅频相频特性·
第四章仿真结果波形分析·
10
4.1零极点分布图·
4.2单位阶跃响应曲线·
12
4.3单位脉冲响应曲线·
13
4.4幅频相频特性曲线·
14
第五章问题与总结·
15
第六章心得体会·
16
附页-简单GUI程序·
17
参考文献·
22
燕山大学评审意见表·
23
第一章:
稳定性判定原理:
对于分析给定参数系统的稳定性,利用系统的稳定性的定义:
是指对任意有界的输入信号,系统都能得到有界的系统响应,或者系统的单位脉冲响应满足绝对可和的条件。
离散系统的零极点:
线性时不变离散系统可用线性常系数差分方程描述,即
y(n-k)为输出序列,x(n-k)为输入序列;
将上式进行Z变换后,取得系统函数H(Z)的表达式
表达式中的零极点决定了系统特性和稳定性,其中极点位置主要影响频率响应的峰值及尖锐程度,而零点位置主要影响频率响应的谷点位置及形状。
第二章:
命令介绍及GUI介绍:
2.1仿真设计中用到的命令:
1.zplane(a,b):
零极点分布图。
a为系统函数分子多项式系数向量,
b为系统函数分母多项式系数向量。
2.rz=roots(a)求解多项式零点坐标。
3.rp=roots(b)求解多项式极点坐标。
4.stepz(a,b,n)
a,b为系统函数多项式系数向量(如上),n为采样点数,即图像长度
5.频率特性函数freqz,[h,w]=freqz(a,b,n)
6.abs()取特性函数幅值;
7.angle()取特性函数相位
8.单位脉冲序列响应函数impz(a,b,n)
9.abs(h)取特性函数幅值;
频率特性用到angle(h)取特性函数相位
10.plot(X,Y)分别以X、Y为横纵坐标作图。
11.grid给图像加网格
12.xlabel()给x轴加标题
ylabel()给y轴加标题
13.title()给图形加标题
14.subplot()图形分区合并
2.2GUI人机交互简单介绍:
GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等。
进行设计时,首先单击面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当位置,这时将在该位上为图形界面添加相应的控件。
一个图形界面的完成,除了设计其外观外,还有相当的一部分是通过属性的设置来完成的。
因此在设置这些属性时,要注意下面几个常用又很重要的属性设置。
控件风格和外观:
String属性:
控件上的文本,以及列表框和弹出菜单的选项。
对于弹出式菜单类型的,应该在string后面的输入栏中加入如:
A(回车),B(回车),C(回车)等。
Visible:
控件是否可见。
Fontsize:
字体的大小,尤其对于静态文本框很有效。
对象的常规信息:
Enable属性:
表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。
对于一些edittext等则在off的状态时是不可以输入的
Style:
控件对象类型。
即为按钮类型、文本框类型或活动条等。
Tag:
控件表示(用户定义)。
即是识别该控件的标签,如假设tag为xxx,则其回调函数是xxx_callback。
Position:
控件对象的尺寸和位置。
对于活动条而言,该属性决定了水平放置还是竖直。
控件回调函数的执行:
CallBack属性:
是连接程序界面整个程序系统的实质性功能的纽带。
该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。
控件当前状态信息:
Value:
控件的当前值。
(对于popupmenu类型的,value为3就表示第三行的值。
对于radio类型的,其值为1就表示已经选中该按钮。
Max和min:
对于滑动条而言,设置最大值和最小值,从而设置滑动条的变化范围。
第三章:
软件仿真程序设计:
3.1系统函数H(z)的零极点分布图
对于给定参数的系统:
要获得系统函数H(z)的零极点分布图,可直接调用MATLAB软件函数库中函数zplane,常见的语句格式为zplane(a,b)
其中:
a为系统函数分子多项式系数向量,b为系统函数分母多项式系数向量。
对应该系统:
a=[1,5,-50]
b=[2,-2.98,0.17,2.3418,-1.5147]
零极点分布图在MATLAB中源程序代码:
a=[1,5,-50];
b=[2,-2.98,0.17,2.3418,-1.5147];
rz=roots(a)%求解多项式零点坐标
rp=roots(b)%求解多项式极点坐标
zplane(a,b)%离散系统零极点分布函数
gridon
legend(‘零点’,’极点’)
title(‘零极点分布图’)
3.2单位阶跃响应:
要获得系统函数H(z)的单位阶跃序列的系统响应,可直接调用函数库中的stepz函数,常见的语句格式为stepz(a,b,n)
其中,a,b为系统函数多项式系数向量(如上),n为采样点数,即图像长度;
具体在MATLAB中源程序代码:
stepz(a,b,2500)%单位阶跃响应函数
title(‘单位阶跃响应’)
3.3单位脉冲响应:
要获得系统函数H(z)的单位脉冲序列的系统响应,可直接调用函数库中的impz函数,常见的语句格式为impz(a,b,n)
impz(a,b,300)%单位脉冲响应函数
title(‘单位脉冲响应’)
3.4系统幅频响应与相频响应:
获得系统函数H(z)的幅频响应与相频响应,须频率特性函数freqz,其常见的语句格式为:
[h,w]=freqz(a,b,n)
幅值特性用到abs(h)取特性函数幅值;
频率特性用到angle(h)取特性函数相位;
另外,将此两个特性曲线画在同一图中,更易于视觉形象接受,用到分划子区间图语句subplot(m,n,p)将当前图形窗口分划成m*n个绘图区间。
[h,w]=freqz(a,b,512);
%频率特性函数
amp=abs(h);
%取幅值
pha=angle(h);
%取相位
subplot(2,1,1)
plot(w,amp,’r’)%绘制幅频特性曲线
title(‘幅频特性曲线’)
subplot(2,1,2)
plot(w,pha,’g’)%绘制相频特性曲线
title(‘相频特性曲线’)
第四章:
仿真结果分析:
4.1零极点分布图:
放大零极点分布图后:
具体的零点,极点坐标如下:
极点坐标分别为rp=(-0.9000,0.7000+0.6000i,0.7000-0.6000i,0.9900).
结合具体的极点坐标和图形分析,得出所有极点都在圆内,所以该系统稳定。
4.2单位阶跃响应曲线:
单位阶跃响应:
当系统输入为单位阶跃序列时系统的响应可作为验证系统稳定性的一种方法。
如果系统为稳定的则系统的单位阶跃响应为有界的,反之则系统为不稳定的。
由图可见,该系统的单位阶跃响应曲线随着n增大最终归于有界。
因此,验证了该系统是一个稳定系统。
4.3单位脉冲响应曲线:
单位脉冲响应:
当极点处于单位圆内,系统的脉冲响应曲线随着频率的增大而收敛;
当极点处于单位圆上,系统的脉冲响应曲线为等幅振荡;
当极点处于单位圆外,系统的脉冲响应曲线随着频率的增大而发散。
由图可见,该系统的单位脉冲响应曲线随着n增大而收敛。
验证了该系统的极点在单位圆内,从而验证了系统是一个因果稳定系统。
4.4幅频相频特性曲线:
幅频特性曲线反映了信号幅值强度随频率变化的分布,相频特性曲线是信号的相位随频率变化的分布,反映了系统对输入信号的延时程度。
第五章:
问题与结论:
在课程设计中,编写程序时,对于好多函数命令不是很熟,必须查看帮助。
对于数字信号专业知识,深深地认识到理解和掌握的不是很牢固。
分析系统的稳定性:
系统函数的极点在零极点分布图上的位置分布来判断系统的稳定性,如果全部的极点都在单位圆内,则该系统为稳定系统,如果极点在单位圆外,则该系统为非稳定系统。
系统输入为单位阶跃信号时,系统的响应可作为验证系统稳定性的一种方法。
第六章:
心得体会:
我的课程设计题目为判断系统的稳定性,初拿到题目觉得将零极点分布图画出,判断极点是否位于单位圆内即可,但我的想法太简单了,关于为什么极点在单位圆内就能判定稳定性,为什么稳定性的充要条件是单位取样响应绝对可和,我只记住了结论,但原理的推导是我的瓶颈。
数字信号考试成绩让我产生挫败感,所以借助课程设计使我有恶补专业知识的机会,我做了其他关于巴特沃兹低通、高通、带通滤波器,切比雪夫低通、高通、带通滤波器、对输入信号的滤波及对输入信号加噪声的相关内容。
接触的多一点,让我对数字信号处理有了更近一层的理解,这次简单的综合实践,拓宽了我的知识面,提升了我解决简单实际问题的能力。
同时深深地认识到,综合能力和创新意识的提高必须基于对专业知识的深刻理解和把握,以及对MATLAB的运行原理和操作的认识和熟练。
这是个坚持学习、树立信心的过程,我会努力靠近。
本次数字信号课程设计算是一次简单的对专业知识的回顾与总结,同时也是对MATLAB软件的粗略学习和应用。
虽然只是短短的为期几天,真的感受到MATLAB的强大与广博,涉及声音、图像、信号的采集、处理分析、存储、人机界面交互,等等,通过这次对几个课程设计题目的尝试,从题目的分析、研究方向与方法的选择、相关资料的查阅、简单程序的编写、调试与修改、波形图像的分析、结论的得出这些经历,我更加深刻了解了自己对专业知识的把握程度与不足之处;
在短短的几天之间比较全面地掌握MATLAB软件,是痴人说梦,它的强大魅力和趣味值得以后长年累月的探索和研究。
附页---简单GUI程序:
functionvarargout=wendingxing(varargin)
%WENDINGXINGM-fileforwendingxing.fig
%WENDINGXING,byitself,createsanewWENDINGXINGorraisestheexisting
%singleton*.
%
%H=WENDINGXINGreturnsthehandletoanewWENDINGXINGorthehandleto
%theexistingsingleton*.
%WENDINGXING('
CALLBACK'
hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinWENDINGXING.Mwiththegiveninputarguments.
Property'
'
Value'
...)createsanewWENDINGXINGorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforewendingxing_OpeningFcngetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtowendingxing_OpeningFcnviavarargin.
%*SeeGUIOptionsonGUIDE'
sToolsmenu.Choose"
GUIallowsonlyone
%instancetorun(singleton)"
.
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpwendingxing
%LastModifiedbyGUIDEv2.524-Jun-201409:
48:
57
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('
gui_Name'
mfilename,...
'
gui_Singleton'
gui_Singleton,...
gui_OpeningFcn'
@wendingxing_OpeningFcn,...
gui_OutputFcn'
@wendingxing_OutputFcn,...
gui_LayoutFcn'
[],...
gui_Callback'
[]);
ifnargin&
&
ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforewendingxingismadevisible.
functionwendingxing_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstowendingxing(seeVARARGIN)
backgroundImage=importdata('
sea.jpg'
);
axes(handles.axes1)
image(backgroundImage);
%½
«
×
ø
±
ê
Ï
µ
Ä
Ö
á
Ç
©
È
¥
ô
axisoff;
smiley=importdata('
smile.jpg'
set(handles.pushbutton1,'
CDATA'
smiley)
set(handles.pushbutton2,'
set(handles.pushbutton3,'
set(handles.pushbutton4,'
%Choosedefaultcommandlineoutputforwendingxing
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakeswendingxingwaitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfuncti