基于GUI的简易信号发生器.docx
- 文档编号:25641242
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:8
- 大小:127.22KB
基于GUI的简易信号发生器.docx
《基于GUI的简易信号发生器.docx》由会员分享,可在线阅读,更多相关《基于GUI的简易信号发生器.docx(8页珍藏版)》请在冰豆网上搜索。
基于GUI的简易信号发生器
基于GUI的简易信号发生器
基于GUI的建议信号发生器
许子晨指导老师:
孙福玉
(赤峰学院内蒙古赤峰024000)
摘要:
我们对简单信号进行分析时一般会遇到图像和数据的处理问题,而这些图像和数据的处理使得我们很是费心。
文章利用MATLAB的GUI功能设计了基于GUI的简单信号的处理方法。
通过对GUI开发环境中回调函数的设计,在GUI界面上实现了简单信号图像和数据的处理,展示了方便灵活的数据输入和结果图形输出效果。
对实现系统的最佳设计提供了一个实用、方便的仿真操作平台。
关键词:
GUI;信号发生器;回调函数
引言:
简易信号发生器是一种基于软硬件实现的波形发生器,可以实现各种基本波形的产生。
工程的各种复杂信号是由这些基本信号叠加产生,因此它在工程分析和实验教学中有着广泛的应用。
MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。
常用的数字信号发生器一般可产生正弦信号、方波信号、三角波信号、锯齿波信号、白噪声信号、脉冲信号、阶跃信号、斜坡信号等。
本文介绍正弦信号、方波信号、三角波信号的产生。
1、正弦波产生电路
1、正弦波振荡电路的振荡条件
正反馈放大电路如图1所示。
若环路增益
则
,去掉
,
仍有稳定的输出
又
所以振荡条件为
图2-1正弦波振荡电路的方框图
2、方波发生器
由集成运放构成的方波发生器和三角波发生器,一般均包括比较器和RC积分器两大部分。
图2所示为由迟滞比较器及简单RC积分电路组成的方波—三角波发生器。
它的特点是线路简单,但三角波的线性度较差。
主要用于产生方波,或对三角波要求不高的场合。
电路振荡频率
式中 R1=R1'+RW'R2=R2'+RW"
方波输出幅值
=±UZ
三角波输出幅值
调节电位器RW(即改变R2/R1),可以改变振荡频率,但三角波的幅值也随之变化。
如要互不影响,则可通过改变
(或Cf)来实现振荡频率的调节。
图2方波发生器
3、三角波和方波发生器
如把迟滞比较器和积分器首尾相接形成正反馈闭环系统,如图3-1所示,则比较器A1输出的方波经积分器A2积分可得到三角波,三角波又触发比较器自动翻转形成方波,这样即可构成三角波、方波发生器。
图3-2为方波、三角波发生器输出波形图。
由于采用运放组成的积分电路,因此可实现恒流充电,使三角波线性大大改善。
图3-1方波、三角波发生器
电路振荡频率
方波幅值 U′om=±UZ
三角波幅值
调节RW可以改变振荡频率,改变比值
可调节三角波的幅值。
图3-2方波、三角波发生器输出波形图
4、制作简易信号发生器GUI
(1)如图四简易信号发生器GUI界面所示,拖放所需要的控件,拖放一个坐标轴控件用来放置简易信号发生器实验中不同函数的曲线,拖放三个按钮控件,双击所选控件,编辑其属性,主要有fontname,fontsize,fontweight,string,tag等属性。
编辑三个静态文本的fontsize属性为‘12’,string属性分别为‘sin函数’、‘方波’和‘三角波’,其余的属性为默认值。
拖放两个RadinBtton控件,双击所选控件,编辑其属性,将fontsize属性为‘12’,string属性分别为‘不加噪声’、‘加噪声’其余属性为默认值。
(2)将以下源代码输入GUI的callback中
functionvarargout=Mytools(varargin)
gui_Singleton=1;
gui_State=struct('gui_Name', mfilename,...
'gui_Singleton', gui_Singleton,...
'gui_OpeningFcn',@Mytools_OpeningFcn,...
'gui_OutputFcn', @Mytools_OutputFcn,...
'gui_LayoutFcn', [],...
'gui_Callback', []);
ifnargin&isstr(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
functionMytools_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=Mytools_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
functionpushbutton1_Callback(hObject,eventdata,handles)
t=0:
0.001:
6;
y=sin(0.5*pi*t);
plot(t,y);
title('正弦信号');
gridon;
axis([-0.56.2-1.21.2]);
set(handles.text1,'String','说明:
周期为4,幅值为2的正弦波信号');
functionedit2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbutton8_Callback(hObject,eventdata,handles)
functionpushbutton10_Callback(hObject,eventdata,handles)
t=0:
0.001:
3;
y=square(2*pi*t,50);
plot(t,y);
gridon;
axis([0,3,-1.2,1.2]);
title('方波信号');
set(handles.text1,'String','说明:
周期为1,幅值为2的方波信号');
functionpushbutton9_Callback(hObject,eventdata,handles)
t=-6:
0.01:
6;
ft=sawtooth(pi*t,0.5);
plot(t,ft);
gridon;
title('三角波信号');
axsi([-66-1.21.2]);
set(handles.text1,'String','说明:
周期为2,幅值为2的三角波信号');
4结论
MATLAB不仅有强大的计算功能,还有很强的图形显示功能。
利用这些特性及GUI功能可以实现交互式实验数据处理。
图形用户界面的设计确定了应用程序的主要框架和基本功能,完成了窗口、图标、按钮等用户界面,软件开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成自己的设计。
本文利用MATLAB设计了基于GUI的实验处理方法,展示了方便灵活的数据输入和结果图形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 GUI 简易 信号发生器