虚拟仪器课程设计报告虚拟调制解调器设计.docx
《虚拟仪器课程设计报告虚拟调制解调器设计.docx》由会员分享,可在线阅读,更多相关《虚拟仪器课程设计报告虚拟调制解调器设计.docx(24页珍藏版)》请在冰点文库上搜索。
![虚拟仪器课程设计报告虚拟调制解调器设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/17/a30ff5c7-0f52-4f21-abb3-7331cb4eaa62/a30ff5c7-0f52-4f21-abb3-7331cb4eaa621.gif)
虚拟仪器课程设计报告虚拟调制解调器设计
目录
1前言...............................................................................................................................1
2虚拟仪器.......................................................................................................................2
2.1虚拟仪概述...........................................................................................................2
2.1.1虚拟仪器基本概念.......................................................................................2
2.1.2虚拟仪器的构成及分类...............................................................................3
2.1.3虚拟仪器的发展...........................................................................................3
2.2LabVIEW开发平台.............................................................................................4
2.2.1LabVIEW开发平台简介.............................................................................4
2.2.2LabVIEW编程.............................................................................................6
3调制解调器..................................................................................................................8
3.1调制解调器的概念及分类...................................................................................8
3.2调制解调器的作用...............................................................................................9
3.3调制解调器的工作原理.......................................................................................9
4巴特沃斯低通滤波器................................................................................................10
5虚拟调制解调器........................................................................................................12
5.1调制解调原理及算法.........................................................................................12
5.2程序设计.............................................................................................................13
6总结与体会...............................................................................................................18
7谢辞...........................................................................................................................19
8参考文献...................................................................................................................20
1前言
进入90年代以来,随着计算机技术的迅猛发展,测试技术在这一巨大的推动下,从传统的仪器模式脱颖而出,出现了新的测试仪器-----虚拟仪器。
虚拟仪器是通过应用程序将通用计算机与仪器硬件结合起来,用户可以通过友好的图形界面(通常叫作虚拟前面板)操作这台计算机,就象在操作自己定制的一抬传统仪器一样.虚拟仪器以透明的方式把计算机资源(如微处理器,内存,显示器等)和仪器硬件(如A/D,D/A/,数字I/O,定时器,信号调理等)的测量,控制能力结合在一起,通过软件实现对数据的分析处理表达以及图形化用户口。
本次主要设计基于LabVIEW的虚拟调制解调器。
能够实现用该调幅波解调器可观察调幅波,以及经过巴特斯滤波器后的解调信号波形。
此系统具有参数调节方便、易实现、可靠度高等优点。
本设计的意义在于在高等工程教育中采用虚拟实验室,可以从根本上解决实验与实习经费严重短缺问题。
作为传统电子技术实验的补充,使学生初步掌握仿真软件技术,可使实验内容紧密联系课本内容,比较全面地概括和反映部分所学的知识点,将课堂内容具体化。
2虚拟仪器
2.1虚拟仪器概述
虚拟仪器彻底打破了传统仪器只能由生产厂家定义,用户无法改变的局面,从而使得任何一个用户都可以方便灵活地用鼠标或按键在计算机显示屏幕上操作虚拟仪器软面板的各种“旋钮”进行测试工作,并可以根据不同的测试要求通过窗口切换不同的虚拟仪器,或通过修改软件来改变、增减虚拟仪器系统的功能与规模。
虚拟仪器具有的这种“可开发性”和“可扩展性”等优越特点使虚拟仪器具有强大的生命力和竞争力。
2.1.1虚拟仪器基本概念
虚拟仪器的概念最早由美国NI公司于1895年提出,其英文原称为VrulInstrument,简称vi。
所谓虚拟仪器,就是在以计算机为核心的硬件平台上,其功能由用户设计和定义,具有虚拟面板,其测试功能由测试软件实现的一种计算机测试系统.虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果:
利用计算机强大的软件功能来实现信号数据的运算、分析和处理:
利用I/0接口设备完成信号的采集、测量与调理,从而建立集各种测试功能为一体的计算机仪器系统。
使用者通过鼠标和键盘操作虚拟面板,就如同使用一台专用测盆仪器一样。
虚拟仪器的“虚拟”两字主要包含以下两方面的义。
(1)虚拟仪器的面板是虚拟的
虚拟仪器面板上的各种“图标”与传统的仪器面板上的各种“器件”所完成的功能是相同的;由各种开关、按钮、显示器等图标实现仪器电源的“通”、“断”;被测信号的“输入通道”、“放大倍数”等参数设置,及测量结果的“数值显示”、“波形显示等”。
传统仪器面板上的器件都是实物,而且是由手动和触摸进行操作的;;虚拟仪器前面板是外形与实物相像的图标,每个图标的通、断、放大等动作通过用户操作计算机鼠标或键盘来完成。
因此,设计虚拟仪器前面板就是在前面板设计窗口中摆放所需图标,然后对图标的属性进行设置。
(2)虚拟仪器测量功能是通过对图形化软件流程土的编程来实现的
虚拟仪器是在以PC为核心组成的平台支持下,通过软件编程来实现仪器功能的。
因为可以通过不同测试功能软件模块的组合来实现多种测试功能,所以,在硬件平台确定后,就有“软件就是仪器”的说法。
这也具体体现了测试技术与计算机深层次的结合。
2.1.2虚拟仪器的构成及分类
虚拟仪器由通用仪器硬件平台(简称硬件平台)和应用软件两大部分构成。
(1)虚拟仪器的硬件平台
虚拟仪器的硬件平台由两部分组成:
(a)计算机:
一般为一台PC机或者工作站,其为硬件平台的核心。
(b)I/0接口设备:
I/0接口设备主要完成被测输入信号的采集、放大、A/D转换。
不同的总线有其相应的I/0接口硬件设备,如利用PC机总线的数据采集板卡、GPIB总线、VXI总线仪器模块、PXI总线仪器模块、串行总线仪器等。
虚拟仪器的构成方式主要有5种类型:
(a)PC-DAQ系统:
PC-DAQ系统是以数据采集卡、信号调理电路及计算机为仪器硬件平台组成的插卡式虚拟仪器系统。
这种系统采用计算机的PCI或工SA总线,数据采集卡直接插入计算机底板上的相应总线插槽.(b)GPIB系统:
GPB系统是以PB标准总线仪器与计算机为仪器平台组成的虚拟仪器测试系统。
(c)VXI系统:
VX6是以VXI标准总线仪器模块与计算机为仪器平台组成的虚拟仪器测试系统。
(d)PXI系统:
PX工系统是以PXI标准总线仪器模块与计算机为仪器平台组成的虚拟仪器测试系统。
(e)串口系统:
串口系统是以Serial标准总线仪器与计算机为仪器平台组成的虚拟仪器测试系统。
(2)虚拟仪器的软件
目前虚拟仪器软件开发工具有如下两类:
(a)文本式开发平台:
VisualC+,VisualBasic,LabWindows/CVI等;
(b)图形化开发平台:
如LabVIEW,HPVE等。
2.1.3虚拟仪器的发展
虚拟仪器发展至今,大体可以分为四代:
模拟仪器、分立元件式仪器、数字化仪器、智能仪器和虚拟仪器。
第一代---模拟仪器。
这类仪器看起来在某些实验室仍然恩能够看到,是以电磁感应基本定律为基础的指针式仪器,如指针式万用表、指针式电压表、指针式电流表等。
这类指针式仪器借助指针来显示最终结果。
第二代---分立元件式仪器。
当20世纪50年代出现电子管,20世纪60年代出现晶体管时,便产生了以电子管或晶体管电子电路为基础的第二代测试仪器---分立元件式仪器。
第三代---数字化仪器。
20世纪70年代,随着集成电路的出现,诞生了以集成电路芯片为基础的第三代仪器这类仪器目前相当普及,如数字电压表,数字频率计等。
这类仪器将模拟信号的测量转化为数字信号的测量,并以数字方式输出最终结果,适用于快速响应和较高准确度的测量。
第四代---智能仪器。
随着微电子技术的发展和微处理器的普及,以微处理器为核心的第四代仪器---智能仪器也迅速普及。
这类仪器内置微处理器,既能进行自动测试,又具有一定的数据处理功能,可取代部分脑力劳动,习惯上称之智能仪器。
其缺
点是它的功能模块全部都以硬件的形式存在,无论对开发还是针对应用,都缺乏灵活性。
随着计算机、通信、微电子技术的不断发展,以及网络时代的到来和信息化要求的不断提高,网络技术应用到虚拟仪器领域中是虚拟仪器发展的大趋势。
在国内网络化虚拟仪器的概念目前还没有一个比较明确的提法,也没有一个被测量界广泛接受的定义。
其一般特征是将虚拟仪器、外部设备、被测试点以及数据库等资源纳入网络,实现资源共享,共同完成测试任务。
使用网络化虚拟仪器,可在任何地点、任何时刻获取到测量数据信息的愿望成为现实。
网络化虚拟仪器也适合在异地或远程控制、数据采集、故障监测、报警等。
2.2LabVIEW开发平台
2.2.1LabVIEW开发平台简介
LabVIEW是一个完全的、开放式的虚拟仪器开发系统应用软件,利用它组建仪器测试系统和数据采集系统可以大大简化程序的设计。
LabVIEW与Visual C++、Visual Basic、LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码(Code),而LabVIEW则是使用图形化程序设计语言G(Graphic),用框图代替了传统的程序代码。
LabVIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常的相似。
LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的函数库和开发工具库。
LabVIEW的程序设计实质上就是设计一个个的"虚拟仪器",即"VIs"。
在计算机显示屏幕上利用函数库和开发工具库产生一个前面版(Front Panel);在后台则是利用图形化的编程语言编制用于控制前面板的框图程序。
程序的前面板具有与传统仪器相类似的界面,可接受用户的鼠标和键盘指令。
一般来说,每一个VI都可以被其他VI调用,其功能类似于文本语言的子程序嵌套;而这种嵌套的层次,从理论上讲,是不受任何限制的。
LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。
它提供了用于GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。
LabVIEW可方便的调用Windows动态链接库和用户自定义的动态链接库中的函数;LabVIEW还提供了CIN (C Interface Node) 节点使得用户可以使用由C或C++语言,如ANSI C, 编译的程序模块,使得LabVIEW成为一个开放的开发平台。
LabVIEW还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。
此外,LabVIEW还提供了专门用于程
序开发的工具箱,使得用户能够很方便的设置断点,动态的执行程序来非常直观形象的观察数据的传输过程,以及进行方便的调试。
LabVIEW的运行机制就宏观上讲已经不再是传统上的冯·诺伊曼计算机体系结构的执行方式了。
传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替;从本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式确保了程序中的函数节点(Function Node)只有在获得它的全部数据后才能够被执行。
也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。
既然LabVIEW程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。
这样,LabVIEW中被连接的函数节点之间的数据流控制着程序的执行次序,而不像文本程序受到行顺序执行的约束。
从而,我们可以通过相互连接函数节点快速简洁的开发应用程序,甚至还可以有多个数据通道同步运行,即所谓的多线程(Multithreading)。
LabVIEW的核心是VI。
VI有一个人机对话的用户界面—前面板(Front Panel)和相当于源代码功能的框图程序(Diagram)。
前面板接受来自框图程序的指令。
在VI的前面板中,控件(Controls)模拟了仪器的输入装置并把数据提供给VI的框图程序;而指示器(Indicators)则是模拟了仪器的输出装置并显示由框图程序获得或产生的数据。
当把一个控件或指示器放置到前面板上时,LabVIEW便在框图程序中相应的产生了一个终端(Terminals),这个从属于控件或指示器的终端不能随意的被删除,只有删除它对应的控件或指示器时它才会随之一起被删除。
用LabVIEW编制框图程序时,不必受常规程序设计语法细节的限制。
首先,从函数面板(Function Palette)中选择需要的函数节点(Function Node),将之置于框图上适当的位置;然后用连线(Wires)连接各函数节点在框图程序中的端口(Port),用来在函数节点之间传输数据。
这些函数节点包括了简单的计算函数、高级的采集和分析VI以及用来存储和检索数据的文件输入输出函数和网络函数。
用LabVIEW编制出的图形化VI是分层次和模块化的。
我们可以将之用于顶层(Top Level)程序,也可用作其他程序或子程序的子程序。
一个VI用在其它VI中,称之为subVI,subVI在调用它的程序中同样是以一个图标的形式出现的;为了区分各个subVI,它们的图标是可编辑的。
LabVIEW依附并发展了模块化程序设计的概念。
用户可以把一个应用任务分解成为一系列的子任务,每个子任务
还可以分解成许多更低一级的子任务,直到把一个复杂的问题分解成为许多子任务的组合。
首先设计subVI完成每个子任务,然后将之逐步组合成为能够解决最终问题的VI。
图形化的程序设计编程简单、直观、开发效率高。
随着虚拟仪器技术的不断发展,图形化的编程语言必将成为测试和控制领域内最有前途的发展方向。
2.2.2LabVIEW编程
LabVIEW编程主要包括前面板设计和构建框图程序。
(1)前面板的设计
前面板是程序设计与用户交流的窗口,一个良好的前面板可以给用户带来一种友好的感觉,甚至是一种镁的享受.前面板主要由控件构成,控件又分为控制件和显示件。
设计前面板所用的全部控件都在控件模板(controlspalette)模板形式的默认设置为:
模板外观paletteview----Express(快速模板形式)
模板格式Format----Standard(标准格式)
导航按钮NavigationButtons----Labelselectedicons
前面板的设计主要有以下几个方面:
1、控件的设置:
很多时候,Labview对控件的默认设置往往并不能满足我们的需要,这时候单击鼠标右键,弹出快捷键,选中properties,可进行外观设置、数据范围设置、刻度设置、数据格式与精度设置等。
2、布尔量的设置:
包括外观设置与动作方式设置。
3、快捷键的设置与编辑键盘焦点顺序:
包括快捷键设置和编辑键盘焦点顺序。
4、其他设置:
缺省值设置、可见性设置、颜色设置、颜色梯度条等。
控件的布置:
包括替换与删除控件、改变控件大小与控件比例化、控件排列、组合和锁定控件。
定制控件:
创建自定义控件、创建自定义控件图标、类定义。
(2)构建程序框图
程序框图是以图形表示的Labview程序源代码,是实现程序功能的核心部分。
程序框图里的对象有:
节点、端口、连线。
◆Labview程序框图里有以下几类节点:
①函数节点:
函数节点是完成Labview程序功能的最基本的成员.Labview有两类函数节点,一类叫Function,他是完成的功能相对简单,输入输出端口相对较少。
另一类叫SUBVI,这实际就是供其他程序调用的子程序.这两类节点统称为函数节点.函数节点抖擞可以从函数模板调出。
②结构:
结构是一种程序流程控制节点,他们放置在程序框图中,外形一般是一个可以缩放的边框,当它与其他节点的连线有数据通过来时,边框内的一段代
码或者反复执行,或者有条件执行,或者按照一定的顺序执行。
结构内的一段代码叫子框图subdiagram;结构边框上数据输入输出的端口叫做通道channel.LABVIEW有7种结构:
FOR循环、WHILE循环、选择结构、展平的顺序结构、层叠结构、公式节点和事件结构。
③属性节点:
propertynode,它的顶端有两对参数,一对参考号reference和复制的参考号dupreference,另一对是errorin和errorout.只有一个属性端口.如果需要对一个对象的多种属性进行操作,可以扩大属性节点让它显示更多的属性条目。
④代码调用节点和调用库函数节点。
⑤包含节点和使用参考号调用节点。
◆Labview程序框图有以下几类端口:
①控件端口:
控件端口有图标和数据类型端口两种显示方式,图标形式的控件端口用一个缩略图显示控件的形状,用边框的颜色表示控件的数据类型,并在下方用一个小方框里的文字进一步说明控件的数据类型.控件端口的图标形式对于编程时了解端口所代表的空间很方便,但是占据程序框图的位子也比较大.控件端口另外一种显示方式是数据类型形式.数据类型形式的控件端口用整体的颜色表示控件的数据类型,并用文字进一步说明控件的数据类型.控件端口两种显示方式的转换可以通过在控件端口上弹出快菜单,选中或不选中VIEWASICON来实现。
②节点端口:
节点端口节点连线的位置,即数据传递的端点。
函数节点图标都可以显示为端口形式,我们在前面创建的VI程序框图里,各个节点上弹出的快捷菜单中,选命令VisibleItems→Terminals.程序框图变为一种很方便连线的形式,但不利于了解函数功能.有些函数节点缺省的端口数不能满足程序设计的要求,增减端口数量的方法和缩放控件大小的方法类似.即用定位工具拖动图标边缘.也可以在已有端口上弹出快捷菜单选AddInput、RemoveInput、RemoveOutput等命令。
节点端口也用颜色表示数据类型。
③结构端口:
结构上数据输入输出的端点就叫结构端点。
④常数:
Labview有两类常数。
⑴通用常数:
例如自然对数的底e,回车符等。
⑵用户定义常数:
Labview函数模板中有各种常用数据类型的常数,用户可以在编写程序时为它赋值.例如数值型常数NumericConstant位于数值字模板,它的默认值是32位整型数0,用户可以给它定义任意类型的数值,程序运行时就保持这个值。
也可以从VI前面板,甚至其他VI前面板拖动或复制一个控件到程序框图产生一个用户定义的常数。
连线是编写LabVIEW程序的一项主要工作,下面详细介绍连线的知识和技巧。
①线型:
LabVIEW用连线的形状与颜色表示不同的数据类型。
例如橙色代表沸点数﹑蓝色代表整型数等。
细线代表单个数据,点线代表布尔量,粗线代表数组等。
②手工连线:
连线工具是经过一个端口时,端口将闪烁,提示操作者单击鼠标,
将连线连接到这里,并弹出一个提示条用黄色的文本框显示出端口的名称。
在端口之间移动连线工具时不必按下鼠标。
连线可以直角弯折一次。
需要更多弯折时,在弯折处单击鼠标即可。
需要移动或者删除连线时,选中该连线可用鼠标直接拖动,按Delete键就可以删除。
③自动布线:
自动布线功能帮助我们更合理的布置连线。
可以用菜单命令Tools→Options打开BlockDiagram设置对话框,选中或不选Enableautomacticwirerouting来切换自动布线功能的打开与关闭。
也可以在连线开始时按A键进行切换。
对于手工连线也可以在线上弹出快捷菜单用CleanUpWire命令重新布置。
④自动连线:
LabVIEW可以自动为方今程序框图的对象连线。
当移动一个对象接近其他对象时,会出现一段临时连线,当它防进程序框图后,两个对象就连接起来。
LabVIEW找到它认为数据类型最匹配的端口进行连线。
总之,连线型图标表示程序执行过程中的数据流及其流动方向,类似于普通程序中的变量。
在LabVIEW开发平台创建虚拟仪器就是在前面板开发窗口与流程图编辑窗口进行虚拟前面板及其想对应的流程图程序设计。
编辑好的流程图程序是用图形化表示的。
图形化的变成思想与用源代码的传统程序编程思想是一致的。
为了完成对信号数据的采集,需要编写对I/O借口硬件设备的驱动程序。
为了对采集的信号数据进行运算,分析处理,需要编写运算,分