已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称:计算机辅助分析大作业设计题目: 虚拟信号发生器 院 系: 专 业: 年 级: 姓 名: 指导教师: 西南交通大学峨眉校区2011 年 5 月 20 日1、 原理分析 该虚拟信号发生器的设计由gui界面及其对应的程序组成。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛地应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、方波、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。本文设计了一种可以产生正弦波、方波、三角波、锯齿波的虚拟信号发生器。1、 建立图形用户界面图形用户界面(graphical user interface,简称gui,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。具体步骤如下:1) 在command 里面输入 guide 或者从菜单里面,或者从快捷按钮均可进入guide,然后新建一个gui,进入布局编辑器。2) 为gui添加控件:编辑框(edit text)控件、静态文本(static text)、 滚动条(slider)控件、按钮(push button)控件、坐标轴(axes)控件、面板(panel)控件,并按照自己的想象摆放ghi控件,即做布局设计。3) 设置控件的属性 图1 对象浏览器控件主要属性列表:控件名称stringtag按钮(push button)控件正弦波pushbuttonzhengxian方波pushbutton2fangbo三角波pushbutton4sanjiao锯齿波pushbutton3juchibo清除pushbutton5滚动条(slider)控件slidersliderxiangweislidersliderpinlvslidersliderfuzhi编辑框(edit text)控件默认editpinlv默认editfuzhi默认editxiangwei静态文本(static text)频率text1幅值text2相位text3注:其余属性中,大小位置就不叙述了,其他默认,或者在m文件中有设置4) 为各个控件添加回调函数,然后保存或者运行它,自动生成fig文件和m文件5) 在m文件对应回调函数中编程界面外观:图2 gui界面2、 gui程序设计1)正弦按钮的callback函数:global p1;%global define global variable.global p2;global p3;global p4;p2=0;p3=0;p4=0;p1=get(handles.pushbuttonzhengxian,value);%获取正弦按钮的当前值并赋给p1while p1=1j=get(handles.sliderfuzhi,value);%获取幅值滚动条的值,并且赋给jk=get(handles.sliderpinlv,value);l=get(handles.sliderxiangwei,value);set(handles.editfuzhi,string,num2str(j);%修改editfuzhi 的值为滚动条当前的值set(handles.editpinlv,string,num2str(k);set(handles.editxiangwei,string,num2str(l);a=str2num(get(handles.editfuzhi,string);%获取幅值选择框的值,并且赋给af=str2num(get(handles.editpinlv,string);p=str2num(get(handles.editxiangwei,string);t=0:0.001:8*pi;y=a*sin(2*pi*f*t+p*2*pi);plot(t,y);axis(0,8*pi,-1.2,1.2); grid on;break;end2) 方波按钮的callback函数:global p1;global p2;global p3;global p4;p1=0;p3=0;p4=0;p2=get(handles.pushbutton2fangbo,value);j=get(handles.sliderfuzhi,value);k=get(handles.sliderpinlv,value);l=get(handles.sliderxiangwei,value);set(handles.editfuzhi,string,num2str(j);set(handles.editpinlv,string,num2str(k);set(handles.editxiangwei,string,num2str(l);a=str2num(get(handles.editfuzhi,string);f=str2num(get(handles.editpinlv,string);p=str2num(get(handles.editxiangwei,string);t=0:0.001:6; y=a*square(2*pi*f*t+4*p/f,50);plot(t,y);grid on;axis(0,6,-1.2,1.2);3) 锯齿波按钮的callback函数:global p1;global p2;global p3;global p4;p1=0;p2=0;p4=0;p3=get(handles.pushbutton3juchibo,value);% - executes on slider movement.j=get(handles.sliderfuzhi,value);k=get(handles.sliderpinlv,value);l=get(handles.sliderxiangwei,value);set(handles.editfuzhi,string,num2str(j);set(handles.editpinlv,string,num2str(k);set(handles.editxiangwei,string,num2str(l);a=str2num(get(handles.editfuzhi,string);f=str2num(get(handles.editpinlv,string);p=str2num(get(handles.editxiangwei,string);t=0:0.001:20; y=a*sawtooth(pi*f*t+4*p/f,1);plot(t,y);grid on;axis(0,20,-1.2,1.2);4) 三角波按钮的callback函数:global p1;global p2;global p3;global p4;p2=0;p3=0;p1=0;p4=get(handles.pushbutton4sanjiao,value);j=get(handles.sliderfuzhi,value);k=get(handles.sliderpinlv,value);l=get(handles.sliderxiangwei,value);set(handles.editfuzhi,string,num2str(j);set(handles.editpinlv,string,num2str(k);set(handles.editxiangwei,string,num2str(l);a=str2num(get(handles.editfuzhi,string);f=str2num(get(handles.editpinlv,string);p=str2num(get(handles.editxiangwei,string);t=0:0.001:20; y=a*sawtooth(pi*f*t+4*p/f,0.5);plot(t,y);grid on;axis(0,20,-1.2,1.2);5) 滚动条的callback函数(各个滚动条都一样)global p1;global p2;global p3;global p4;j=get(handles.sliderfuzhi,value);%获取幅值滚动条的值,并且赋给jk=get(handles.sliderpinlv,value);%获取频率滚动条的值,并且赋给kl=get(handles.sliderxiangwei,value);%获取相位滚动条的值,并且赋给lset(handles.editfuzhi,string,num2str(j);%修改editfuzhi 的值为滚动条当前的值set(handles.editpinlv,string,num2str(k);set(handles.editxiangwei,string,num2str(l);a=str2num(get(handles.editfuzhi,string);%获取幅值选择框的值,并且赋给af=str2num(get(handles.editpinlv,string);p=str2num(get(handles.editxiangwei,string);while 1 %一直判断,遇到有按键就执行,然后退出。if p1=1 %如果选择了正弦波t=0:0.001:8*pi;y=a*sin(2*pi*f*t+p*2*pi);plot(t,y);grid on;axis(0,8*pi,-1.2,1.2); endif p2=1 %如果选择了方波t=0:0.001:6; y=a*square(2*pi*f*t+4*p/f,50);plot(t,y);grid on;axis(0,6,-1.2,1.2);endif p3=1 %如果选择了锯齿波t=0:0.001:20; y=a*sawtooth(pi*f*t+4*p/f,1);plot(t,y);grid on;axis(0,20,-1.2,1.2);endif p4=1 %如果选择了三角波 t=0:0.001:20; y=a*sawtooth(pi*f*t+4*p/f,0.5);plot(t,y);grid on;axis(0,20,-1.2,1.2);endbreak;end6) 清除按钮的callback函数t=0:pi/360:8*pi;y=0;global p1;global p2;global p3;global p4;p1=0;p2=0;p3=0;p4=0;set(handles.sliderfuzhi,value,0);set(handles.sliderpinlv,value,0);set(handles.sliderxiangwei,value,0);set(handles.editfuzhi,string,num2str(0);set(handles.editpinlv,string,num2str(0);set(handles.editxiangwei,string,num2str(0);plot(t,y);grid on;axis(0,8*pi,-1.2,1.2); 2、 仿真结果 图3 正弦波(对应参数见图)图4 方波(对应参数见图)图5 锯齿波(对应参数见图)图6 三角波(对应参数见图)图6 清除3、 结果分析 通过建立gui界面,编辑控件对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GA 874-2010警用越野突击车》专题研究报告
- 2026年及未来5年市场数据中国烧烤料行业市场调查研究及发展趋势预测报告
- 2026年及未来5年市场数据中国户外广告机行业发展监测及投资策略研究报告
- 养老院医疗保健服务制度
- 2026年及未来5年市场数据中国有机面粉行业发展前景预测及投资方向研究报告
- 交通信号优先通行制度
- 2026浦发银行派遣员工招聘参考题库附答案
- 2026湖北省定向武汉大学选调生招录备考题库附答案
- 2026湖南益阳市桃江县中医医院公开招聘编外劳务派遣人员5人备考题库附答案
- 2026甘肃银行股份有限公司招聘校园备考题库附答案
- 快递配送外包合同范本
- 火龙罐的市场前景分析
- 设备技术员转正述职报告
- 2026年数据管理局考试题库及实战解答
- 2025年上海师范大学马克思主义基本原理概论期末考试笔试真题汇编
- 智启万物:全球AI应用平台市场全景图与趋势洞察报告
- 2025年高职植物保护(植物检疫技术)试题及答案
- 验货执行合同书
- 2026年张家界航空工业职业技术学院单招职业技能笔试备考试题及答案详解
- 2026年中国科学院心理研究所国民心理健康评估发展中心招聘备考题库及答案详解(新)
- 药物相互作用与不良反应预防解析讲座
评论
0/150
提交评论