虚拟信号发生器的研究与设计(毕业论文)_第1页
虚拟信号发生器的研究与设计(毕业论文)_第2页
虚拟信号发生器的研究与设计(毕业论文)_第3页
虚拟信号发生器的研究与设计(毕业论文)_第4页
虚拟信号发生器的研究与设计(毕业论文)_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、 毕业设计(论文) 课 题: 虚拟信号发生器的研究与设计 专 业: 自动化 班 级: 学生姓名: 学 号: 指导教师: 摘摘 要要 本文仅就基于 labwindows/cvi 虚拟信号发生器进行设计,虚拟信号发生器 利用 labwindows/cvi 提供的软件平台以及强大的函数库,通过简单的单片机 mcu+dds 就可以产生频带宽,精度高,幅值、相位和频率连续可调的波形,借 助 pc 机的网络传输功能可实现网络控制和信号处理。基于 labwindows/cvi 的 虚拟信号采集卡利用 c8051f020 微处理器内的 a/d 通道及 i/o 端口完成虚拟信 号采集,放大处理和数据传输任务,对

2、信号的处理和显示可由 pc 机来完成或由 网络控制,减少硬件的开支,易于实现自动测控。最后,在对本文系统进行全 面测试,结果表明本方案可行,具有较大的通用性。 通过虚拟信号发生器的设计,阐述利用 labwindows/cvi 进行虚拟仪器设计 的方法、步骤和实现技术,并展望虚拟仪器的广阔应用前景。利用其软件开发 平台,按步骤阐述了虚拟信号发生器的设计和实现过程,最终实现了信号发生 器的设计,该信号发生器可以选择波形以及幅值和频率。更能可以由用户根据 需要自行设计和扩展,人及界面友好。 关键词:信号发生器;虚拟仪器;labwindows/cvi abstractabstract the cont

3、ent of this paper is about virtual function signal generator which is based on labwindows/cvi and digital signal processor. it includes designing the structure of virtual signal generator which is based on labwindows/cvi and digital signal processor, which includes hardware and software structure, d

4、esigning digital signal capture board which is based on c8051f020 and giving network measure and controlling based on tcp/ip and signal processor. use labwindows/cvi software platform and powerful function library, simple mcu+dds while can generate signal wave with wide channel, high precision and c

5、ontinuous adjustive swing, phase and frequence, the transmission function of network, virtual signal generator can achieve network control and signal process. used a/d channel and i/o ports which insides c8051f020 microprocessor, visual capture signal board based on labwindows/cvi finishes analog si

6、gnal capture, ampliation and data transmission . signal process and display can be finished by personal computer or mcu. and by network control we can reduce hardware expenditure and simply achieve autocontrol. finally, through all-sided test, the result showing the project is feasible and has been

7、universal used. by the designing of the virtual signal generator,the designing methods,steps and technology of virtual instruments which is based on the labwindows/cvi are acquired,and prospect its wide application,after introduce the concept of the virtual signal generator,which makes the best use

8、of the soft development platform,giving out the design and the implement steps of the virtual signal generator,and the virtual signal generator is carried out finally which can be used to select the waveform 、amplitude and frequency ,and the virtual instrument can be defined or develeped and accordi

9、ng to the requirements and its man machine interface is friendly. keywordskeywords: signal generator ;virtual instrument ;labwindows/cvi 目录目录 第一章第一章绪论绪论.- - 5 5 - - 第二章第二章 labwindows/cvilabwindows/cvi 简介简介 .- - 7 7 - - 2.1 labwindows/cvi 概述.- 7 - 2.2 labwindows /cvi 的特点 .- 7 - 2.3 基于 labwindows /cvi

10、 的虚拟仪器构成.- 9 - 2.3.1 仪器硬件平台.- 9 - 2.3.2 虚拟仪器应用软件.- 10 - 2.4 虚拟仪器的内部功能 .- 10 - 2.5 labwindows /cvi 的运行环境 .- 10 - 2.6 虚拟仪器技术及发展 .- 11 - 2.6.1 虚拟仪器特点.- 11 - 2.6.2 虚拟仪器技术应用.- 12 - 2.6.3 虚拟仪器的发展.- 12 - 第三章第三章 虚拟信号发生器的理论研究虚拟信号发生器的理论研究.- - 1313 - - 3.1 虚拟信号发生器的基本原理.- 13 - 3.2.信号发生器现状及发展 .- 16 - 第四章第四章 虚拟信号

11、发生器的设计虚拟信号发生器的设计.- - 1818 - - 4.1 虚拟信号发生器设计 .- 18 - 4.1.1 虚拟信号发生器的工作原理.- 18 - 4.1.2 信号的频谱分析 .- 19 - 4.1.3 仪器硬件面板设计 .- 20 - 4.1.4 软件设计(程序设计) .- 24 - 4.1.5 运行程序完成项目文件 .- 36 - 总结总结.- - 4141 - - 致致 谢谢.- - 4343 - - 参考文献参考文献.- - 4444 - - 附录一附录一 英文翻译资料英文翻译资料.- - 4545 - - 附录二附录二 程序程序.- - 5353 - - (一)在虚拟信号发生

12、器面板 all code 产生*.c 文件中程序清单:- 53 - (二)信号发生器完整程序清单:.- 55 - 附录三附录三 各函数的功能和插入方法各函数的功能和插入方法.- - 6060 - - 第一章第一章 绪论绪论 随着计算机技术的高速发展和普及带动了各个行业的进步,有力地促进了 多年来发展相对缓慢的仪器技术的飞跃,给仪器仪表领域带来了深刻的变化; 新的测试理论、测试方法、测试领域以及仪器结构不断出现,而电子测量技术 的功能和作用也发生了质的变化。 20 世纪 80 年代中后期,国外提出了“虚 拟仪器”,“虚拟系统”的概念,随着微电子技术、计算机技术的飞速发展及 其在测量与仪器上的应用

13、,测试领域的新理论、新方法以及仪器结构不断出现 突破了传统仪器的概念,继而开创了仪器仪表的新时代-虚拟仪器。 所谓虚拟仪器(virtual instrument,简称 vi),就是用户在计算机平台 上,根据要求定义和设计仪器的测试功能,使得使用者在操作这台计算机时, 就像是在操作一台自己设计的测试仪器。需要指出的是,虚拟仪器实质是是一 种创新的仪器设计思想,但虚拟仪器离不开计算机控制,软件是虚拟仪器设计 的核心。 虚拟仪器的组成包括硬件和软件两个基本要素。虚拟仪器中硬件的主要功 能是获取真实世界中的被测信号,而软件的作用是控制现实数据采集、分析、 处理、显示等功能,并将其集成为仪器操作与运行的

14、命令环境。虚拟仪器的分 类可以按照多种分类方法,即可按照应用领域,也可按照测量功能分类,但常 按照虚拟仪器的接口总线方式分类。按照总线的接口方式分为:数据采集插卡 式(daq)虚拟仪器、rs232/rs422 虚拟仪器、并行接口虚拟仪器、usb 虚拟仪 器、gpib 虚拟仪器、vxi 虚拟仪器、pxi 虚拟仪器和最新的 ieee1394 接口虚拟 仪器。 基于 labwindows/cvi 的虚拟函数信号发生器、数据采集和信号处理的研究 还处于发展阶段,也是国内外研究的重要课题,国内外都正在展开积极的研究。 把信号发生、数据采集和信号处理集成在一起,利用网络对其进行控制和处理, 并且在软硬件的

15、升级方面有很大的改善空间和灵活性,改变了人们对仪器的传 统观念,适应了现代测试系统的网络化、智能化发展趋势。就像我们所说的 “软件就是仪器”,他将成为一个具有广泛应用前景的新兴产业。 随着计算机技术和个人电脑技术的出现和发展,传统仪器开始向计算机化 的方向发展,人们开始考虑使用电脑来处理传统仪器所测数据。20 世纪 80 年 代,随着计算机技术的进一步发展,个人电脑可以带有多个扩展槽,就出现了 插在计算机里的数据采集卡。它可以金星一些简单的数据采集,数据的后处理 由计算机软件完成,这就是虚拟仪器技术的雏形。1986 年,美国 national instrument 公司(以下简称 ni 公司)

16、提出了“软件即仪器的口号”,推出了 ni-labview 直观的流程图编程风格的开发和运行程序平台,同时提出了 labwindows/cvi 基于 c 语言的程序化编程风格的开发和运行程序平台,开启了 虚拟仪器的先河。虚拟仪器技术的提出与发展,标志着二十一世纪自动测试与 电子测量仪器领域技术发展的一个重要方向。 虚拟仪器技术目前在国内外发展很快,以美国国家仪器公司(ni 公司)为 代表的一批厂商已经在市场上推出了基于虚拟仪器技术而设计的商品化仪器产 品。 本文围绕基于 labwindows/cvi 的虚拟信号发生器的研究与设计,主要完成 以下工作: 1. 基于 labwindows/cvi 的

17、信号发生器的硬件平面设计。 2. 基于 labwindows/cvi 的信号发生器的软件程序设计。 3. 虚拟信号发生器的仿真调试运行结果。 第二章第二章 labwindows/cvilabwindows/cvi 简介简介 1986 年,美国 national instrument 公司(以下简称 ni 公司)提出了 “软件即仪器的口号”,推出了 ni-labview 直观的流程图编程风格的开发和运 行程序平台,同时提出了 labwindows/cvi 基于 c 语言的程序化编程风格的开发 和运行程序平台,开启了虚拟仪器的先河。labwindows/cvi 软件,它以 ansi c 为核心,功

18、能强大,使用灵活的 c 语言平台与数据采集,分析和表达的测控 专业的工具有机的结合起来。他的集成化开发平台,交互式编程方法,丰富的 控件和库函数大大增强了 c 语言的功能,为熟悉 c 语言的开发人员建立检测系 统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开 发环境。 2.12.1 labwindows/cvilabwindows/cvi 概述概述 labwindows/cvi 是面向仪器与测控过程的交互式 c/c+开发平台,它是一 个用 c 语言构建仪器系统的交互式软件开发环境,可以模块化方式对 c 语言进 行编辑、编译、连接和调试。其有以下特点: 1.交互式程序开发。

19、2.集成开发平台。 3.功能强大的函数库。 4.简单直观的图形用户界面设计。 5.完善的兼容性。 6. 多种灵活的程序调试手段。 7.网络功能。 2.22.2 labwindows/cvilabwindows/cvi 的特点的特点 labwindows/cvi 作为一个优秀的软件开发平台,和其他虚拟仪器开发工具 相比,具有如下特点: (1)交互式的程序开发 labwindows/cvi 将源代码编程、32 位 ansic 编译、连接、调试及标准 ansic 库等集成在一个交互式开发平台中,采用简单直观图形用户界面设计, 利用函数面板输入函数参数的参数,采用事件驱动方式和回调函数方式的编程 技术

20、,有效的提高了工程设计的效率和可靠性。 (2)功能强大的函数库 如接口函数、信号处理函数库、windows sdk(software development kit)、 仪器驱动函数库等,利用这些函数库可以轻松实现复杂的数据采集和仪器控制 系统的开发。同时,labwindows/cvi 附加了各种软件开发包,如数据库软件包、 internet 软件包、小波分析软件包等,大大增强了 labwindows/cvi 的性能。 灵活的程序调试手段 labwindows/cvi 提供了单步执行、断点执行、过程跟踪、参数检查、运行 时内存检查等多种调试手段。 labwindows/cvi 以面向虚拟仪器的

21、交互式开发环境,满足看用户对软件 不断变化的要求,在产品的设计中,可以快速的创建、配置并显示测量。 labwindows/cvi 可以自动生成代码、编译和连接,省去了手工编写,更有利于 系统的开发。 1. 开放式的框架结构 在 labwindows/cvi 环境中,可以结合使用标准的 ansic 源文件、obj 文件 和动态链接库(dll)。还可以将软件中的仪器驱动程序库与其他标准的 c 编译 器结合使用,无需更改开发工具。同时,可以在不同的工作小组之间共享函数 模块和虚拟仪器程序。 2. 集成式的开发环境 labwindows/cvi 是集成式的开发环境,可用于创建基于 daq、gpib、p

22、xi、vxi、串口和以太网的虚拟仪器系统。这一开发方式结合了交 互式、简单易用的开发方式与 ansic 代码的强大编写功能和灵活性。 labwindows/cvi 中的交互式开发工具和函数库可以轻松实现自动化测试系统、 实验室研发、数据采集监视项目、验证测试和控制系统的设计。 2.32.3 基于基于 labwindows/cvilabwindows/cvi 的虚拟仪器构成的虚拟仪器构成 基于 labwindows/cvi 虚拟仪器通常由通用仪器硬件平台和应用软件两大部 分构成。 2.3.12.3.1 仪器硬件平台仪器硬件平台 虚拟仪器的硬件平台主要是解决信号的输入输出,由计算机和 i/o 接口

23、设 备两部分完成。计算机一般为一台 pc 或工作站,它是硬件平台的核心。i/o 接 口设备主要负责被测输入信号的采集、放大和 a/d 转换。根据采用不同的总线 及其相应的 i/o 接口硬件设备,如 pc 总线的数据采集卡/板(daq)、gpib 总线 仪器模块、vxi 总线仪器模块和串口总线仪器等,虚拟仪器的构成只要分为 5 中类型,如图 1-1 所示 图 2-1 虚拟仪器结构框图 上述各种虚拟仪器系统都是通过应用软件将仪器硬件与计算机相结合构成 的,其中,串口测试系统是构成虚拟仪器的最简单、最基本的方式。 本文中的硬件由工控机及其接口,数据采集卡和放大及滤波电路构成,其 原理框图如图 2-2

24、 所示: 图 2-2 原理框图 计算机数据采集卡滤波及放大电路信号输出 2.3.22.3.2 虚拟仪器应用软件虚拟仪器应用软件 虚拟仪器软件由应用程序和 i/o 接口仪器驱动程序两大部分构成。 应用程序包含两个方面: 1. 实现虚拟仪器面板的流程图软件程序。 2. 定义测试功能的流程图软件程序。 i/o 接口仪器驱动程序完成特定的外部硬件设备的扩展、驱动和通信。 2.42.4 虚拟仪器的内部功能虚拟仪器的内部功能 虚拟仪器的内被功能可以化分为:输入信号的测量、数据分析处理和结果 显示三大部分。 输入信号的测量将模拟信号转变为数字信号并输入到计算机中。 数据分析处理充分利用了计算机的存储和运算功

25、能,并通过软件实现对输 入信号数据的分析处理。处理内容包括数字信号处理、数字滤波、统计处理、 数值计算与分析等。 结果显示充分利用了计算机资源,其测量结果数据的表达与输出方式有多 种方式。例如,虚拟仪器可以通过总线网络进行数据传输、通过文件将测试数 据存于硬盘内存中、计算机屏幕显示或图形用户接口。 2.52.5 labwindows/cvilabwindows/cvi 的运行环境的运行环境 在 labwindows/cvi 软件平台设计完成的虚拟仪器软件由四个文件组成,如 图 1-2 所示。 图 2-3 用 labwindows/cvi 设计的虚拟仪器软件组成 1*.prj 文件:工程文件,由

26、*.uir 文件、*.c 文件和*.h 文件组成。 2*.c 文件:源程序文件,此文件为标准的 c 语言程序文件。文件由上部 分组成,即头文件(*.h)、主程序文件(main)和回调函数(callback),其 结构和 c 语言的结构一致。 3*.uir 文件:用户界面文件,该文件为虚拟仪器的面板文件,类似 vb 或 vc 中的窗体文件。该文件中包含仪器面板中的各类控件,如按钮、开关等, 每个控件都有自己的属性,如按钮的名称,面板的标题、长度、位置等。同时 控件还有事件,当有鼠标单击控件或用键盘改变控件时,将调用相应的回调函 数,完成相应的功能,如完成数据处理、存盘、显示、打印等功能。 4*.

27、h 文件:头文件,与 c 中的*.h 文件结构完全一致在 labwindows/cv 中,*.h 文件是自动生成的,当设计完*.uir 文件后,会自动生成*.h 文件。 为设计完成上述 4 个文件,labwindows/cvi 开发环境提供了 4 个主要的界 面窗口:工程文件编辑窗口(project window)、用户界面编辑窗口(user interface editor window)、源代码文件编辑窗口(source window)和函数 面板编辑窗口(function panel window)。 2.62.6 虚拟仪器技术虚拟仪器技术及发展及发展 2.6.12.6.1 虚拟仪器特点

28、虚拟仪器特点 虚拟仪器是计算机技术介入仪器领域所形成的一个新型的富有生命力的仪 器种类。其和传统仪器相比,有以下几个特点: (1)性价比高 规模经济效益使通用个人计算机具有很高的性价比,而且基于个人计算机 的虚拟仪器和仪器系统可共享计算机硬件资源,从而大大增加了仪器的功能, 降低了仪器的成本。 (2)开放性好 具有开放性的规模化设计,便于用户根据测试任务随心所欲的组建仪器或 系统,仪器扩充、联网和升级十分方便。 (3)智能化程度高 虚拟仪器是基于计算机的仪器,其软件具有强大的分析、计算、逻辑判断 等功能,可以在计算机上建立一个普通的智能仪器到智能专家系统。 (4)界面友好,使用方便。 2.6.

29、22.6.2 虚拟仪器技术应用虚拟仪器技术应用 虚拟仪器技术作为计算机与仪器结合的产物,应用前景十分广泛。总体而 言,虚拟仪器是测量/测试领域的一个创新概念,改变了人们对仪器的传统观念, 适应了现代测试系统的网络化、智能化发展趋势。虚拟仪器技术应用方式多种 多样,主要有如下几个方面: 1. 工业自动化 虚拟仪器设计所采用的图形化编程语言,十分适合工程师应用,有利于提 高企业自主开发和管理项目的能力,降低工业自动化技术改造成本。另一方面, 采用虚拟仪器技术,根据实际工艺和控制要求,将分布在企业不同位置的各个 测量仪器和控制装置连接为一个网络系统,通过计算机实施控制和管理,可降 低成本,提高工业自

30、动化改造的经济效益。 2. 仪器产业的改造 仪器制造业代表着一个国家科技和工业发展的水平。目前,像数字示波器、 频谱分析仪和逻辑分析仪等要主要依赖进口。而采用虚拟仪器技术,将过去仪 器中许多靠硬件实现的功能用软件实现,利用商品化的数据采集和 pc 技术,完 全可以开发出各行各业急需的各种测量仪器。这是采用高新技术改造传统产业 的一个大有作为的领域。 3. 实验室应用 虚拟仪器是用户自定义仪器,供应商提供软件平台。这种变化给实验教学 带 来了新的教学理念。实验室平台将由硬件、界面友好的应用软件、虚拟原型 模型一起组成的试验系统,这种思想对从根本上改变传统实验教学方法,降低 实验室建设与管理成本,

31、实现远程教学具有重要的参考价值。 2.6.32.6.3 虚拟仪器的发展虚拟仪器的发展 电子测量仪器发展至今,答题可以分成四代:模拟仪器、数字化仪器、智 能化仪器和虚拟仪器。 第一代:模拟仪器。如指针式万用表、指针式电压表、指针式电流表等, 他们的基本结构是电磁机械式的,借助指针来显示最终结果。 第二代:数字化仪器。数字式仪器目前相当普及,如数字式电压表、数字 式频率计等。这类仪器将模拟信号的测量转化为数字信号测量,并以数字方式 输出最终结果,适用于快速响应和较高准确度的测量。 第三代:智能仪器。智能仪器内置微处理器,既能进行自动测试,又具有 一定的数据处理,可取代部分脑力劳动,习惯上称为智能仪

32、器。它的功能全部 都是以硬件(或固化的硬件)的形式存在,无论是开发还是应用,都缺乏灵活 性。 第四代:虚拟仪器。虚拟仪器是现代计算机技术、通信技术和测量技术相 结合的产物,是传统仪器观念的一次巨大变革,是仪器行业发展的一个重要方 向。它的出现使得人类的测试技术进入了一个新的发展纪元。 随着计算机技术、仪器技术和网络通信技术的不断完善,虚拟仪器将向三 个方面发展: (1) 外挂式虚拟仪器 (2) pxi 型高精度集成虚拟仪器测试系统 (3) 网络化虚拟仪器 第三章第三章 虚拟信号发生器的理论研究虚拟信号发生器的理论研究 3.13.1 虚拟信号发生器的基本原理虚拟信号发生器的基本原理 信号发生器又

33、称信号源或震荡器,在生产实践和科技领域中有广泛的应用。 各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、 矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在 电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中, 都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信 号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物 医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等, 都需要功率或大或小、频率或高或低的振荡器。函数信号发生器的实现方法通 常有以下几种: 1.用分立元件组成的函数发生器:通

34、常是单函数发生器且频率不高,其工 作不稳定,不易调试。 2.可以有晶体管、运放 ic 等通用器件制作,更多的则是用专门的函数信号 发生器 ic 产生。早期的函数信号发生器 ic,如 l8038、xr2207/2209 等,他们 的功能较少,精度不搞,频率上限只有 300khz,无法产生更高的频率信号,调 试方式也不够灵活,频率和占空比不能独立调节,二者相互影响。 3.利用单片集成芯片的函数发生器:能产生多种波形,达到较高的频率, 且易于调试鉴于此,美国美信公司开发了新一代函数信号发生器 icmax038,它 克服了“2”中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。 max038

35、 频率高、精度好,因此它被称为高频精密函数信号发生器 ic。在锁相环、 压控振荡器、频率合成器、脉宽调制器等电路的设计上,max038 都是优选的器 件。 4.利用专用直接数字合成 dds 芯片的函数发生器:能产生任意波形并达到 很高的频率。但成本较高。 生产所需参数的电测试信号仪器。按其信号波形分为四大类:正弦信号 发生器。主要用于测量电路和系统的频率特性、非线性失真、增益及敏度等。 按其不同性能和用途还可细分为低频(20 赫至 10 兆赫)信号发生器、高频 (100 兆赫至 300 兆赫)信号发生器、微波信号发生器、扫频和程控信号发生 器、频率合成式信号发生器等。函数(波形)信号发生器。能

36、产生某些特定 的周期性时间函数波形(正弦波、方波、三角波、锯齿波和脉冲波等)信号, 频率范围可从几个微赫到几千兆赫。除供通信、仪表和自动控制系统测试用外, 还广泛用于其他非电测量领域。脉冲信号发生器。能产生宽度、幅度和重复 频率可调的矩形脉冲的发生器,可用以测试线性心痛的瞬态响应,或用作模拟 信号来测试雷达、多路通信和其他脉冲数字系统的性能。随机信号发生器。 通常又分为噪声信号发生器和伪随机信号发生器两类。噪声信号发生器主要用 途为:在待测系统中引入一个随机信号,以模拟实际工作条件中的噪声而测定 系统性能;外加一个已知噪声信号与系统内部噪声比较以测定噪声系数;以随 机信号代替正弦或脉冲信号,以

37、测定系统动态特性等。当用噪声信号进行相关 函数测量时,若测量时间不够长,会出现统计性误差,可用伪随机信号来解决。 在这里介绍 1 款经典使用的安捷伦 esg-d 系列信号发生器 e4421b 详细内 容以作参考: e4421b 信号发生器主要技术指标: 频率:250khz3ghz 分辨率:0.01hz 转换速度 调制接通:45ms.典型值 调制断开:35ms.典型值 精度:稳定度fc 时基 扫描方式 工作方式:步进:频率和功率以及任意列表 停留时间:1ms-60s 频率点数:2-401 内部基本准震荡器 时基参考输出: 频率:10mhz 幅度:0.35vrms,50 负载 外参考输入: 频率:

38、1,2,5,10mhz典型值 10ppm 用 optie5 时为 1ppm 幅度:0.15vrms 输入阻抗:50 输出阻抗:50 频带 频带 频率范围 n# 1 250khz249.999mhz 1 2 249.999500mhz 0.5 3 500mhz1ghz 1 4 12ghz 2 5 24ghz 4 频谱纯度 单边带相位噪声(典型值,在 20khz 频偏处) 在 500mhz 处:-120dbc/hz 在 1000mhz 处:-116 dbc/hz 在 2000mhz 处:-110 dbc/hz 在 3000 mhz 处:-104 dbc/hz 在 4000 mhz 处:-104 d

39、bc/hz 脉冲 周期:16s-30s 宽带:8s-30s 分辨率:4s 3.2.3.2.信号发生器现状及发展信号发生器现状及发展 信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电 路搭接而成,如采用 555 振荡电路发生正弦波、三角波和方波的电路便是可取 的路径之一,不用依靠单片机。如工业过程控制,生物医药,地震模拟机械振 动等领域常常用到低频信号源。而由硬件电路构成的低频信号其性能难以令人 满意,而且由于低频信号源所需的 rc 很大:大电阻,大电容在制作上有困难, 参数精度亦难以保证,体积大,漏电,耗损显著更是致命的弱点。一旦工作需 求功能有增加,则电路复杂程度会大大增加。

40、 当今是科学技术及仪器设备高度智能化飞速发展的信息社会,电子技术的 进步,给人们带来了根本性的转变。现在带电子领域中,单片机的应用正在不 断的走向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪 器具有高可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得 以极为广泛的应用,并走入家庭,从洗衣机、微波炉到音响汽车,处处可见其 应用。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的 标志之一。 一块单片机芯片就是一台计算机。由于单片机的这种特殊的结构形式,在 某些应用领域中,它承担了大型计算机和通用微型计算机无法完成的一些工作。 使其具有很多显著的优点和特点,因

41、此在各个领域中都得到了很迅猛的发展。 单片机的应用使得信号发生器的性能价格比提高很多,控制功能强,集成 度高、体积小、可靠性高,并且可以在很低的电压下工作,功耗降至 a 级, 一粒纽扣电池就可长期使用。 随着科技的不断进步和电子化产品的日益普及,电子产品的规模和体积有 了巨大的变化。各种复杂电路不断出现,体积不断缩小,产品更新速度不断加 快。这些新的变化使得电路的设计工作变得日益复杂和繁重。电子产品设计时 使用常规的人工方法,要耗费大量的人力财力。计算机硬件和软件的发展,使 得它应用到各个领域。电子设计自动化得到了快速发展,大大减轻了设计压力, 缩短了设计开发时间,是电子开发人员必须掌握的技术

42、。 本次设计中应用的 labwindows/cvi 软件是美国 ni(national instrument)公司开发的 measurement studio 软件组中的一员。它是 32 位的 面向计算机测控领域的虚拟仪器软件开发平台,可以在多种操作系统下运行。 labwindows/cvi 是以 ansic 为核心的交互式虚拟仪器开发环境,它将功能强大 的 c 语言与测控技术有机结合,具有灵活的交互式编方法和丰富的库函数,为 开发人员建立检测系统、自动测试环境、数据采集系统、过程监控系统等提供 了理想的软件开发环境,是实现虚拟仪器及网络化仪器的快速途径。通过信号 发生器的计算机仿真设计研究,

43、初步掌握软件应用及编程和信号发生器原理。 第四章第四章 虚拟信号发生器的设计虚拟信号发生器的设计 4.14.1 虚拟信号发生器设计虚拟信号发生器设计 4.1.14.1.1 虚拟信号发生器的工作原理虚拟信号发生器的工作原理 通过在图形化用户接口界面上(硬件面板)上键入信号幅值、频率以及选 择生成的波形和窗函数。通过软件编程实现信号波形生成及频谱分析。 其设计的方法的基本思路: 1、设计一个图形化用户接口。 2、产生程序代码。 3、用功能面板插入相应函数,完成程序编制。 4、封装代码。 4.1.24.1.2 信号的频谱分析信号的频谱分析 所谓信号的频谱分析就是指计算信号的傅里叶变换。连续信号与系统

44、的傅 里叶分析不便于直接用计算机进行计算,使其应用受到限制,而本设计用到的 快速傅里叶变换(简称 fft)是一种时域和频域都是离散化的变换,适合数值 运算,成为分析离散和系统的有力工具。对于连续信号可以通过时域采样,应 用 fft 进行近似谱分析。 快速傅里叶变换是离散傅里叶变换 dft 的一种快速算法,由于有限长序列 在其频域也可以离散化有限长序列(dft),因此离散傅里叶变换(dft)在数 字信息处理中是非常有用的。但是由于 dft 的计算量太大,即使采用计算机也 很难对问题进行实时处理,而 fft 出现以后使 dft 的运算大大简化,如: 设 x(n)为 n 点有限长序列,其 dft 为

45、 ; kn n n wnxkx 1 0 )()( 一般来说 x(n)和 都是复数,x(k)也是复数,因此每次计算一个 kn n w x(k)值,需要 n 次复数乘法和 n-1 次复数加法,而 x(k)一共有 n 个点(k 从 0 取到 n-1),故完成一次 dft 运算总共需要 n2复数乘法及 n(n-1)次复数 加法。这样运算就复杂了,计算所需的时间也会多一些。而采用 dit-fft 算法 (即时间抽取法)首先对时间进行奇偶分解,然后对频率进行前后分解 下面为以 n=8 点为例的 fft 的蝶形运算流图: 图 4-1 n=8 的快速傅里叶变换蝶形运算流图 当 n=8 时,流程图应有 3 级蝶

46、形,每一级都有 4 个蝶形运算构成。因此每 一级运算都需要 4 次复数乘和 8 次复数加。所以一次 fft 总共需要复数乘 12 次, 复数加 24 次复数加,而 dft 要总共需要复数乘 64 次,复数加 56 次。故使用 fft 能大大减少运算量,减小了运算时间,能实时完成信号处理。 故本文基于 labwindows/cvi 的频谱显示是通过对一个时域信号一次进行 滤波、加窗函数和快速傅里叶变换 fft 并在波形图上进行显示生成的。 4.4.1.31.3 仪器硬件面板设计仪器硬件面板设计 启动 labwindows/cvi 在设计面板之前先在 file 菜单中新建 include(*.h)

47、、 source(*.c)再新建 user interface(*.uir)面板。面板建好后开始创建控件。 1、创建控件及修改空间属性。 用户界面共 12 个控件,其中有两个 graph 控件、两个 numeric dial 控件、 两个 ring slide 控件、四个 command button 控件、两个 ring 控件。 其整体硬件面板如下图所示: 图 4-2 用户的图形界面 各种控件的相关属性设置如下: 面板:constant name 为 panel,panel title 为“虚拟信号发生器”。 控件 1:graph 控件,用于显示波形,constant name 为 grap

48、h1,label 为 “波形显示”,”buttom x-axis”中 axis name 是”t/s“,minimum 为 0.00,maximum 为 1000.00;left y-axis 中 axis name 是 a(t)/v,minimum 为 -1,maximum 为 1。 控件 2: graph 控件,用于显示频谱,constant name 为 graph2,label 为“频谱显示” buttom x-axis”中 axis name 是“w“ minimum 为 0,maximum 为 1000。left y-axis 中 axis name 是 a(w)/v, minim

49、um 为 0,maximum 为 100. 控件 3:numeric dial 控件,用于设置幅值,constant name 为 ample,label 为“幅值”, default values 为 0,range values 中 minimum 为 0,maximum 为 1。 控件 4:numeric dial 控件,用于设置频率,constant name 为 freq,label 为“频率”, default value 为 0, range values 中 minimum 为 0,maximum 为 1000。 控件 5:ring slide 控件,用于选择波形,consta

50、nt name 为 waveform,label 为“波形选择”,lable/value pairs 中 lable 分别为无、正 弦波、三角波、锯齿波、方波,其对应的 value 分别为 0、1、2、3、4。 控件 6:ring slide 控件,用于设置窗函数,constant name 为 window,label 为“window”, lable/value pairs 中 lable 分别为 none、triangle、hanning、hamming、blackman、kaiser,其对应的 value 分 别为 0、1、2、3、4、5。 控件 7:command button 控件

51、,用于保存文件,constant name 为 save,callback function 为 save, ,label 为“_save to file”。 控件 8:command button 控件,用于读取文件,constant name 为 read,callback function 为 read,label 为“ _read from file”。 控件 9:command button 控件,用于开始运行,constant name 为 commandbutton,callback function 为 refe,label 为”_ok”。 控件 10:command butt

52、on 控件,用来 关闭运行,constant name 为 quit, callback function 为 quitcallback,label 为“ _quit”。 控件 11:ring 控件,constant name 为 outputtype,lable/value pairs 中 lable 分别为 binary、ascii,其对应的 value 分别为 0、1。 控件 12:ring 控件,constant name 为 inputtype,lable/value pairs 中 lable 分别为 binary、ascii,其对应的 value 分别为 0、1。 2、创建源程序

53、代码 控件创建完成即面板设计完成后,点击功能菜单中的 code 即可看见下拉菜 单 generate,鼠标移至 generate 则出现 all code 如图 4-3,点击 all code 就 会出现如图 4-4 对话框选定 quitbutton 点击 ok 即出现*.c 文件及程序。 codegenerateall code 选定 quitbutton 点击 ok。 图 4-3 产生源程序代码的框图 当选择 all code 后,出现生成代码窗口即 generate all code 窗口,如下 图所示: 如图 4-4 生成所有代码对话框 在窗口中应注意: 1. 当你想让你的程序的主函数

54、为 win main 而不是 main 是你可以选择 generate winmian() instead of main()项前的矩形框。 2. select panels to load and display at startup 项是指你选择那一个 panel 最为最初装入并显示的 panel,当你创建多个 panel 时你就需要选择 一个 panel 作为最初显示的面板。由于本程序只有一个 panel 所以该 panel 就被缺省的作为最初显示的面板而不再需要你去选择。 3. select quituserinterface callback 项是指你选择那一个函数作为退出程 序的终

55、止函数。本程序是让 quitcallback 作为退出函数。 4.4.1.1.4 4 软件设计(程序设计)软件设计(程序设计) 在 all code 中生成的源代码进行穿插加入函数生成完整的程序。 按照程序流程图完成程序的编制: 初始化 y n 图 4-5 程序流程图 1、ok 按钮的回调函数 refe()的编辑 输入幅值、频 率 选择波形 waveform waveform=0 ? 删除波形及频谱 选择窗函数、添加 bw_lpf 和 fft 函数 波形、频谱显 示 保存波形、频谱 编制回调函数 save 编制回调函数 read 提取保存的文件 结束 为了当按下 ok 键以后通过调节幅值、频率

56、、及窗函数和波形选择在两个 grap 控件中生成波形及频谱,我设置如下程序完成此操作: 在程序中调用 show_wave1 函数,在申明 show_wave 函数,如下程序: int cvicallback refe (int panel, int control, int event,void *callbackdata, int eventdata1, int eventdata2) int i; switch (event) case event_commit: show_wave1(); for (i=0;iuse interface 在弹出的话框中选择 controls/graphs

57、/strip chartsgenerate funcationsgetctrval 点击 select 出现一个函数面板,如 图 4-6 获取当前值的控制面板 按上图填写,完成后点击 codeinsert funcation call 即生成程序: getctrlval (panelhandle, panel_waveform, 按上面的方法依次生成: getctrlval (panelhandle, panel_ample, getctrlval (panelhandle, panel_freq, getctrlval (panelhandle, panel_window, 2、插入波形函数

58、 选择 labriary analysis 在弹出的对话框中选择 signal generationsinwave 点击 select 弹出一函数面板: 图 4-7 生成正弦波函数面板 因为正弦函数要存放在变量数组 wavedata 中所以要首先申明此数组,选 择 codedeclare variable,在弹出的对话框中填写相应的信息。再选择 code insert funcation call ,函数就插入到原光标所处得位置。如下: case 1: sinewave (1000, ample, freq/samplerate, break; 依次类推在分别完成其他函数的插入: case 2

59、: trianglewave (1000, ample, freq/samplerate, break; case 3: sawtoothwave (1000, ample, freq/samplerate, break; case 4: squarewave (1000, ample, freq/samplerate, break; 3、在 graph 上显示波形 使用一个 switch 语句实现各信号的函数的选择,再使用 if .else 语句 对所选信号进行处理即如果选择“无”,则删除在 graph1 上的信号,否则 可以通过选择 libriaryuse interface 在弹出的对话

60、框中选择: controls/graphs/strip chartsgraphs and strip chartsgraph plotting and deletingplotwaveform 点击 select 弹出一函数面板: 图 4-8 plotwaveform 函数控制面板 按图所示填写信息,完成后选择 code insert funcation call 完成函数 的插入。 plotwaveform (panelhandle, panel_graph1, wavedata, 1000, val_double, 1.0, 0.0, 0.0, samplerate/1000, val_t

温馨提示

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

评论

0/150

提交评论