手把手教你一小时设计基于matlab的信号发生器GUI界面(2)

手把手教你一小时设计基于matlab的信号发生器GUI界面(2)_第1张图片

3.xx.m文件设计

在xx.fig摆放了上面那些元件后,xx.fig会有些代码了,不管他,在xx.fig的按钮中 右键→点击回调→callback!
就能看到在xx.m文件中所对应的的.m代码
这是AM按钮下的callback代码。

function pushbutton1_Callback(hObject, eventdata, handles)


AM

AM是AM子界面的 .m文件的名字,加入AM后就能实现在点击那个按钮的时候切换界面。

function pushbutton8_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton8 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
close(handles.figure1);

手把手教你一小时设计基于matlab的信号发生器GUI界面(2)_第2张图片
上面那两行代码的含义:当点击‘AM’按钮时,会跳出AM.fig界面,当点击‘退出’按钮时,会退出整个界面。

function pushbutton8_Callback(hObject, eventdata, handles)

这行代码运行条件是:当在界面点击所对应的的按钮时,会运行里面的代码。
上面那行表示的就是点击pushbutton8时,运行代码。

4.AM界面及代码设计

主界面设计很简单,不涉及计算,这个系统的计算功能都在子界面中实现。下面说一下子界面的设计方法。
手把手教你一小时设计基于matlab的信号发生器GUI界面(2)_第3张图片
上图是子界面运行时的图像。
上图有几个关键部件,上方两个显示运行结果的图像框,左下角设置参数的文本输入框,右下角界面控制的俩按钮。
说一下我这个界面运行的流程,从主界面点击AM系统进入这个界面后,左下角的参数会有默认的初始参数,点击运行产生图像。
手把手教你一小时设计基于matlab的信号发生器GUI界面(2)_第4张图片
这是运行后的AM界面效果。
合理的修改左下角参数也可产生图像
手把手教你一小时设计基于matlab的信号发生器GUI界面(2)_第5张图片
这是点击运行按钮里的程序,前四号就是从edit1,2,3,4中获取数值,后面就是计算。

A=str2num(get(handles.edit1,'String'));  % A=0.3
f=str2num(get(handles.edit2,'String')); %f=1,1hz基带信号
fc=str2num(get(handles.edit3,'String')); %fc=64  hz载波
fs=str2num(get(handles.edit4,'String')); %fs=1024;    
t=0:1/fs:2-0.5/fs;    %采样时间为0到2秒
x=(1+A*cos(2*pi*f*t)).*cos(2*pi*fc*t);  %调幅表达式
plot(handles.axes1,x);     
%画出采样时间内的AM信号
y=fft(x);
N=length(x);
stem(handles.axes3,(0:N-1)*fs/N,abs(y),'.');   %画出以模拟频率为横坐标,以FFT后的幅度为纵坐标
%画出AM信号做傅里叶变化后的幅度和频率图

so easy。需要整个资源的可以点进我的资源下载,谢谢各位的学习了。

你可能感兴趣的:(GUI设计)