虚拟信号发生器数字信号处理课设.doc_第1页
虚拟信号发生器数字信号处理课设.doc_第2页
虚拟信号发生器数字信号处理课设.doc_第3页
虚拟信号发生器数字信号处理课设.doc_第4页
虚拟信号发生器数字信号处理课设.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燕山大学课 程 设 计 说 明 书题目:虚拟信号发生器的设计学院(系): 电气工程学院 年级专业: 自动化仪表 学 号: 100103020002 学生姓名: 王思琪 指导教师: 谢平 杜义浩 教师职称: 教授 讲师 课程名称: “单片机原理及应用数字信号处理”课程设计 基层教学单位:自动化仪表系 指导教师:张淑清 谢平 学号100103020002学生姓名王思琪(专业)班级仪表一班设计题目虚拟信号发生器的设计设计技术参数1 利用Matlab设计任意波形虚拟信号发生器。2 在PC机显示不同信号波形的同时,利用串行口控制单片机系统的LED显示相应波形参数(如幅度、频率、相位和能量等)。3 扩展:也可产生其他信号,或驱动其他外设并显示及参数。设计要求要求至少输出五种以上参数可调的信号(如:方波,三角波,正弦波、高斯白噪声等),并实现相应信号的频谱分析,对比不同信号的时域波形和频谱特性。(其中可调参数包括幅值、相位、频率、采样频率等)。设计相应的软件分析界面。工作量软件编程与硬件调试相结合,绘制设计流程图,编制相应软件界面,实现单片机控制与信号处理任务的综合应用参考资料1)微型计算机控制系统 赖寿宏,机械工业出版社(教材)2)单片机及应用李大友,高等教育出版社(教材)3)信号处理原理及应用 谢平 等 机械工业出版社(教材)4)Matlab程序设计及其在信号处理中的应用聂祥飞等 西南交通大学出版社5)自选其他有关资料周次第一周第二周应完成内容熟悉伟福单片机编程环境,调试单片机各基本功能模块;熟悉matlab信号处理工具箱,信号处理系统基本功能模块学习和调试单片机系统与信号处理系统综合进行硬件调试,撰写课程设计报告指导教师签字基层教学单位主任签字说明:1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。 2、学生那份任务书要求装订到课程设计报告前面。 电气工程学院 教务科 目录(信号处理要求)第一章 摘要3第二章 总体设计方案4第三章 GUIDE预备理论5第四章 信号发生器基本原理64.1含变量的波形函数的生成64.2 时域向频域的转换7第5章 GUIDE源程序的设计 9第6章 程序显示结果与调试14第七章 心得及总结15参考文献16附 录1617第1章 摘要 信号发生器是指产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。 在有些实验测量中,我们需要用到信号发生器,传统的信号发生器其功能完全靠硬件实现,功能单一,而且费用较高,一个传统实验室很难拥有多类信号发生器,然而基于虚拟仪器技术的信号发生器则能够实现这一要求。此报告论述了一个基于虚拟仪器技术的任意波形发生器模块的实现。 第二章 总体设计方案 首先我们进行的是单片机部分的设计,课设的前两天,熟悉了单片机个模块的设计例程,而后我们挑选了合适的例程为我们的所需要的信号发生器模块所用。在这之中,我们用到了273输出模块,led显示模块,数码管显示模块,蜂鸣器模块,16*16点阵显示模块,串行通信模块。在精心的学习之后,我们成功地完成了单片机部分的初步制作。此后,我们开始了第三天的数字信号软件方面的制作,在guide设计教程及学长的指导下,我们设计了一个简洁方便的操作界面,并根据相应的按键功能编写程序,先收集了5种波形函数,而后编写了与之对应的变量函数。于是我们便能将可变参数加入到函数中去,进行调试了。其后,我们设计了傅里叶转换函数,将波形一一转换为频域波形,最后,我们在学长的指导下完成了串行发送的按钮设计。信号处理部分也制作完毕。最后是单片机部分与信号部分的连接调试,我们将matlab发送的波形参数与单片机的数码管,led,蜂鸣器的信号同步。成功的做出了两者相结合的虚拟信号发生器。 第三章 GUIDE预备理论 本实验内容主要是阐述虚拟信号发生器的前面板和程序框图的设计。设计完的信号发生器的功能包括能够产生正弦波、方波、三角波、锯齿波高斯白噪声信号波形;波形的频率、幅值、相位、及采样频率等参数由前面板控件实时可调。 虚拟信号发生器是基于MATLAB仿真软件进行编程的,它使用的是图形化编程语言。要完成一个虚拟信号发生器首先要进行GUI面板的设计,根据信号发生器所要实现的功能,在控件选板中选择相应的控件,放在前面板相应的位置上,摆放要使前面板看起来比较协调。图形用户界面概念:图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。GUIDE是Matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。 设计GUI程序时首先要分解任务,把待设计任务分割成几个大的模块,然后把大的模块再分解为一系列的功能,甚至可以分解到要用哪些函数的程度;然后是寻找例程,参考例程可以避免重复前人做过的工作。我们在学长的帮助下获得了部分波形及将波形从时域傅里叶转换为频域波形的函数,以及串行口发送数据的模板,得以顺利的将函数套用在GUI界面下,并顺利的与单片机相连。 第四章 信号发生器基本原理4.1含变量的波形函数的生成本次课设中我们设方波信号:y=a*square(2*pi*f*t+4*p/f,50)其中a为幅值,f为频率,t为时间,p为相位,生成类似如下波形其中a,f,p和采样频率e分别有4个滑块控制,如下其变换值显示在图中方框中。4.2时域向频域的转换若将该方波变换为频域波形,则使用如下傅里叶函数Nf=length(y);f=0:fs/(Nf-1):fs; x=abs(fft(y);波形变换如下:同理,本次课设的其他4中波形也可如此生成:正弦波:y=a*sin(2*pi*f*t+p*2*pi)锯齿波:y=a*sawtooth(pi*f*t+4*p/f,1)三角波:y=a*sawtooth(pi*f*t+4*p/f,0.5)白噪声:y=a*randn(size(t)他们的波形如下 第五章 GUIDE源程序的设计本次实验中,我们将界面程序的设计分为多块,并小组合作完成:1.按键初始化程序略;对滑块部分赋值的程序设计如下: j=get(handles.slider1,value); k=get(handles.slider2,value); l=get(handles.slider3,value);m=get(handles.slider4,value);再由滑块对文本框赋值: set(handles.edit1,string,num2str(j); set(handles.edit2,string,num2str(k); set(handles.edit3,string,num2str(l);set(handles.edit4,string,num2str(m);再将波形函数变量赋值并显示在波形框内a=str2num(get(handles.edit1,string); f=str2num(get(handles.edit2,string); p=str2num(get(handles.edit3,string); e=str2num(get(handles.edit4,string); fs=e; t=0:1/fs:30; t=0:1/fs:30; y=a*sin(2*pi*f*t+p*2*pi); set(gcf,CurrentAxes,handles.axes2); plot(t,y); axis(0,8*pi,-5.2,5.2); grid on;之后在进行傅里叶变换转化为频域图形:Nf=length(y);f=0:fs/(Nf-1):fs; %频谱横坐标x=abs(fft(y);set(gcf,CurrentAxes,handles.axes1);plot(f,x);title(Frequency content of y)xlabel(frequency (Hz);以上为正弦波形的设计同理可得其他波形波形选择函数:while 1 if p1=1 t=0:1/e:8*pi; y=a*sin(2*pi*f*t+p*2*pi); plot(t,y); grid on; axis(0,8*pi,-5.2,5.2); end; if p2=1 t=0:1/e:6; y=a*square(2*pi*f*t+4*p/f,50); plot(t,y); grid on; axis(0,6,-5.2,5.2); end; if p3=1 t=0:1/e:20; y=a*sawtooth(pi*f*t+4*p/f,1); plot(t,y); grid on; axis(0,20,-5.2,5.2); end; if p4=1 t=0:1/e:20; y=a*sawtooth(pi*f*t+4*p/f,0.5); plot(t,y); grid on; axis(0,20,-5.2,5.2); end; if p5=1 t=1:1/e:25; y=a*randn(size(t); plot(t,y); grid on; end;串行发送数据的函数设计function pushbutton10_Callback(hObject, eventdata, handles)ss=serial(COM1);ss.BaudRate=2400;ss.DataBits=8;ss.Parity=none;ss.StopBits=1;ss.TimeOut=60;ss.DataTerminalReady=off;ss.RequestToSend=off;ss.FlowControl=none;ss.InputBufferSize=1000;fopen(ss);清除数据按钮设计: set(handles.slider1,value,0); set(handles.slider2,value,0); set(handles.slider3,value,0); set(handles.slider4,value,0); set(handles.edit1,string,0); set(handles.edit2,string,0); set(handles.edit3,string,0); set(handles.edit4,string,0);关闭按钮:function pushbutton9_Callback(hObject, eventdata, handles)close;我们还添加了若干工具栏设计,但是个别按钮功能未添加完整,不具备实用性 第六章 程序显示结果与调试完成guide界面后,我们连接了串行口并发送了数据。但因为硬件限制,为发送数码管我们将发送的数据都做了取整处理,发送的均为个位整数,并成功与单片机协同合作完成了参数在单片机上的正确显示。至此信号处理部分完成。最终调试结果如下: 第七章 心得与总结经过长达一星期不间断的单片机及信号处理的课程设计,我再一次加强了对单片机硬件和信号处理Matlab的软件的认识,Matlab这样的软件强大的开发功能与灵活的编程手段勾起了我对信号处理浓厚的兴趣,并最终实现了虚拟信号发生器的设计,可以看出虚拟仪器给用户提供了一个充分发挥自己的才能和想象力的空间,可根据用户自己的设想及要求,通过编程来设计,组建自己的仪器系统,他的灵活、开放,技术更新周期短,可随着计算机技术的发展和用户的需求进行仪器与系统的升级,在性能维护和灵活组态等方面有着传统仪器无法比拟的优点。通过此次课程设计,我不仅把所学知识的融会贯通,而且丰富了我的阅历。同时,在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来数字图像处理的发展方向,使自己在专业方面和动手能力方面都得到了加强。在咨询学长的同时,我学会了虚心请教师长,来完善我的课题能力,如果没有学长每天的答疑解惑,我们不可能编出对于自己来说前所未有复杂的单片机及guide程序。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论