基于MATLAB的数字信号发生器报告.docx_第1页
基于MATLAB的数字信号发生器报告.docx_第2页
基于MATLAB的数字信号发生器报告.docx_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

基于MATLAB的数字信号发生器设计报告摘 要:数字信号发生器是基于软硬件实现的一种波形发生仪器。在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号皆可由数字信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。MATLAB是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。本文介绍了使用MATLAB建立一个简单数字信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声)信号的具体实现方法。关键字:MATLAB ,数字信号发生器1 前言随着计算机软硬件技术的发展,越来越多现实物品的功能能够由计算机实现。信号发生器原本是模拟电子技术发展的产物,到后来的数字信号发生器也是通过硬件实现的,本文将给出通过计算机软件实现的数字信号发生器。信号发生器是一种常用的信号源,广泛应用于电子技术实验、自控系统和科学研究等领域。传统的台式仪器如任意函数发生器等加工工艺复杂、价格高、仪器面板单调、数据存储、处理不方便。以Matlab和LabVlEW为代表的软件的出现,轻松地用虚拟仪器技术解决了这些问题。Matlab是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱(data acquisition toolbox)为实现数据的输入和输出提供了十分方便的函数和命令,利用这些函数和命令可以很容易地实现对外部物理世界的信号输出和输入。根据声卡输出信号的原理,采用Matlab软件编程,可以方便地输出所需要的正弦波、三角波、方波等多种信号,有效地实现信号发生器的基本功能。2 方案设计要设计的数字信号有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。其中,前五种波形都可以利用MATLAB提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。脉冲信号由自己编写程序实现,并以定义的时间节点控制脉冲出现的时刻。2.1 正弦信号的实现正弦波信号的数学表达式如2.1, 2.1其中:为幅值; 为频率; 为相位。在MATLAB中,相应的数字信号可以由下式2.2计算, 2.2式中时间变量t可构造为一个一维数组,并由式2.3进行付值, 2.3其中:采样频率。幅值、频率、相位、采样频率等在用户界面输入。在t与y的表达式都得到以后,用plot二维作图函数获得波形显示。2.2 方波信号实现像正弦波一样,从用户界面获得幅值、频率、相位、采样频率等信息,用square函数获得对应y坐标值,用plot绘图,格式如式2.4 2.4其中,占空比。2.3 三角波和锯齿波的实现这两种波形的y坐标表达式皆要借助于sawtooth命令。Sawtooth(t)用于产生周期为,幅值从-1 +1的锯齿波,波形的斜率为。Sawtooth(t,width)用于产生三角波,其中width是取值介于0和1之间的一个参数,它决定了在一个周期中峰值的发生点。本设计中取width=0.5,可以获得标准形状的三角波。完整y坐标表达式如式2.5, 2.5 3 硬件电路的工作原理(1)图形界面设计打开MATLAB,新建一个空白的图形界面文件,计算需要添加的控件种类及个数并设计它们的布局。(a) 添加1个axes控件,用于显示波形;(b) 添加5个static text 控件作为窗口说明使用;(c) 添加4个Slider 控件用于输入幅值、频率等信号信息;(d) 添加4个edit text 控件用于显示幅值、频率等信号信息;(e) 添加7个push button 空间用于各种操作的开始控制;双击各个控件并修改其颜色、大小及string属性。得到界面如下:4软件编程界面控件及布局创建完成以后,自动生成包含各控件回调函数在内的m文件。点击保存时可以修改fig及m文件名。系统自动生成的m文件包括:function varargout = signalgenerator(varargin)function signalgenerator_OpeningFcn(hObject, eventdata, handles, varargin)function varargout = signalgenerator_OutputFcn(hObject, eventdata, handles以及各个控件对应的回调函数的框架,如:function a_Callback(hObject, eventdata, handles)等等。在前面已经介绍了各个波形的实现原理及方法,现仅以正弦函数的实现为例介绍回调函数的使用及编辑。回调函数即在一定的操作下自动执行的指令代码。注意回调函数中定义的变量只在其内部有效。正弦波按钮的回调函数如下:% - Executes on button press in pushbuttonzhengxian.function pushbuttonzhengxian_Callback(hObject, eventdata, handles)% hObject handle to pushbuttonzhengxian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)a=str2double(get(handles.editFUZHI,String);f=str2double(get(handles.editPINLU,String);x=str2double(get(handles.editXIANGWEI,String);cf=str2double(get(handles.editk,String);t=0:1/cf:0.5 ;%按设定的采样频率将时间均匀分割y=a*sin(2*pi*(f*t+x/360);plot(t,y);wavplay(y);%播放生成的信号grid on;i=10;if aI %定义了不同情况下x轴及y轴上的坐标显示范围 axis(0,0.5,-i,i); else axis(0,0.5,-(a+1),(a+1);%超出预定值则重设坐标范围end5系统调试和结果分析正弦波(2)三角波以下分别是:(3)锯齿波(4)方波4 6.结论及进一步设想由于是初次使用MATLAB的GUIDE模块,在设计时暴露出了许多问题:(1) 对其界面和一些操作还不熟悉,直接导致编程中效率很低;(2) 对于基本的MATLAB语句和常用的函数的学习不系统,有时好的思路无法用MATLAB语言干净利落的表达;(3) 在初期对句柄的理解不够深刻,思路不够清晰。5 7.参考文献1 刘复华. 单片机及其应用系统. 北京:清华大学出版社,19922 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,课设体会在后面的学习中,我将更系统的学习MATLAB这一强大的工程软件,争取对他有一个宏观的认识,在此基础上多进行编程练习,加强对常用函数和概念的记忆,最后,联系实际,尝试解决一些常见的工程问题。工程数字信号处理算法与实践是一门理论与实践相结合但更偏重于实践的课程,对于提高我们学生自己的动手能力有很大的帮助。在课程的学习过程中,何岭松老师一直强调学以致用,在每一阶段给我们设置了一个任务,让我们带着问题去学习,从查找文献到提取有用信息,从软件安装到实际操作,从编程到最后的调试,在这一过程中我自主能动性被激发出来,迫使我克服一个有一个难题。老师提倡的这种“无形”的自主学习方式,正是我接下来的研究生阶段发现问题解决问题模式。通过这样的一次训练,我对今如何进行学习研究有了清晰的理解,在这里向他表示感谢。同时,在设计的完成过程中,我从实验室师兄那里得到了宝贵的建议和帮助,有时他们的一个字,一句话就让我有醍醐灌顶,茅塞顿开之感。同时,寝室室友之间

温馨提示

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

评论

0/150

提交评论