MATLAB GUI笔记(九):信号发生器

10 篇文章 9 订阅

笔记九简单设计一个信号发生器的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
在这里插入图片描述

try
    delete(allchild(handles.axes1));% 清空坐标区
end
guidata(hObject,handles);           % 刷新数据

26. 整体信号发生器展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜yuan~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值