MATLAB软件实践.docx
- 文档编号:25142796
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:18
- 大小:654.11KB
MATLAB软件实践.docx
《MATLAB软件实践.docx》由会员分享,可在线阅读,更多相关《MATLAB软件实践.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB软件实践
软件实践任务书
一、设计题目
信号运算
二、实验目的
1、熟悉和掌握MATLAB软件程序的设计方法
2、掌握MATLABGUI程序设计
3、培养学生分析程序能力
三、实验要求
1、设计一个二阶微分系统,求激励输入所产生的响应
2、绘出一些函数的图形
3、运算特殊函数的快速傅里叶变换
四、模块分析
1、信号发生模块
functionWQF_OpeningFcn(hObject,eventdata,handles,varargin)%产生信号
handles.ex=[0:
0.01:
10];
handles.fex=exp(-handles.ex);
handles.sx=[0:
0.01:
10];
handles.fsx=sin(handles.sx);
handles.ux=[0:
0.01:
10];
handles.fux=square(pi*handles.ux);
handles.output=hObject;
2、系统运算模块
functionpushbutton1_Callback(hObject,eventdata,handles)%系统运算
x1=str2num(get(handles.edit_a,'String'))
y1=str2num(get(handles.edit_b,'String'))
z1=str2num(get(handles.edit_c,'String'))
x2=str2num(get(handles.edit_b1,'String'))
y2=str2num(get(handles.edit_b2,'String'))
z2=str2num(get(handles.edit_b3,'String'))
k=[x1y1z1]
j=[x2y2z2]
r=lsim(j,k,handles.f,handles.x)
plot(handles.x,r,'b')
axes(handles.axes1);
axis([0,10,-2,2])
3、信号选择模块
functionjip_Callback(hObject,eventdata,handles)%信号的选择
val=get(hObject,'value')
switchval
case1
handles.f=handles.fex;
handles.x=handles.ex;
case3
handles.f=handles.fsx;
handles.x=handles.sx;
case2
handles.f=handles.fux;
handles.x=handles.ux;
end
guidata(hObject,handles);
4、输入
functionedit_a_Callback(hObject,eventdata,handles)%输入a
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_a_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b_Callback(hObject,eventdata,handles)%输入b
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_c_Callback(hObject,eventdata,handles)%输入c
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_c_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b1_Callback(hObject,eventdata,handles)%输入b1
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b2_Callback(hObject,eventdata,handles)%输入b2
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b2_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b3_Callback(hObject,eventdata,handles)%输入b3
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b3_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
5、绘图
functionpushbutton3_Callback(hObject,eventdata,handles)%绘图
plot(handles.x,handles.f)
axis([0,10,-2,2])
6、快速傅里叶变换
functionpushbutton4_Callback(hObject,eventdata,handles)%快速傅里叶变换
n=length(handles.f)
X=fft(handles.f)
df=100/n;
N=0:
n/2;
f=N*df
plot(f,abs(X(N+1))*2/n)
7、退出
functionpushbutton2_Callback(hObject,eventdata,handles)%退出
ss=questdlg('你真的要退出吗?
','退出信息窗口','不,我还要看','是的,我要退出','是的,我要退出!
');
switchss
case'是的,我要退出!
'
delete(handles.figure1);
end
五、仿真
1、设计界面
2、系统运算
(1)输入exp(-t)
(2)输入sin(t)
(3)输入u(t)
3、绘图
(1)exp(-t)
(2)sin(t)
(3)u(t)
4、快傅里叶变换
(1)exp(-t)
(2)u(t)
(3)sin(t)
5、退出
五、心得
通过这次实验,发现MATLAB的功能很强大,复杂的系统响应、快速傅里叶变换在MATLAB中运算很简单,代码也很简单,并且发现MATLABGUI设计挺简单的,其回调函数模板也已经给我们了,只要我们把实现某种功能的代码放入相应的回调函数中即可,还有在整理程序过程中发现在MATLAB中的中文复制到Word文档中就变成了乱码,需要修改。
总的来说,这次软件实践让我学会了很多,能自己做一个像Windows中一样的计算器。
六、总代码
functionvarargout=WQF(varargin)
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@WQF_OpeningFcn,...
'gui_OutputFcn',@WQF_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{:
});
end
functionWQF_OpeningFcn(hObject,eventdata,handles,varargin)%产生信号
handles.ex=[0:
0.01:
10];
handles.fex=exp(-handles.ex);
handles.sx=[0:
0.01:
10];
handles.fsx=sin(handles.sx);
handles.ux=[0:
0.01:
10];
handles.fux=square(pi*handles.ux);
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=WQF_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
functionjip_Callback(hObject,eventdata,handles)%信号的选择
val=get(hObject,'value')
switchval
case1
handles.f=handles.fex;
handles.x=handles.ex;
case3
handles.f=handles.fsx;
handles.x=handles.sx;
case2
handles.f=handles.fux;
handles.x=handles.ux;
end
guidata(hObject,handles);
functionjip_CreateFcn(hObject,eventdata,handles)
%
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionpushbutton1_Callback(hObject,eventdata,handles)%系统运算
x1=str2num(get(handles.edit_a,'String'))
y1=str2num(get(handles.edit_b,'String'))
z1=str2num(get(handles.edit_c,'String'))
x2=str2num(get(handles.edit_b1,'String'))
y2=str2num(get(handles.edit_b2,'String'))
z2=str2num(get(handles.edit_b3,'String'))
k=[x1y1z1]
j=[x2y2z2]
r=lsim(j,k,handles.f,handles.x)
plot(handles.x,r,'b')
axes(handles.axes1);
axis([0,10,-2,2])
functionpushbutton2_Callback(hObject,eventdata,handles)%退出
ss=questdlg('你真的要退出吗?
','退出信息窗口','不,我还要看','是的,我要退出','是的,我要退出!
');
switchss
case'是的,我要退出!
'
delete(handles.figure1);
end
functionedit_a_Callback(hObject,eventdata,handles)%输入a
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_a_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b_Callback(hObject,eventdata,handles)%输入b
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_c_Callback(hObject,eventdata,handles)%输入c
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_c_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b1_Callback(hObject,eventdata,handles)%输入b1
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b2_Callback(hObject,eventdata,handles)%输入b2
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b2_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionedit_b3_Callback(hObject,eventdata,handles)%输入b3
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit_b3_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionpushbutton3_Callback(hObject,eventdata,handles)%绘图
plot(handles.x,handles.f)
axis([0,10,-2,2])
%---Executesonbuttonpressinpushbutton4.
functionpushbutton4_Callback(hObject,eventdata,handles)%快速傅里叶变换
n=length(handles.f)
X=fft(handles.f)
df=100/n;
N=0:
n/2;
f=N*df
plot(f,abs(X(N+1))*2/n)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 软件 实践