【matlab】GUI信号发生器软面板

设计GUI软件界面,能够实现信号发生器软面板功能,可以产生任意参数的方波、正弦波、三角波等

面板设计如下: 

关键代码如下:

这里给出关键部分:回调函数,其他部分均为系统初始化时的内容,就不再占篇幅赘述了。
%方波函数
function pushbutton1_Callback(hObject, eventdata, handles)
A=str2num(get(handles.edit1,'string'));
w=str2num(get(handles.edit2,'string'));
z=str2num(get(handles.edit5,'string'));
fanweil=str2num(get(handles.edit6,'string'));
fanweir=str2num(get(handles.edit7,'string'));
fanweiu=str2num(get(handles.edit8,'string'));
fanweid=str2num(get(handles.edit9,'string'));
t=fanweil:0.01:fanweir;
y=A*square(w*t,z);
plot(handles.axes1,t,y);
axis([fanweil fanweir fanweiu fanweid]);
%正弦波函数
function pushbutton2_Callback(hObject, eventdata, handles)
fanweil=str2num(get(handles.edit6,'string'));
fanweir=str2num(get(handles.edit7,'string'));
fanweiu=str2num(get(handles.edit8,'string'));
fanweid=str2num(get(handles.edit9,'string'));
A=str2num(get(handles.edit1,'string'));
w=str2num(get(handles.edit2,'string'));
t=fanweil:0.01:fanweir;
y=A*sin(w*t);
plot(handles.axes1,t,y);
axis([fanweil fanweir fanweiu fanweid]);
%三角波函数
function pushbutton3_Callback(hObject, eventdata, handles)
fanweil=str2num(get(handles.edit6,'string'));
fanweir=str2num(get(handles.edit7,'string'));
fanweiu=str2num(get(handles.edit8,'string'));
fanweid=str2num(get(handles.edit9,'string'));
kuan=str2num(get(handles.edit3,'string'));
xie=str2num(get(handles.edit4,'string'));
A=str2num(get(handles.edit1,'string'));
w=str2num(get(handles.edit2,'string'));
t=fanweil:0.01:fanweir;
y=A*tripuls(w*t,kuan,xie);
plot(handles.axes1,t,y);
axis([fanweil fanweir fanweiu fanweid]);
%清空函数
function pushbutton4_Callback(hObject, eventdata, handles)
try
    delete(allchild(handles.axes1));
end
%白噪声函数
function pushbutton5_Callback(hObject, eventdata, handles)
fanweil=str2num(get(handles.edit6,'string'));
fanweir=str2num(get(handles.edit7,'string'));
fanweiu=str2num(get(handles.edit8,'string'));
fanweid=str2num(get(handles.edit9,'string'));
t=fanweil:0.01:fanweir;
y=randn(1,length(t));
plot(handles.axes1,t,y);
axis([fanweil fanweir fanweiu fanweid]);
%锯齿波函数
function pushbutton6_Callback(hObject, eventdata, handles)
fanweil=str2num(get(handles.edit6,'string'));
fanweir=str2num(get(handles.edit7,'string'));
fanweiu=str2num(get(handles.edit8,'string'));
fanweid=str2num(get(handles.edit9,'string'));
A=str2num(get(handles.edit1,'string'));
w=str2num(get(handles.edit2,'string'));
t=fanweil:0.01:fanweir;
y=A*sawtooth(w*t);
plot(handles.axes1,t,y);
axis([fanweil fanweir fanweiu fanweid]);

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MATLAB中,可以使用GUI(图形用户界面)来创建信号发生器。下面是一个简单的示例,演示了如何使用MATLABGUI工具箱创建一个基本的信号发生器。 首先,需要创建一个新的GUI应用程序。可以通过在MATLAB命令窗口中输入`guide`来打开GUI编辑器。然后,按照以下步骤进行操作: 1. 在GUI编辑器中,选择“Blank GUI”模板,然后点击“OK”按钮。 2. 在左侧的“Component Browser”窗格中,选择“Standard”选项卡,并从中拖动一个“Slider”组件到GUI窗口中。 3. 在“Properties”窗格中,将“Slider”组件的“Min”属性设置为信号的最小值,将“Max”属性设置为信号的最大值。 4. 在左侧的“Component Browser”窗格中,选择“Standard”选项卡,并从中拖动一个“Axes”组件到GUI窗口中。 5. 在“Properties”窗格中,将“Axes”组件的“Tag”属性设置为“axes1”。 6. 在左侧的“Component Browser”窗格中,选择“Standard”选项卡,并从中拖动一个“Push Button”组件到GUI窗口中。 7. 在“Properties”窗格中,将“Push Button”组件的“String”属性设置为“Generate Signal”。 8. 在左侧的“Component Browser”窗格中,选择“Callbacks”选项卡,并双击“Push Button”组件的“Callback”属性。 9. 在弹出的编辑器中,输入以下代码来生成信号并在图形窗口中显示: ```matlab function pushbutton1_Callback(hObject, eventdata, handles) % 获取滑块的值 sliderValue = get(handles.slider1, 'Value'); % 生成信号 t = 0:0.1:10; signal = sin(sliderValue * t); % 在图形窗口中显示信号 axes(handles.axes1); plot(t, signal); xlabel('Time'); ylabel('Amplitude'); title('Generated Signal'); ``` 10. 点击“Save”按钮保存代码,并关闭编辑器。 现在,可以运行GUI应用程序。在MATLAB命令窗口中输入`mygui`(假设应用程序的文件名为`mygui.m`),然后按下回车键。GUI窗口将打开,并显示一个滑块和一个按钮。通过调整滑块的值,可以生成不同的信号,并在图形窗口中显示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

H_learn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值