QT任意波发生器_第1页
QT任意波发生器_第2页
QT任意波发生器_第3页
QT任意波发生器_第4页
QT任意波发生器_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...基于QT的任意波形数据生成软件设计摘要随着电子测量技术与计算机技术的严密结合,一种新的信号发生器——任意波形发生器应运而生。用户可以用它生成任意复杂波形,因而具有广阔的应用前景。任意波形发生器是应用越来越广泛的一种信号源,而国内在任意波形发生器的研制方面相对较晚,推出的产品很少,市场占有率几乎为零。因此,对任意波形发生器的研制进展深入的研究已成为测试领域的一个新的课题,同时对于促进虚拟仪器技术的开展、应用以及适应自动测试系统的组建和完整性要求都具有深远的意义。本设计是基于QT软件来实现任意波数据的生成,本系统包含有根本波形模块,谐波模块,手绘波形模块,根本波形合成模块。QT的模块程度更高、运行速度快、本钱低、开发方便并且全部都是开放源代码。本任意波形发生器不仅能产生正弦波、方波、三角波等常用的标准信号,也可以将几种根本波形进展合成,并根据用户的需要生成任意波形,对于目前三种典型的任意波形发生器——PC总线插卡式,独立仪器,VXI模块都有重要的参考价值。关键词:波形发生器,任意波形,QT,LinuxQT-BASEDARBITRARYWAVEFORMGENERATIONSOFTWAREDESIGNDATAABSTRACTInmodernelectronicmeasuringinstruments,testexcitationsignalgeneratorusedisakindofveryimportantinstrument,closelyintegratedwiththeelectronicmeasurementtechnologyandcomputertechnology,anewsignalgenerator-cameintobeingarbitrarywaveformgenerator.Relativelylateinthedevelopmentofthedomesticaspectsofthearbitrarywaveformgenerator,developmentandapplicationoftheproductisrelativelydevelopedmoreslowly.Therefore,thedevelopmentofanarbitrarywaveformgeneratorin-depthresearchhasbecomeanewsubjectareastested,whileallhavefar-reachingsignificanceforpromotingthedevelopmentandapplicationofvirtualinstrumenttechnologyandtheautomatictestsystemtoadapttotheformationandintegrityrequirements.Inthispaper,basedontheanalysisofexistingwaveformgeneratordesignscheme,basedonQTsoftwaretoachievearbitrarywaveformdatatogenerateahigherdegreeofQTmodule,runningspeed,lowcost,easytodevelopandareallopensource.Sowhetheritisbasedonthedevelopmentofelectronictechnology,marketdemandorsoftware-basedquickandeasytouseQTtoachievearbitrarywaveformdatagenerationisgroundbreakingandisstillverynecessary.Thearbitrarywaveformgeneratorcangeneratearbitrarywaveformsaccordingtotheuser'sneeds,thecurrentthreetypicalarbitrarywaveformgenerator-PCbusplug-in,independentinstrument,VXImodulehasimportantreferencevalue.KEYWORDS:WaveformGenerator,ArbitraryWaveform,QT,Linux目录27099前言122137第1章绪论229903§1.1课题来源、目的及意义216938§1.2任意波形数据生成的国内外研究现状28750§1.3当前主要任意波形数据生成的根本方式49814§1.3.1基于VXI的数字信号处理法 430710§1.3.2软件合成法 418624§1.3.3直接数字频率合成 59618§1.4本文主要研究内容6250第2章系统软件设计715068§2.1系统总体设计框图7983§2.2根本波形的设计829744§2.3谐波的设计1429625§2.4手绘波形的设计1711285§2.5根本波形合成的设计209223第3章使用说明书2218257§3.1主操作界面2212679§3.2参数输入界面2322102§3.2.1谐波参数输入界面 2324192§3.2.2根本波参数输入界面 2416243§3.2.3手绘波形界面 2422716§3.3操作步骤说明257978第4章测试分析报告26240§4.1按键事件的功能测试2614491§4.2参数输入的功能测试2917940§4.2.1谐波参数输入的测试 2924039§4.2.2根本波形参数输入的测试 3031911§4.3手绘波形的功能测试3414574第5章系统测试结果356394结论 3924289参考文献4011513致谢 41前言随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速开展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向开展。任意波发生器在工业生产、科研实验中获得了越来越广泛的应用;如在雷达、通讯、仿真、电子、生物、机械、计算机等一系列系统测试中,都要用到任意波发生器;尤其是在要求同步输出任意波形的场合以及需要产生复杂波形信号的场合,任意波发生器具有特别的优势。可见,为适应现代电子技术的不断开展和市场需求,研究制作高性能的任意波数据生成器十分有必要,而且意义重大。QT是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供应应用程序开发者建设艺术级的图形用户界面所需的所有功能。QT是面向对象的框架,使用特殊的代码生成扩展以及一些宏,易于扩展,允许组件编程。本设计是基于QT软件来实现任意波数据的生成,QT的模块程度更高、运行速度快、本钱低、开发方便并且全部都是开放源代码。所以不管是基于电子技术的开展、市场的需求还是基于软件的方便快捷,使用QT来实现任意波数据的生成是开创性的并且还是十分有必要的。第1章绪论§1.1课题来源、目的及意义波形发生器即通常所说的信号发生器是一种常见的信号源,广泛应用与电子电路、自动控制和科学试验领域,是一种为电子测量工作提供符合严格技术要求的电信号设备。随着现代电子技术的飞速开展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产生正弦波,方波等标准波,还能根据需要产生任意波形,切操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动实验、动态分析、材料实验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的根本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以及利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。但市场上能看到的仪器在频率精度、宽带、波形种类及控制方面都已不能满足许多方面的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。§1.2任意波形数据生成的国内外研究现状任意波形发生器是随着众多领域对于复杂的、可由用户定义的测试信号波形日益增长的需要,以及不断进步的计算机技术和微电子技术在测量仪器中的应用而形成和开展起来的一类新的测试仪器。作为当代最新的一类信号源,引起了世界各国的广泛重视,纷纷投入人力物力进展研究制作。主要现状如下:第一,研究制作的任意波形发生器主要有独立的台式仪器和适用于个人计算机的插卡以及VXI模块。第二,主要采用了直接数字频率合成技术(DirectDigitalfrequencySynthesis,简称DDS),研究制作根本上均采用了软件结合硬件的方式。虚拟仪器开发编程语言LabWindows/CVI、汇编语言、VisualBasic、VisualC、EDA开发软件及硬件描述语言等软件和FPGA、CPLD、DSP芯片及高速存储器、高速D/A转化器、单片机等硬件被广泛应用。第三,大量使用各种高速器件提高时钟频率,使任意波形发生器输出波形频率不断提高,能应用于越来越广泛的领域。第四,使用各种计算机语言开发任意波形发生器波形编辑软件和操作软件面板,使任意波形发生器的操作控制或任意波形数据生成变得更加方便和容易,允许徒手从计算机显示屏上输入任意波形。上位机于任意波形发生器硬件模块广泛使用RS-232/485、GPIB等总线进展数据通信,近年,USB接口也逐步被广泛研究和应用。第五,与VXI资源结合。由于VXI总线的逐步成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量和产生复杂的波形,VXI的系统资源提供了明显的优越性。但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得VXI的任意波形发生器模块仅限于航空、军事及国防等大型领域,在民用方面,VXI模块远远不如台式仪器更为方便[4]。就任意波形发生器技术而言,目前引领技术潮流的仍是国外的几大仪器公司,如美国国家仪器NI,美国安捷伦〔Agilent〕公司,美国泰克〔Tektronix〕公司,从台式机到插卡式模板都有不同档次的产品。泰克公司的任意波形发生器产品在波形合成上采取了传统技术与DDS技术相结合的方式,使输出波形的质量很高。Agilent公司是单纯的采用DDS技术来合成波形,这样在电路构造上要简单得多,性价比很高。代表性的产品有NI发布的NI5412,Agilent33220A函数/任意波形发生器,美国泰克公司研制的AFG3000系列的任意波形发生器等,这些波形发生器都具有易于操作、高频率分辨率和宽频率范围等特点。这些产品代表了任意波形发生器的开展趋势:即更高取样率,更高分表率,更大存储量和更丰富的人机接口界面[6]。目前我国已开场研制任意波形发生器,并取得了可喜的成果。但总的来说,我国任意波形发生器还没有形成真正的产业。就目前国内成熟的产品来看,多为一些PC仪器插卡,独立仪器和VXI系统的模块很少,并且我国目前任意波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。任意波形发生器作为信号发生器家族的一个新的成员,技术开展十分迅速,市场份额也日渐扩大,其状况和地位有如示波器家族中的数字存储示波器,以美国TEK公司为代表的国际各大电子测量仪器公司,其任意波形发生器产品已经纷纷形成系列,开场逐步取代传统的函数发生器,可以说任意波形发生器已经成为信号源的开展方向。§1.3当前主要任意波形数据生成的根本方式§1.3.1基于VXI的数字信号处理法VXI总线以其开发的系统构造、模块化的设计、紧凑的机械构造、良好的电磁兼容性等一系列优点,在众多军事、工业、商业等领域受到日益广泛的应用。基于VXI总线的任意波形生成将实现仪器的高速、模块化,可以通过PC机调用任意波形生成的软件面板来对仪器进展控制,具有测试精度高、使用空间小等特点。作为当代一类新型的信号源,在设计上它不仅保存了传统台式任意波形发生器所具有的各种功能,而且较传统波形发生器产生波形的种类多、频率高,可由计算机直接控制。作为一种基于VXI总线的卡式仪器,它可以很方便地与VXI总线测试系统集成,很大限度的发挥计算机和微电子技术在当今测试领域中的应用,具有一定的应用和开展前景。基于VXI总线任意波形发生器是数字式信号发生器,数字信号处理法采用数字信号处理器〔DSP〕实现任意波形合成。用DSP求解一个数字递推关系式产生出波形的离散序列,输出给D/A转换器,可以获得较高频率的波形信号。这种方法需要专用DSP开发系统,而且存在输出频率不连续可调和控制不便的缺点[7]。§1.3.2软件合成法软件合成法是由计算机软件,根据幅值、频率、相位计算出产生高精度波形所需数据表,计算机将离散序列送经D/A转化器和滤波器输出。这种方法是优点是电路简单,缺点是不能产生高频率的信号。造成信号频率低的原因是数据读取速度受计算机指令执行时间的限制,仅靠提高存储器本身存取速度和D/A转换器的速度不可能解决信号带宽问题。§1.3.3直接数字频率合成DDS是从相位概念出发直接合成所需要波形的一种新的频率合成技术。DDS是把一系列数字量信号通过D/A转换形成模拟信号的合成技术。主要是利用高速存储器作查询表,然后通过高速D/A转换器产生已经用数字形式存入的正弦波〔或其他任意波形〕[14]。一个典型的DDS系统应包括:参考时钟,正弦查找表,相位累加器,D/A转换电路和滤波器等组成[5],如图1-1所示。波图1-1典型DDS系统随着数字信号处理理论和方法引入到频率合成领域中,任意波形发生器使用直接数字合成的方式可以方便的产生各种需求的波形。将图1-1中的正弦查找表用波形存储器来替代[10],得到图形如图1-2所示。每个波形存储器中存储一个周期的任意波形信号,周期由假设干波形点构成,而波形点和相位一一对应,所以又相当于一个相位/振幅变换器,振幅信息通过D/A转换器生成阶梯波形,经过滤波得到需要的波形。波指定频率正弦波图1-2任意波形DDS系统波指定频率正弦波§1.4本文主要研究内容本设计是基于QT软件来实现任意波数据的生成,属于直接数字信号合成。QT的模块程度更高、运行速度快、本钱低、开发方便并且全部都是开放源代码。QT还是面向对象,具有优良的跨平台性,以及大量的开发文档等,这些优越性使我们在开发任意波软件时具有更多的优势。QT的界面设计十分强大,使软件更加符合人们的要求,更加的人性化。总之基于QT软件开发任意波形的生成对于降低本钱、提高系统的可靠性、灵活性、适应性,缩短开发周期,具有重大的实际意义。本设计的主要工作如下:1、分析任意波形数据生成的开展、分类、及各种任意波形生成的方法。2、进展软件局部设计及测试:根据系统要实现的功能画出本系统的软件流程图,编写C++源代码,并进展编译、修改直到达满意的结果。3、系统模块调试:软件整体设计完毕后,对各个模块就行测试、修改直到达满意的结果。4、对设计的系统进展测试,获得测试的波形,并且进展波形分析。第2章系统软件设计§2.1系统总体设计框图本系统是基于QT进展的纯软件开发设计,本系统包含有四大模块,分别为:根本波形生成模块,谐波生成模块,手绘波形生成模块,根本波合成波根本波形生成根本波形生成谐波生成手绘波形根本波合成主控制器图2-1系统总体设计框图根本波形共有18种标准波形分别为:正弦波、余弦波、正切波、余切波、升指数、降指数、正半波、负半波、正全波、负全波、噪声、抽样函数、高斯函数、直流、方波、三角波、锯齿波、负锯齿。本设计的谐波是基于正弦波实现的。手绘波形是建设一个窗口,在这个窗口里用户可以用鼠标点击移动画线,根据用户自己的要求,可以画出用户想要的波形。根本波形的合成是基于根本波形的根基上,在任意波形任意相位任意点处,与任意波形连接,也可以是在某些位置处和其他波形合成,形成一个新的波形。本系统的流程图如图2-2所示。初始化有键按下NY谐波根本波形手绘波形参数选择参数选择参数选择显示输出继续添加波形N初始化有键按下NY谐波根本波形手绘波形参数选择参数选择参数选择显示输出继续添加波形NY开场完毕图2-2系统流程图§2.2根本波形的设计在根本波形的设计前要先进展QT窗口的建设,设计主操作界面,使用QT进展窗口程序设计的一般流程如图2-3所示。对于创立一个新的QT应用程序来说,QT使用一个projectworkspace来存储该工程所需的所有文件,其中projectworkspace就是一个文件夹,与工程相关的文件存储在该文件夹下。而一个工程又由一定数量的文件组成,如果要生成一个可执行程序,文件必须包括cpp文件和头文件,而这些文件通常都存储在同一工作区文件夹中。我们在New选择一个工程类型,创立一个新的GUIapplication首先从菜单单栏中选择File项翻开如图2-4和图2-5所示。创立工程目录新建工程创立图形界面编写代码生成main.c根据工程文件生成.wvt文件编译并运行创立工程目录新建工程创立图形界面编写代码生成main.c根据工程文件生成.wvt文件编译并运行图2-3QT窗口设计流程在图2-4所示的New对话框中选C++,选择子项GUIApplication工程类型。当开场一个新工程里首先想好三项内容。第一项内容是工程类型是什么;第二项内容是工程名称是什么;第三项内容是是否需要创立界面。图2-6工程是否需要创立界面〔需要的话,创立界面上打上勾〕。图2-4File子菜单图2-5New对话框图2-6含一个活开工作区的IDE窗口设计主操作界面:界面直接表现一个应用程序的功能。QT提供应应用程序开发者建设艺术级的图形用户界面所需的所用功能。主界面主要包括对话框,工具栏和菜单栏,它们可以将应用程序的所有功能与界面中的控件或菜单命令联系起来。主界面窗口大小为600*500的,包含一个tableView和九个按键。TableView是为了显示当前生成的波形的根本信息。如图2-7。信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。图中九个按键分别为添加波形、添加谐波、手绘、删除、保存、关于、清空、翻开、退出。这九个按键的槽函数分别为:add_bx_signal、add_signal、tuyaban、del_signal、save_file、about_software、clear_signal、open_file、Quit。我们在设置槽函数时,要先在头文件声明槽函数[13],头文件中有三个区域,分别为:publicslots、protectedslots和privateslots。图2-7主界面的运行界面publicslots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创立彼此互不了解的对象,将它们的信号与槽进展连接以便信息能够正确的传递。protectedslots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一局部,但是其界面接口却面向外部。privateslots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常严密的类。我们以上九个槽函数都属于这一类型。以上是创立类以及设置主窗口的根本操作,根本波形、谐波、手绘及根本波合成都是在此根基上来进展研发的。根本波形首先是在系统的mix类中,它的程序流程图如图2-8所示。理据继续添加波形YN数开场完毕图2-8根本波形的程序流程图共模块共包含有18种根本波形,它的设计界面如图2-9。图2-9根本波形的设计界面此模块包含有波形、幅值、相位、起始点、终止点、确定及取消。波形的槽函数为comboBox,包含有18个根本波形,可以任意选择根本波形;幅值为am,最大值为100,最小值为0;相位为ph,最大为360;起始点和终止点范围为0到32768;确定的槽函数为dialog_ok;取消的槽函数为dialog_cancel。这几个槽函数的定义都在mix的头文件中privateslots中。波形中正弦波为sin_generate_wave,正弦波的程序如下:for(i=start;i<end;i++){temp=i;temp/=32768.0;temp*=count;temp*=3.141592653;temp=sin(temp+phase/360*2*3.141592653);temp+=1.0;temp/=2.0;temp*=(16383.0*amplitude/100);*(p+i)=temp+*(p+i);}其他还有余弦波cos_generate_wave,正切波tan_generate_wave,余切波cot_generate_wave,直流dc_generate_wave,升指数expf_generate_wave,降指数expr_generate_wave,负全波full_n_generate_wave,正全波full_p_generate_wave,高斯函数gaus_generate_wave,负半波half_n_generate_wave,正半波half_p_generate_wave,噪声noise_generate_wave,抽样函数sinc_generate_wave,方波square_generate_wave,三角波triangle_generate_wave,锯齿波sawtooth_generate_wave,负锯齿fusawtooth_generate_wave。这些函数定义都在头文件的publicslots中,函数程序与正弦波的函数程序相类似。§2.3谐波的设计谐波在设计中首先要创立属于谐波的类,创立类的过程见2.2根本波形类的创立。本次设计的谐波属于dialog类中,它的程序流程图如图2-10所示。数波计算出波Y开场完毕N图2-10谐波的程序流程图添加谐波的设计界面如图2-11。图2-11添加谐波的设计界面此界面包含有谐波次数、幅度比例、信号相位、确定及取消。谐波次数能选择2-100次;幅度大小为0-100;相位为0-360。确定和取消的槽函数为dialog_ok和dialog_cancel,属于privateslots。谐波的设计程序为:intwave_count;//定义wave_countdoublewave_amplitude;//定义wave_amplitudeintwave_phase;//定义wave_phaseboolok;//申请布尔变量okdoublewave_temp_data[32768];//32768个数组generate_wave(wave_data,2,100.0,0);//产生基波for(inti=0;i<model->rowCount();i++){wave_count=model->item(i,0)->text().toInt(&ok,10);wave_amplitude=model->item(i,1)->text().toDouble(&ok);wave_phase=model->item(i,2)->text().toInt(&ok,10)%360;generate_wave(wave_temp_data,wave_count,wave_amplitude,wave_phase);for(intk=0;k<32768;k++)wave_data[k]+=wave_temp_data[k];}wave_data_process(wave_data,32768);show_wave(wave_data,32768);//显示图形returntrue;如图2-12选择谐波次数50次,幅值100,相位0。图2-12谐波参数选择界面生成的图形如图2-13。图2-13谐波生成图形§2.4手绘波形的设计手绘波形在设计中首先要创立属于手绘的类,创立类的过程见2.2根本波形类的创立。手绘波形属于tuyaban这一类,此模块的程序流程图如图2-14所示。手绘界面设置窗口大小为600*500。设计手绘波形需要三个事件,鼠标点击事件、移动鼠标事件和松开鼠标事件,分别为paintEvent、mousePressEvent和mouseReleaseEvent。当点击鼠标时记录一个坐标点〔横坐标和纵坐标〕,移动鼠标,松开鼠标时再记录一个坐标点。然后判断两点间是否有其他波形,覆盖原有的波形,显示新的波形。鼠标点击鼠标点击判断两点中是否有其他数值Y覆盖原数据N输出波形鼠标松开移动开场完毕图2-14手绘波形的程序流程图手绘波形编程的难点在于坐标的处理。inti;//定义变量idoublek,b,temp;//定义变量k,b,tempintstart,end;k=0;b=0;//起始位置的x值大于终止位置的x值的数据处理if(endPoint.x()>lastPoint.x()){temp=((500-endPoint.y())*32-(500-lastPoint.y())*32);temp/=(endPoint.x()*64-lastPoint.x()*64);k=temp;b=(500-endPoint.y())*32-k*endPoint.x()*64;if(endPoint.x()>500){end=500*64;}else{end=endPoint.x()*64;}if(lastPoint.x()*64<0){start=0;}else{start=lastPoint.x()*64;}for(i=start;i<end;i++){random_wave_data[i]=b+k*i;}}else{temp=((500-lastPoint.y())*32-(500-endPoint.y())*32);temp/=(lastPoint.x()*64-endPoint.x()*64);k=temp;b=(500-endPoint.y())*32-k*endPoint.x()*64;if(lastPoint.x()>500){end=500*64;}else{end=lastPoint.x()*64;}if(endPoint.x()<0){start=0;}else{start=endPoint.x()*64;}for(i=start;i<end;i++){random_wave_data[i]=b+k*i;}}QPainterpp(&pix);//根据鼠标指针前后两个位置就行绘制直线pp.fillRect(1,1,500,400,Qt::white);for(i=0;i<499;i++)pp.drawLine(QPointF(i,500-(random_wave_data[i*64]/32)),QPointF((i+1),500-(random_wave_data[(i+1)*64]/32)));//让前一个坐标值等于后一个坐标值,这样就能实现画出连续的QPainterpainter(this);painter.drawPixmap(0,0,pix);§2.5根本波形合成的设计手绘波形属于mix这一类,此模块的程序流程图如图2-15所示。根本波形的合成是基于根本波形生成的,本设计在设计根本波形的合成时是保存根本波的数据,当再一次添加根本波形时,将现有的数据与保存的数据进展叠加来进展合成的。根本波形合成运用的界面是和添加根本波形的界面如图2-9一样的。输入参数开场输入参数开场数据处理数据处理输出数据输出数据数据保存数据保存Y继续添加波形Y继续添加波形NN完毕完毕图2-15根本波合成程序流程图第3章使用说明书§3.1主操作界面该界面属于主要操作控制界面。功能:实现添加根本波形、添加谐波、手绘波形、保存等功能。如图3-1所示。以下为区域和按钮功能介绍。图3-1主操作界面区域①:显示当前波形的参数。区域②:波形显示区。按钮③:点击可实现添加根本波形以及合成波形的功能。按钮④:点击可实现添加谐波的功能。按钮⑤:点击可实现手绘任意波形的功能。按钮⑥:删除当前选中的波形参数。按钮⑦:保存当前波形为.wvt文件格式。按钮⑧:点击能查询该软件的相关信息。按钮⑨:点击能够清空当前所有的波形数据。按钮⑩:点击翻开.wvt格式文件。按钮⑪:点击退出软件。§3.2参数输入界面§3.2.1谐波参数输入界面该界面属于设定谐波参数界面。功能:设定谐波参数。如图3-2。以下为具体区域和按钮功能介绍。图3-2添加谐波界面区域①:选择谐波次数,范围为2-100。区域②:选择谐波的幅值参数,范围为0-100。区域③:选择谐波的信号相位,范围为0-360。按钮④:点击进入主操作界面显示谐波波形。按钮⑤:点击返回到主操作界面。§3.2.2根本波参数输入界面该界面属于设定根本波形参数的界面。功能:设定根本波形参数、实现根本波的合成。如图3-3。以下为具体区域和按钮功能介绍。图3-3设定根本波形参数界面区域①:选择波形类型,要进展不同波形合成,就继续添加波形。区域②:设定波形的幅值,范围为0-100。区域③:设定波形的相位,范围为0-360。区域④:设定波形的起始位置,范围为0-32768,半个周期为16384,四分之一周期为8192,四分之三周期为24576。区域⑤:设定波形的终止位置,范围为0-32768。按键⑥:点击转入主界面,显示波形。按键⑦:点击返回到主界面。§3.2.3手绘波形界面该界面属于手绘波形的界面。功能:实现手绘任意波的功能。如图3-4。以下为具体区域和按钮功能介绍。区域①:手绘区。按键②:点击将手绘区的波形复制到主界面的波形显示区。按键③:点击返回到主操作界面。图3-4手绘波形界面§3.3操作步骤说明本系统进入主操作界面后,可以根据需要点击主操作界面按键③,进入到添加波形界面或点击主操作界面按键④,进入添加谐波界面或点击主操作界面⑤,进入到手绘波形界面。根据自己的需求,选择自己的参数、类型或者画出自己的波形图,点击确定在主操作界面区域②显示出生成的波形。可以继续添加波形,合成新的波形,也可以点击主操作界面按键⑦保存所生成的波形。点击主操作界面按键⑪退出系统。第4章测试分析报告§4.1按键事件的功能测试主操作界面的按键功能测试。点击主操作界面按键③添加波形按键,弹出图4-1所示对话框。测试结果正常。图4-1根本波形参数输入界面点击主操作界面按键④添加谐波按键,弹出图4-2所示对话框。测试结果正常。图4-2谐波参数输入界面点击主操作界面按键⑤手绘按键,弹出图4-3所示对话框,测试结果正常。点击主操作界面按键⑥删除按键,如图4-4所示。测试结果正常。点击主操作界面按键⑦保存按键,弹出保存界面如图4-5。测试结果正常。点击主操作界面按键⑥关于按键,弹出介绍该软件的对话框如图4-6。测试结果正常。图4-3手绘操作界面图4-4波形合成点击主操作界面按键⑦清空按键,如图4-7所示。测试结果正常。点击主操作界面按键⑧翻开按键,弹出翻开文件对话框,如图4-8。测试结果正常。点击主操作界面⑨退出按键,直接退出软件。测试结果正常。图4-5保存界面图4-6关于软件界面图4-7清空功能图4-8翻开界面§4.2参数输入的功能测试§4.2.1谐波参数输入的测试在谐波参数输入界面区域①谐波次数选择50次,区域②幅值比例输入最大值100,区域③相位输入0,点击按键④确定。输出波形如图4-9。测试结果正常。§4.2.2根本波形参数输入的测试首先测试根本波形是否显示正常。在根本波参数输入界面区域①波形选择区,选择正弦波,在区域②幅值区域输入幅值100,在区域③相位区域输入0,在区域④起始位置输入0,在区域⑤终止位置输入32768,点击按键⑤确定按键,输出波形如图4-9(a)。测试结果正常。图4-9谐波显示a正弦波b余弦波图4-9分别测试其他几种波形。图4-9(b)为余弦波;图4-10为直流〔a〕和升指数〔b〕;图4-11为降指数〔a〕和噪声〔b〕;图4-12为全波(a)和正全波(b);图4-13为高斯函数〔a〕和抽样函数〔b〕;图4-14为负半波〔a〕和正半波〔b〕;图4-15为方波(a)和三角波〔b〕;图4-16为锯齿波〔a〕和负锯齿〔b〕。a直流b升指数图4-10a降指数b噪声图4-11a负全波b正半波图4-12a高斯函数b抽样函数图4-13a负半波b正半波图4-14a方波b三角波图4-15a锯齿波b负锯齿图4-16§4.3手绘波形的功能测试点击主操作界面按键⑤手绘,进入到手绘图形的功能界面。在手绘波形界面区域①绘制图形如图4-17所示。点击手绘波形按键③确定得到图4-18,测试结果正常。图4-17手绘界面图4-18主界面第5章系统测试结果测试各个模块后,对整体系统进展测试。首先添加根本波形正弦波,显示前半个周期,紧接着添加抽样函数后半个周期,结果如图5-1。选择删除sinc波形,改为添加余弦波后半个周期如图5-2所示。图5-1波形合成显示图5-2波形合成显示这是测试不同波的衔接,下来测试不能波形的合成。首先选择正弦波,幅值设为50,一个周期,再接着选择高斯函数前半个周期,重叠的地方就合成新的图形,如图5-3所示。图5-3波形合成显示点击添加谐波选择谐波次数10次,幅值100,能够直接在主界面上显示谐波,不需要去除以前的波形,还能在主操作界面区域〔2〕,把显示的转换成谐波所有的参数,如图5-4。显示完之后还可以继续添加谐波,能够一直添加,如图5-5。图5-4谐波生成图5-5谐波生成当主操作界面有波形时点击手绘会提示你是否保存文件,如图5-6所示,点击yes或者no后会去除当前主操作界面所有数据,然后进入到手绘界面。图5-6进入手绘界面第六章工程开发总结本设计是基于QT的任意波数据生成,通过设计实现任意波的生成,包括根本波形的生成,谐波的生成,手绘波形以及根本波形的合成。本设计主要完成的工作如下:1、掌握QT软件的根本操作方法。2、熟悉C++编程语言的编程标准。3、学会了关于GUI的界面设计及程序编写并设计了系统界面。4、编写了根本波形、谐波、手绘波形和根本波形合成模块的程序,最终完成了系统的设计。本系统能根本完成日常任意波的运用需要,包含了大多数的基本波形,很有实用价值。但是本系统设计也有缺陷,仍然有许多改良的地方,比方手绘界面做的还相比照拟粗糙,不够精细;不能在任意一个位置处添加一个完整周期的波形,只能够在几个波形一样位置处衔接波形;根本波形中有很多波是没有相位的,所以有些地方处理的还不妥当。通过开发该工程,使我掌握了使用QT软件,并且更加熟练的运用C++程序语言编写程序,更加明白设计中一些细节的重要性,也更明白与人沟通的重要性。在工程进展的过程中,我们要不断的去整理自己的工作情况和做好总结,这样以来,无论是在自己的技术还是其他方面,都会对我们有很大提高,在长期的积累后,我们个人能力会有极大的提高。结论本文根据工业的需求提出了基于QT的任意波形数据生成的软

温馨提示

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

评论

0/150

提交评论