笔记九简单设计一个信号发生器的GUI界面,通过输入波形参数,然后选择波形,就可以生成对应的波形。
1. 打开GUI
选择Blank GUI,然后更改保存路径
2. 点击坐标区
然后拖动出来
3.再拖动两个面板
4. 双击面板查看它的属性
更改字体大小和显示内容
5. 拖动6个静态文本和6个可编辑文本
6. 双击静态文本查看它的属性
可以更改字体大小和显示内容
7 点击可编辑文本
更改字体大小和显示内容以及标签Tag
8. 拖动一个按钮
9. 双击按钮查看它的属性
更改字体大小和显示内容以及Tag
10. 拖动2个静态文本和1个可编辑文本
11. 双击静态文本查看属性
更改字体大小和显示内容
12. 双击可编辑文本查看属性
更改字体大小和显示内容以及Tag
13. 右键方波按钮
选择查看回调,点击Callback
A=str2num(get(handles.fudu,'string')); % 获取信号的幅度
w=str2num(get(handles.pinlv,'string'));% 获取信号的频率
z=str2num(get(handles.zhankongbi,'string'));% 获取方波的占空比
x1=str2num(get(handles.x1,'string')); % 获取横坐标的起始值
x2=str2num(get(handles.x2,'string')); % 获取横坐标的终止值
y1=str2num(get(handles.y1,'string')); % 获取纵坐标的起始值
y2=str2num(get(handles.y2,'string')); % 获取纵坐标的终止值
t=x1:0.01:x2; % 信号的横坐标范围
y=A*square(w*t,z); % 生成方波信号
plot(handles.axes1,t,y,'LineWidth',2); % 绘制方波信号,蓝色,宽度为2
axis([x1,x2,y1,y2]); % 设置坐标轴范围
guidata(hObject,handles); % 刷新数据
14 展示方波
15. 同样可以生成三角波(三角波需要宽度和斜率这两个参数)
拖动1个按钮,2个静态文本和2个可编辑文本
然后更改字体大小和显示内容以及Tag
16. 右键三角波
查看回调,点击callback
x1=str2num(get(handles.x1,'string'));% 获取横坐标的起始值
x2=str2num(get(handles.x2,'string'));% 获取横坐标的终止值
y1=str2num(get(handles.y1,'string'));% 获取纵坐标的起始值
y2=str2num(get(handles.y2,'string'));% 获取纵坐标的终止值
kuandu=str2num(get(handles.kuandu,'string'));% 获取三角波宽度
xielv=str2num(get(handles.xielv,'string')); % 获取三角波斜率
A=str2num(get(handles.fudu,'string'));% 获取三角波幅度
w=str2num(get(handles.pinlv,'string'));% 获取三角波频率
t=x1:0.01:x2; % 信号的横坐标范围
y=A*tripuls(w*t,kuandu,xielv); % 生成三角波信号
plot(handles.axes1,t,y); % 绘制三角波
axis([x1 x2 y1 y2]); % 坐标轴范围设置
guidata(hObject,handles); % 刷新数据
17. 三角波展示
18. 再拖动一个按钮
双击查看属性,更改字体大小和显示内容以及Tag
19. 右键正弦波按钮
查看回调,点击callback
x1=str2num(get(handles.x1,'string')); % 获取横坐标的起始值
x2=str2num(get(handles.x2,'string')); % 获取横坐标的终止值
y1=str2num(get(handles.y1,'string')); % 获取纵坐标的起始值
y2=str2num(get(handles.y2,'string')); % 获取纵坐标的终止值
A=str2num(get(handles.fudu,'string'));% 获取信号的幅度
w=str2num(get(handles.pinlv,'string'));% 获取信号的频率
t=x1:0.01:x2; % 信号的横坐标范围
y=A*sin(w*t); % 生成正弦信号
plot(handles.axes1,t,y,'LineWidth',2);% 绘制正弦信号,线宽为2,蓝色
axis([x1 x2 y1 y2]); % 坐标轴范围设置
guidata(hObject,handles); % 刷新数据
20. 正弦波展示
21. 再拖动一个按钮
双击查看属性,更改字体大小和显示内容以及Tag
22. 右键锯齿波按钮
点击查看回调,选择Callback
xl=str2num(get(handles.x1,'string')); % 获取横坐标的起始值
x2=str2num(get(handles.x2,'string')); % 获取横坐标的终止值
y1=str2num(get(handles.y1,'string')); % 获取纵坐标的起始值
y2=str2num(get(handles.y2,'string')); % 获取纵坐标的终止值
A=str2num(get(handles.fudu,'string'));% 获取信号的幅度
w=str2num(get(handles.pinlv,'string'));% 获取信号的频率
t=xl:0.01:x2; % 信号的横轴范围
y=A*sawtooth(w*t); % 生成锯齿波信号
plot(handles.axes1,t,y,'LineWidth',2);% 绘制锯齿波,线宽为2,
axis([xl x2 y1 y2]); % 坐标轴范围设置
guidata(hObject,handles); % 刷新数据
23. 锯齿波展示
24. 清空按钮
拖动一个按钮,双击查看属性,更改字体大小和显示内容以及Tag
25. 右键清空按钮
查看回调,点击callback
文章来源:https://www.toymoban.com/news/detail-466167.html
try
delete(allchild(handles.axes1));% 清空坐标区
end
guidata(hObject,handles); % 刷新数据
26. 整体信号发生器展示
文章来源地址https://www.toymoban.com/news/detail-466167.html
到了这里,关于MATLAB GUI笔记(九):信号发生器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!