正弦波信号的采集数据分析程序设计.docx
- 文档编号:23635952
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:17
- 大小:419.94KB
正弦波信号的采集数据分析程序设计.docx
《正弦波信号的采集数据分析程序设计.docx》由会员分享,可在线阅读,更多相关《正弦波信号的采集数据分析程序设计.docx(17页珍藏版)》请在冰豆网上搜索。
正弦波信号的采集数据分析程序设计
综合课程设计报告
正弦波信号的采集数据分析程序设计
学院(系):
计算机科学与工程学院
班级:
107030703
学生姓名:
于凡学号28
指导教师:
刘政
时间:
从2010年9月13日到2010年9月30日
1.绪论
1.1课题的选题背景
测量是人类认识自然、改造自然的一种手段,通过测量人们可以对客观世界取得定量的信息,仪器是测量中必不可少的工具。
电子测量是利用电子学的理论和技术对电量和非电量进行观察和测量的装置和系统。
随着电子技术的发展及其在各方面的广泛应用,对于测量和仪器提出了更高的要求,测试项目和范围与日俱增,测试精度和测试速度要求急剧提高。
七十年代以来,是电子测量和仪器领域发生飞跃变化的年代,微计算机的问世和大规模集成电路的发展对这一领域产生了革命性的影响。
在测试系统中,对仪器的“智能”要求越来越高,仪器中微机的任务不断加重,仪器在很多方面逐渐向微计算机靠拢。
此外,随着微计算机和智能仪器的普及,测试系统中包含的重复部件越来越多,而冗余的部件往往不能容错。
因此需要统筹地考虑仪器与计算机之间的系统结构。
在这种背景下,1982年出现了一种与PC机配合使用的模块式仪器,自动测试系统结构也从传统的机架层迭式结构发展成为模块式结构。
与传统仪器不同的是,模块式仪器本身不带仪器面板,因此必须借助于PC机强大的图形环境和在线帮助功能,建立图形化的“虚拟的”仪器面板,完成对仪器的控制、数据分析与显示。
这种与PC机结合构成的,包含实际仪器使用与操作信息软件的仪器,被称为“虚拟仪器”。
与传统仪器相比,虚拟仪器具有以下几个性能特点:
1.虚拟仪器的硬、软件具有开放性、模块化、可重复使用及互换性等特点。
为提高测试系统的性能,可以方便地加入一个通用仪器模块或更换一个仪器模块,而不用购买一个全新的系统,有利于测试系统的扩展。
2.可由用户自定义仪器功能。
由于仪器的功能可在用户级上产生,故它不再完全由仪器生产厂家来确定,用户可以根据自己的需要,通过增加或修改软件,为虚拟仪器加入新的测量功能,而不用购买一台新的仪器。
3.数据处理能力强。
由于借助于计算机,虚拟仪器可以实现过去比基于微处理机内核仪器复杂许多的数据处理、分析与显示能力,并可利用数据文件或数据库格式进行数据的存储与恢复。
1.2课题的国内外研究现状
示波器是一种图形显示设备,它在描绘电信号的波形曲线的同时说明信号的许多特性:
信号的时间和电压值、振荡信号的频率、是否存在信号失真、比较多个波形信号等。
我们可以从其操作面板的显示屏幕上直观地观察到波形和一些重要参数。
而虚拟示波器就是在传统的示波器的基础上体现了虚拟仪器可重复使用、更好的面向对象的优势。
对于虚拟示波器来说,最为重要的应该是其应用程序的开发环境。
自动测试系统应用程序开发环境可以选择传统文本形式的语言环境,如VB、VC、Delphi或LabWindows/CVI等,也可以选择图形化的软件开发环境。
被称为快速应用程序开发环境(RAD)的VC、VB、Delphi等开发平台具有可视化界面与已经以类形式封装的可视化控件,在很大程度上编程也不需要从头开始。
而另外的基于图形化的编程平台是NI公司的LabVIEW,它具有图形化的源代码且能提供复杂的数学分析能力以及丰富的数据显示方式。
一台传统的独立示波器,往往具有一个操作前面板,我们可以通过操作面板上的显示屏幕作为图形化输出。
所有的功能,均需要通过仪器面板的操作来实现,这个操作面板是人与机器的交互面板,是传统意义上的人机交互界面。
而虚拟示波器的最大特点就是抛弃了传统示波器的操作面板,所有操作与波形显示均须借助计算机强大的计算与显示功能来实现,用户与示波器的交互界面变成了由计算机软件实现,也即软面板。
软面板的存在使得人机交互更为自然,而源代码的编写使得这一交互真正成为可行。
不论是哪种类型的开发环境,都致力于产生一个整合性能较好的应用程序,使示波器完成预期的任务,实现波形的显示以及谱线的分析等基本功能。
1.3本人所做的主要工作
1、在同一窗口画出两条曲线
2、能够对曲线放大、缩小
3、找到曲线的最大、最小点,用鼠标点击曲线上的点能够显示该点的坐标
4、选作:
用DFT分析计算该正弦波的有效值(电压、电流、有功、无功、功率因数、谐波等)
2.课题需求分析
2.1课题的功能需求
虚拟示波器的设计要使外接数据采集卡的PC机的界面上显示出对应数据的波形,并对波形进行分析和存储,以及对一些波形参数进行测量和显示,这一切都应该通过安装在PC上的开发环境产生前面板及内部源程序,形成一个完整的软件系统。
而基于示波器针对波形的基本处理操作,我们需要通过开发环境完成信号采集、波形控制、数据分析等功能,并使得虚拟仪器的优越性——可适当添加新的模块——进而完整该系统的设计构想。
1.、界面控制和波形显示模块:
界面控制和波形显示模块主要的功能是:
使得人机交互界面能够实现复位和退出,波形基本显示等功能。
2、数据采集模块:
数据采集模块主要完成的功能是:
通过设置采样通道,采样频率,触发产生的方式等条目由外部的数据采集卡将数据以波形的形式在显示区呈现出来(故波形的显示模块有一部分是与数据采集模块交叉在一起的)。
3、波形的测量模块:
波形的测量模块主要完成的功能是:
随着设置在波形图上的游标的移动,可测量出此游标的中心所在的X轴和Y轴的坐标;并且可以通过一些控件来控制和更改图形的显示范围。
几乎所有的模块都与界面控制和波形显示模块有直接或间接的关系:
数据采集模块和数据读取模块可以将代表某种波形的数据引入系统,以波形的形式呈现在波形显示模块中;
波形测量模块中,对波形参数的一些控制会使得波形显示模块中的波形有相应的变化,当然这一过程是通过在程序中调用相应的函数和设置相应的参数实现的,如在波形显示控制模块中。
定义可以存储数据的变量来记录经过调整的波形,再通过把变量存储进PC的某个文件夹,以便在波形的读取和存储模块中可以调出来用数据描述的波形。
3.涉及的主要工作原理和关键技术介绍
3.1MeasurementStudio原理技术1介绍
NIMeasurementStudio是为VisualStudio.NET和VisualStudio6.0环境提供的一个集成式套件,包括各种常用的测量和自动化控件、工具和类库。
NIMeasurementStudio带有的ActiveX和.NET控件、面向对象的测量硬件接口、高级的分析库、科学的用户界面控件、测量数据网络化、向导、交互式代码设计器和高扩展性类库等功能,极大的减少了应用程序
的开发时间。
MeasurementStudio企业版和专业版继续提供在VisualC++6.0和VisualBasic6.0环境下开发所需的ActiveX控件和类库。
利用交互式ActiveX属性页面,您可以为模拟输入和输出、数字I/O、GPIB、VISA以及更多的设备图形化配置数据采集和仪器控制应用程序。
科学分析库包括了很多常用函数,如快速傅立叶变换(FastFouriertransforms)、频谱测量和数组操作等。
此外,包含在MeasurementStudio里的ActiveX用户界面控件专为使您创建一个如同真实世界仪器的虚拟仪器系统而设计。
3.2关键问题解决思路
3.2.1measurementstudio安装问题的解决方法
在windows下装软件会遇到这么大的挫折,还好最终总算是装上了。
安装过程如下:
1.首先安装vc6.0中文企业版。
2.安装NIMeasurementStudioforvc++6.0。
问题就在这里:
安装时它会提示你安装前需要安装微软的visualc++servicepack3orlater。
就是说要你安装pack3或者3以后的补丁。
于是我在微软的中文网站下载了个ServicePack6forVisualBasic6.0,VisualC++6.0withVisualSourceSafe6.0d。
也就是sp6. 我开始想我的vc是中文版的,于是下了个中文版的sp6.结果解压安装提示:
“无法找到与操作系统语言匹配的vc”然后就弹出。
我下了各个版本的都不行。
sp6就是装不上。
google一下发现很多人有这样的问题,都没方案。
下了个英文版的sp6.问题终于算是解决了。
3.2.2CWgraph控件显示波形的解决方法
首先我对这个控件的基本操作熟悉了一遍,其次对其属性表里面的各项属性进行了详细的操作和实践,比如如何在这个控件中添加显示波形1和波形2的响应函数,如何添加表格和游标等。
如:
m_graph1.Plots.Item
(2).PlotY(m_wave2);就是将模拟的正弦曲线m_wave2在graph控件上显示出来,当然在这之前必须对曲线进行初始化。
3.2.3读取文件显示波形问题的解决方法
当我接触到MeasurementStudio环境时,刹那间被那些控件吸引住了,有二维的,立体的,比当时学的MFC里面的控件好看多了,而且很具有现实感。
第一步就是先把采集到的数据通过txt文档的形式读取出来,这个主要就是读取文件的操作,第二步就是如何将获取到的文件内容通过描点的方法显示在graph控件上,我当时想到了两种方法,一种是GDI画图,一种是数组的方式,后期对控件的熟悉后最终还是选择了数组的方式将图像显示出来。
4系统设计[提示:
主要用流程图形式,并配以文字进行说明]
4.1系统总体结构、模块或流程
图1、系统总体模块结构
界面控制和波形显示模块主要的功能是:
使得人机交互界面能够实现复位和退出,波形基本显示等功能。
数据采集模块主要完成的功能是:
通过将数据以波形的形式在显示区呈现出来。
波形的测量模块:
波形的测量模块主要完成的功能是:
随着设置在波形图上的游标的移动,可测量出此游标的中心所在的X轴和Y轴的坐标;并且可以通过一些控件来控制和更改图形的显示范围。
4.2界面控制和波形显示子模块1设计
图2、界面控制模块
1、Uwave:
初始化和读取文件显示电压的波形曲线的视图界面。
2、Iwave:
读取文件显示电流的波形曲线的视图界面。
3、Up:
对模拟波形放大操作。
4、Down:
对模拟波形缩小操作。
5、Back:
复位操作。
6、reset:
初始化操作。
7、quit:
退出操作。
8、readU:
读取电压信号并显示在m_graph1控件上。
9、readI:
读取电流信号并显示在m_graph2控件上。
10、Clear:
清空界面的数据。
图3、波形显示模块。
1、模拟波形的显示部分代码:
CNiMath:
:
SineWave(m_wave2,c3,c2);
m_graph1.Plots.Item
(2).PlotY(m_wave2);
2、读取文件显示波形的部分代码:
CStringPuffX=puff.Left(puff.Find(""));
puff=puff.Right(puff.GetLength()-PuffX.GetLength()-1);
PuffX.TrimLeft();
PuffX.TrimRight();
Coor[Count]=atoi(PuffX);
CStringtempX=PuffX+"";
doublex=atoi(tempX);
m_graph1.Plots.Item
(1).ChartY(x);
4.3波形的读取子模块2设计
1电压波形读取模块流程图如下:
图4、波形读取流程图
图5、读取后显示出来的电压正弦波形
2、电流波形读取流程类似电压读取流程。
5.系统实现[主要根据系统设计的各个子模块进行描述]
首先通过AppWizard建立应用程序框架,并新建一个工作区,取名workspace,并在该工作区下添加一个项目,命名project。
这样直至应用程序框架生成,再调用已被安装在VC++下的MeasurementStudio中的控件,如slide、knob、graph、button、numedit等。
然后便可以在对话框中进行具体模块的实现了。
5.1界面控制和波形显示子模块1实现
界面控制和波形显示模块中,通过设置图形显示控件以及两个按键(这三个控件都属于MeasurementStudio的专用控件)。
它们分别完成波形的显示、复位及退出的基本功能。
这一模块中主要应用的是控件属性的添加和变量的设置。
在控件工具栏中波形图的位置上按下鼠标并拖动鼠标画出一个适中的Graph控件。
在Graph上单击鼠标右键,选择properties对话框,分别对各个选项卡进行参数设置。
在General选项卡中,将Caption改为wave;在Plots选项卡中设置两个波形,并分别将它们的颜色改为一绿一红,分别对应数据采集模块中的两个通道;在Cursor选项卡中添加一个游标,并将其Crosshair设置为MajorX&MajorY;在Axes选项卡中设置X轴和Y轴,并将X轴的取值范围设为0—400,将Y轴的取值范围设为-1600—1600。
在属性设置完毕时,在ClassWizard中为Graph设置一个变量m_graph1,以便于以后对某些成员定义时,调用方便。
最后在工具栏中的ClassView里,对CProjectDlg进行两个变量m_wave1和m_wave2的添加,以便于对两个波形数据的存储,这便完成了该模块与波形的读取和存储模块的交互。
Graph设置完毕,接着添加两个Caption为复位和退出的按钮,用来对界面进行控制。
分别在它们各自的ClassWizard中添加ValueChanged功能,并编写相应代码如下:
1.复位按钮:
CNiMath:
:
SineWave(m_wave1,1000,500);
此处调用系统自带的正弦函数,并将正弦波存储在m_wave1变量中;
m_graph1.Plots.Item
(1).PlotY(m_wave1);
使用m_wave1中存储的数据在示波区画出编号为1的图形,m_wave1中的数据映射为
波形的纵坐标,此代码中对于变量m_graph1,引用了其属性Plots;
2.退出按钮
OnOK();
5.2波形的读取子模块2实现
在通道设置组框中,安置了两个复选框控件,用以控制相应通道采集的信号的显示。
流程如下:
在控件工具栏中复选框的位置上按下鼠标左键并拖动鼠标画出一个大小合适的复选框控件。
在控件上单击鼠标右键,在弹出的快捷菜单中选择Properties对话框,在该对话框中重新输入控件的Caption属性为Channel1。
然后再右击该复选框,选择ClassWizard对话框,在MemberVariables选项卡中为Channel1控件添加变量m_check1,在MemberMaps选项卡中为Channel1控件添加功能BN_CLICKED,最后单击EditCodes按键,进入projectDlg.cpp进行该功能相关代码的添加(Channel2设置如Channel1)。
图2“Channel1”功能、变量设置
图3“Channel1”属性设置
5.3波形的测量子模块2实现
波形的测量模块中,包含对游标中心的位置测量,分别针对波形图中的X轴和Y轴最大值的调整组框。
在游标位置测量组框中,放置了两个数据编辑框(此类型的编辑框是由MeasurementStudio环境提供的)。
这两个编辑框分别展示游标中心位于X轴和Y轴的位置。
这一测量是由在Graph中定义的功能CursorChange实现的,再将获得的数据赋给代表编辑框的变量。
具体代码如下:
m_numedit3.Value=m_graph1.Cursors.Item
(1).GetXPosition();
m_numedit4.Value=m_graph1.Cursors.Item
(1).GetYPosition();
上述代码中调用了GetXPosition和GetYPosition函数,即用此函数捕捉游标中心所在位置的X坐标和Y坐标,并分别将它们的值赋给两个编辑框变量。
6.系统测试
6.1测试环境[介绍测试环境如何搭建]
本设计中使用的开发环境是VisualC++6.0的环境下通过添加NI公司推出的集成式套件MeasurementStudio来构成的。
所以在VisualC++6.0的基础上必须嵌入集成式套件MeasurementStudio以及VisualC++6.0的更新包Vs6sp6.exe才能完成本实验。
6.2测试记录[自己设计测试用例。
]
1、
模块名称:
界面控制和波形显示
功能:
使得人机交互界面能够实现复位和退出,波形基本显示等功能。
输入:
reset按钮响应
期望的输出:
显示出正弦波形
实际的输出:
(如图)
2、
模块名称:
数据读取采集模块
功能:
将数据以波形的形式在显示区呈现出来。
输入:
read按钮响应,读取txt文件。
(文件部分内容:
-0314-0231-0170-0093-0008+0079……)
期望的输出:
将文本文件通过波形曲线显示出来。
实际的输出:
(如图)
3、
模块名称:
波形测量模块
功能:
随着设置在波形图上的游标的移动,可测量出此游标的中心所在的X轴和Y轴的坐标;并且可以通过一些控件来控制和更改图形的显示范围。
输入:
游标响应
期望的输出:
随着游标的移动,可测量出此游标的中心所在的X轴和Y轴的坐标。
实际的输出:
(如图)
7.用户试用说明书
7.1需要下载安装的软件
1、MicrosofVisualC++6.0。
2、NI公司推出的集成式套件MeasurementStudio6.0。
模拟控件工具如下(部分)。
3、MicrosofVisualC++6.0的3.0以上的更新包。
如:
Vs6sp6。
8.心得体会
通过这次综合课程设计,我更加认识到了VC++语言的神奇与魅力,在没有接触到measurementstudio之前,只了解熟悉MFC,里面的空间也都是一般2维的图像,当接触并熟悉了measurementstudio之后发现还有基于MFC下的三维和虚拟仪器的实现功能。
生动形象的控件更加加深了我对它的印象,虽然在安装measurementstudio和下载measurementstudio6.0的时候遇到了很大的麻烦,但是最终还是基本完成了。
通过本次实验,我受益匪浅,主要体现在以下几个方面:
1、学习心态方面:
当我接触到这个题目的时候,我必须先把运行环境先建立起来,但是在寻找measurementstudio和安装上遇到了很大的阻力,花了我整整一天时间才把环境建立起来,我当时就有放弃的想法,但是最终还是坚持下来了,所以我相信只要坚持就是胜利,这对于我的学习心态有很大的帮助与提高。
2.、学习内容方面:
通过本次实验,对我的知识面进行了很大的扩展,了解了虚拟仪器的measurementstudio环境的基本操作。
3、团结合作方面:
通过本次实验,我深刻的认识到了合作的必然性与统一性,虽然我们做的方面不一样,但之间都有既对立又统一的联系,可以互相纠错,互相帮助。
9.参考文献
[1]杨乐平,李海涛.虚拟仪器技术概论[M].北京:
电子工业出版社,2003.
[2]张易知.虚拟仪器的设计与实现[M].西安:
西安电子科技大学出版社,2002.
[3]黄维通,姚瑞霞.VisualC++程序设计教程[M].北京:
机械工业出版社,2001.
[6]木林森.VisualC++6.0使用与开发[M].北京:
清华大学出版社,1998.
[7]陈建春.MicrosoftVisualC++图形系统开发技术基础[M].北京:
电子工业出版社,1998.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正弦波 信号 采集 数据 分析 程序设计