《基于LabVIEW的数据采集与处理技术》课件第7章_第1页
《基于LabVIEW的数据采集与处理技术》课件第7章_第2页
《基于LabVIEW的数据采集与处理技术》课件第7章_第3页
《基于LabVIEW的数据采集与处理技术》课件第7章_第4页
《基于LabVIEW的数据采集与处理技术》课件第7章_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第7章LabVIEW中信号分析与处理7.1WaveformGenerationVI模块7.2WaveformMeasurementsVI模块7.3WaveformConditioningVI模块7.4WaveformMonitoringVI模块本章小结练习与思考

7.1WaveformGenerationVI模块

WaveformGenerationVI模块为波形发生模块,主要用来产生波形仿真信号。本书中为了方便程序模块的调试,在很多时候用这个模块产生仿真信号来测试我们的程序。这样,可以不必每次调试都连通真实的信号源或被测对象。

WaveformGenerationVI包括的VI的功能如表7-1所示。下面,通过几个简单的实例来说明WaveformGenerationVI的使用方法。

1.利用BasicFunctionGenerator.vi产生常见的波形

利用BasicFunctionGenerator.vi产生的常见波形有正弦波、三角波、方波和锯齿波四种,其中,可利用产生的标准正弦信号对测试程序本身进行自检。该实例的产生信号的前面板图和相对应的流程框图分别如图7-1和图7-2所示。图7-1BasicFunctionGenerator.vi产生信号的前面板图图7-2

BasicFunctionGenerator.vi产生信号的流程框图在前面板的操作面板中,我们既可以选择产生正弦波、三角波、方波或者是锯齿波,也可以改变频率、幅值和相位等

参数来改变具体波形的属性。在这个实例中用到的VI主要有两个:

1) BasicFunctionGenerator.vi

BasicFunctionGenerator.vi位于Function→Analyze→WaveformGeneration中,其图标和端口如图7-3所示。图7-3BasicFunctionGenerator.vi端口功能:产生一个基本的函数信号(正弦波、三角波、方波、锯齿波)波形。

主要端口说明:

offset:信号直流偏移,默认值为0.0。

resetsignal:是否将信号复位。此端口只有在进行连续运行时有效。默认值为False,即下次产生的信号延续前次信号结束时的时间和相位,相当于连续采集。当设置为True时表示每次产生的信号相当于将信号复位至初始时间为0,初始相位为相位端口的设定值。

signaltype:信号类型,包括正弦波、三角波、方波和锯齿波。

frequency:信号频率。

amplitude:信号幅值。

phase:信号初始相位。

errorin(noerror):错误信息输入。

samplinginfo:采样信息设置。可以设置采样频率和采样点。

squarewavedutycycle(%):方波的占空比。

signalout:输出的信号。

phaseout:信号采样结束时的相位。

errorout:错误输出。

2) FFTPowerSpectrum.vi

FFTPowerSpectrum.vi位于Function→Analyze→WaveformMeasurements中,其图标和端口如图7-4所示。图7-4FFTPowerSpectrum.vi端口功能:计算信号的功率谱密度。

主要端口说明:

restartaveraging:平均处理是否重置。

timesignal:输入的时间信号。

window:指定时域窗函数类型。

dBOn(F):设定表示结果是否表示为分贝,默认值为False。

errorin:错误输入。

averagingparameters:平均处理参数。

averagingdone:若已完成平均数大于或等于平均参数中指定的平均数目,将返回TRUE,否则返回FALSE。

powerspectrum:返回功率谱密度值(这里的返回值为簇类型,我们可以根据实际需要分解出所需要的参数),包括起始频率f0、间隔频率df和平均功率谱密度幅值。

averagescompleted:返回到目前为止平均处理完成的数目。

errorout:错误输出。

这个实例比较简单,BasicFunctionGenerator.vi模块各项参数的设置很容易,只需要按照所需的参数值设置就可以得到预期的模拟信号源。在以后的例子中,我们仍利用BasicFunctionGenerator.vi产生所需要的模拟信号。

2.利用Simulatesignal.vi产生复杂的波形信号

前一个实例中,我们利用BasicFunctionGenerator.vi产生了几个最为常见的波形信号,本实例中我们利用另外一个VI来产生更为复杂的波形信号。Simulatesignal.vi是LabVIEW7.1中新出现的一个VI,它的功能很强大,几乎包括了WaveformGenerationVI中所有的功能。它的使用比较简单,只要将输出和我们的输入接口相连接就可以了。例如,若要产生正弦波,只需设置好Simulatesignal.vi的属性。在流程框图中双击Simulatesignal.vi的图标或者单击右键,在弹出菜单中选择属性,我们就可以看到如图7-5所示的属性图。图7-5Simulatesignal.vi的属性图在Signal栏中我们可以对信号的类型、频率、相位、幅值和偏移进行设置(当然,也可以在前面板中对这些属性进行设置)。在选中了Addnoise栏后,可以根据需要对产生信号加入不同的噪音。SimulateSignal.vi产生信号的前面板图和流程框图分别如图7-6和图7-7所示。通过Simulatesignal.vi,我们可以看出NI在对程序模块化方面所做的努力,尽量简化例行的操作,从而使得用户把精力放在整个程序的构建上来。类似地,也可以从Function→ExpressVI所出现的模块中选择所需要的模块来简化我们的应用程序。图7-6Simulatesignal.vi产生信号的前面板图图7-7Simulatesignal.vi产生信号的流程框图图7-8所示为正弦波信号加入伯努利噪音信号后的示意图。图7-8正弦波信号加入伯努利噪音信号后的示意图7.2WaveformMeasurementsVI模块

WaveformMeasurementsVI为波形测量模块。该模块提供的功能包括了交直流成分分析、振幅测量、脉冲测量、傅立叶变换、功率谱计算、谐波失真分析、过渡分析、频率响应等。表7-2中列出了波形测量模块所有的子模块。下面通过几个简单的实例来介绍WaveformMeasurementsVI的使用方法。

1.计算输入信号的直流分量和信号的均方根

在学习虚拟仪器的概念时,我们常把用硬件电路实现直流分量计算、信号均方根计算与用虚拟仪器来实现这两项参数计算做比较,可以看出,虚拟仪器的实现非常简单而且符合常规数学逻辑思路。这里,我们再次使用这个例子是为了说明在LabVIEW中进行这样的工作更为简单易行。该测试程序的前面板图和流程框图分别如图7-9和图7-10所示。图7-9直流和均方根值的计算前面板图图7-10直流和均方根值的计算流程框图下面对本例中所用到的VI作一详细介绍:

BasicAveragedDC-RMS.vi位于Function→Analyze→WaveformMeasurements中,其图标和端口如图7-11所示。

功能:用于计算输入信号的直流分量和信号的均方根。

主要端口说明:

reset:重置控制。

signalin:输入信号。

averagingtype:平均值类型,在这里可选择线性方式和指数方式两种。图7-11BasicAveragedDC-RMS.vi端口

window:选择窗函数。

errorin:错误输入。

DCvalue:计算的直流分量值。

RMSvalue:计算的均方根值。

errorout:错误输出。

measurementinfo:测量信息。

在编写程序时,需要注意以下几点:

(1)模拟信号源。本例中,我们利用一个数值型输入控件来模拟直流分量,取值为3V。利用SineWaveform.vi来产生一个振幅为2,频率为10Hz的正弦信号。然后将模拟的正弦信号和直流分量相加生成我们所需要的模拟信号源。这样做也是为了在计算输入信号的直流分量和信号的均方根时对计算结果有一个较为直观的解释和对比。

(2)计算输入信号的直流分量和信号的均方根。对于输入的模拟信号,我们利用BasicAveragedDC-RMS.vi进行分析,可以直接得到直流分量和信号的均方根。如图7-9所示,直流分量值为3.00,均方根值为3.32,这符合我们的预期。

2.提取振幅最大的谐波信号

在一些实际工程应用中,对于采集到的信号进行分析时,可能希望检测到振幅最大的信号。例如,在振动检测中,振幅最大的信号往往是我们希望得到的信号特征。下面的例子就是利用ExtractSingleToneInformation.vi来对模拟信号源进行分析,从而得到其振幅最大的信号分量。

下面对本例中所用到的VI作一详细介绍:

ExtractSingleToneInformation.vi位于Function→Analyze→WaveformMeasurements中,其图标和端口如图7-12所示。图7-12ExtractSingleToneInformation.vi端口功能:用于提取信号振幅最大的谐波分量。

主要端口说明:

timesignalin:输入信号(时间域)。

exportsignals:设定输出信号类型。其选择的类型有四种,none表示快速计算;inputsignal表示输出为输入信号;detectedsignal表示检测到的振幅为最大的信号;residualsignal表示除过最大振幅信号的其余信号。

errorin:错误输入,默认为无错误。

advancedsearch:高级搜索配置。

exportedsignals:输出信号(其输出类型由exportsignals端口决定)。

detectedfrequency:检测到的信号频率(最大振幅相对应)。

detectedamplitude:检测到的信号幅值(最大振幅相对应)。

errorout:错误输出。

measurementinfo:测量信息。

在编写程序时,需要注意以下几点:

(1)模拟信号源。本例中,我们采用TonesandNoise

Waveform.vi来模拟信号源。设置其中振幅最大谐波分量的频率为10Hz,振幅为4。其余分量设置时注意振幅要小于4,否则不能达到预期的目的。

(2)最大振幅谐波分量提取。对于输入的模拟信号,利用ExtractSingleToneInformation.vi进行分析,可以直接得到振幅最大的谐波分量。图7-13为提取振幅最大的谐波分量的前面板图,图7-14为相对应的流程框图。图7-13提取振幅最大的谐波分量前面板图图7-14提取振幅最大的谐波分量流程框图

3.谐波失真分析

在学习“信号与系统”这门课程的时候,我们知道如果一个系统是非线性的,那么当某个频率的信号通过该系统后,在我们得到的输出信号中不可避免地会出现高次谐波,我们把这种现象叫谐波畸变或者叫谐波失真。如果在我们的测试系统中需要检测谐波畸变这项参数,就得进行度量。通常谐波畸变的程度用总谐波畸变来表示,即式中,THD%表示总畸变;An表示各频率分量的振幅,其中A1表示基频分量的振幅,A2表示二次分量的振幅,其他依次类推。

下面对本例中所用到的VI作一详细介绍:

HarmonicDistortionAnalyzer.vi位于Function→Analyze→WaveformMeasurements中,其图标和端口如图7-15所示。图7-15HarmonicDistortionAnalyzer.vi端口功能:用于信号谐波畸变分析。

主要端口说明:

stopsearchatNyquist:布尔值参数。为true时,搜索Nyquist频率以下的频率段;为false时,搜索所有频率段。默认为true。

signalin:输入信号。

exportsignals:输出信号的模式。有以下六种类型可供选择,none表示快速计算不进行信号提取;inputsignal表示输出波形为输入信号;fundamentalsignal表示输出波形为基频信号;residualsignal表示输出波形为除去基频信号的残留信号;harmonicsonly表示输出波形为发现的谐波信号;noiseandspurs表示输出波形为噪音和其他激励信号。

highestharmonic:设定需要分析的最高次谐波的次数。

errorin:错误输入。

advancedsearch:设定高级搜索参数。

exportedsignals:输出的信号,包括时域和频域信号。

detectedfundamentalfrequency:监测到的基频频率。

THD:总谐波畸变。

componentslevel:各次谐波分量的幅值(注意数组索引号为零的项是指直流分量)。

errorout:错误输出。

measurementinfo:测试信息。在编写程序时,需要注意以下几点:

(1)模拟信号源。由于方波信号本身的特点,在本例中我们可以利用SimulateSignalExpress生成一个频率为10Hz、振幅为1的标准方波信号来模拟一个通过非线性系统后的信号。

(2)信号总谐波畸变分析。对于输入的模拟信号,我们利用HarmonicDistortionAnalyzer.vi进行分析。其中端口输出时,如果我们想要显示输出的波形信号或者是频域的信号,需要使用unbundle.vi进行cluster的分解。图7-16为信号总谐波畸变分析的前面板图,图7-17为相对应的流程框图。图7-16信号总谐波畸变分析前面板图图7-17信号总谐波畸变分析流程框图7.3WaveformConditioningVI模块

WaveformConditioningVI为波形调理模块,该模块包含了数字滤波和其他一些数字信号调理方法。我们假定读者已经学习了数字信号处理课程或者已经熟悉了有限冲击响应(FIR)和无限冲击响应(IIR)的概念。本部分内容主要介绍最为常用的数字FIR滤波器和数字IIR滤波器。在其他一些信号处理工具软件中,设计一个滤波器可能需要很大的工作量,但在LabVIEW中只需按照要求设置相应的参数就可以实现所需的滤波器。这使得我们的工作变得轻松、简单、易行。表7-3列出了波形调理模块中各子模块的图标、端口和简单的功能。下面,我们通过简单的实例来说明WaveformConditioningVI的使用方法。

在本例中,我们使用DigitalFIRFilter.vi来完成一个低通滤波器的设计。

以下是对本例中所用到的VI的详细介绍:

DigitalFIRFilter.vi位于Function→Analyze→WaveformConditioning中,其图标和端口如图7-18所示。图7-18DigitalFIRFilter.vi端口功能:用于FIR数字滤波。

主要端口说明:

resetfilter:重置滤波器状态。

signalin:输入信号。

errorin:错误输入。

FIRfilterspecifications:滤波器参数设置。这项参数包括以下几项:

Topology:滤波器设计方法,包括FIRbySpecification、Equi-rippleFIR和WindowedFIR三种;

Type:设置滤波器类型,包括低通、高通、带通和带阻四种;

LowerPB:带通的最低频率,默认值为100Hz;

UpperPB:带通的最高频率,默认值为0;

LowerSB:带阻的最低频率,默认值为200Hz;

UpperSB:带阻的最高频率,默认值为0。

optionalFIRfilterspecifications:滤波器可选参数设置,这项参数包括以下几项:

PBGain:带通增益,默认值为-3dB;

SBGain:带阻增益,默认值为-60dB;

Scale:带通增益和带阻增益参数的选择;

Window:平滑窗的选择。

signalout:滤波后的输出信号。

filterinformation:包括了幅频响应和相频响应以及滤波器阶数的信息。

errorout:错误信息输出。

在编写程序时,需要注意以下几点:

(1)模拟信号源。在本例中我们利用波形发生模块中的SineWaveform.vi来产生所需要的模拟信号。在这里共采用了三组正弦信号合成模拟信号,其频率分别为80Hz、2000Hz和3000Hz,其余参数采用其默认值。在设置采样值的时候请注意我们将采样频率设置为8000Hz,在读者进行设置时需要根据合成信号中最高频率成分

设置。

(2)滤波器以及参数设置。在滤波器部分我们选择DigitalFIRFilter.vi。具体的参数设置可以参考图7-19中的FIR滤波器参数设置。图7-19为FIR数字滤波器的前面板图,图7-20为相对应的流程框图。图7-19FIR低通滤波器前面板图图7-20FIR低通滤波器流程框图

因为IIR数字滤波器的特性和应用的基本方法和FIR数字滤波器类似,在这里我们不作详细介绍,仅给出利用IIR数字滤波器使用的程序图,具体可参照图7-21和图7-22。图7-21为IIR数字滤波器的前面板图,图7-22为相对应的流程框图。图7-21IIR低通滤波器前面板图图7-22FIR低通滤波器流程框图7.4WaveformMonitoringVI模块

WaveformMonitoringVI为波形监测模块。波形监测模块用来对波形进行边界监测、峰值监测以及触发点监测。这个模块在实际工程中使用起来非常方便,可以利用LimitSpecification.vi、LimitSpecificationByFormula.vi和LimitTesting.vi来分析被测信号是否处于我们所希望的范围内。其中,前两个VI用于监测边界的设置,后一个VI用于实际的边界监测。另外,波形监测模块还包括波形的峰值监测和两个Express方式的波形监测模块。表7-4列出了波形监测模块中所有子VI的图标、端口信息以及主要功能简介。下面,我们通过几个简单的实例来说明WaveformMonitoringVI的使用方法。

1.波形边界的监测

在实际工程应用中,我们可能在信号分析和处理模块时需要对所采集到的信号进行监测,其中很重要的一项任务就是监测信号是否落在了给定的范围内。LabVIEW可以很方便地设置监测范围,并且能够直观形象地观察我们的监测结果。这个例子中,我们利用LimitSpecification.vi和LimitTesting.vi进行方波边界监测。其前面板图如图7-23所示,流程框图如图7-24所示。图7-23波形边界的监测前面板图图7-24波形边界的监测流程框图以下是对本例中所用到的几个VI的详细介绍:

1) LimitSpecification.vi

LimitSpecification.vi位于Function→Analyze→Waveform

Monitoring中,其图标和端口如图7-25所示。

图7-25LimitSpecification.vi端口功能:用于设定信号监测边界。

主要端口说明:

Reset:如果为true则进行边界监测;为false则不进行边界监测。至少监测一次。

SpecificationCluster:进行边界的设定。边界包括上界和下界两组值,上界和下界均为数组形式。

dx:设定X轴的时间间隔。

x0:X轴数据输入的初始时间。

errorin:错误输入,默认为无错误输入。

Limit:创建的边界区。

errorout:错误输出。

2) LimitTesting.vi

LimitTesting.vi位于Function→Analyze→WaveformMonitoring中,其图标和端口如图7-26所示。图7-26LimitTesting.vi端口功能:对输入信号进行边界监测。

主要端口说明:

signalin:输入信号。

upperlimit:上界的设定值,由LimitSpecification.vi指定。

lowerlimit:下界的设定值,由LimitSpecification.vi指定。

limittestconfig:边界监测的配置。

errorin:错误输入,默认为无错误输入。

failures:返回越界的数据点。

testpassed?:布尔值数据,反映监测通过与否(只要一个数据点没有通过,则返回值为false)。

testresults:布尔值数据,反映监测通过与否(显示每个数据点是否越界,用布尔值数组来表示)。

outputvalues:输出数据。

clearance:返回输入信号和边界的距离。

errorout:错误输出。

在编写程序时,需要注意以下几点:

(1)模拟信号源。用SquareWaveform.vi生成一个频率为1Hz、振幅为1V的标准方波信号;用UniformWhiteNoiseWaveform.vi生成一个白噪音信号,其幅值可手动调节。然后将两个信号合成作为模拟信号源。在运行本例时,我们可以通过调节白噪音信号的幅值来观察边界监测的结果。

(2)设定预定的边界值。用LimitSpecification.vi设定边界的范围。上界分为X轴和Y轴,均为一维数组。本例中我们利用12组数据来设定监测上界和下界,具体边界数据见表7-5。这里给定上界和下界的值是为了能够形象直观地观察监测结果所设定的,实际中可能需要认真分析才能得到边界值。还需要注意的一点是,对于时间间隔和初始时间必须和输入信号相同。

(3)波形边界的监测。用LimitTesting.vi进行边界的监测。在介绍LimitTesting.vi时我们已经知道边界监测输出结果可以用五种形式表示,它们分别是failures、testpassed?、testresults、outputvalues和clearance。在本例中我们采用testpassed?、testresults和outputvalues三种形式表示监测结果。从其具体的布置图(见图7-23)中可以看到,当噪音幅值比较小时(大约为0.04),尽管方波中已经夹杂了白噪音,但合成的信号源仍然处于边界内没有越界,因此监测结果中的“监测通过?”项和“监测结果”项均为绿灯,表示输入信号在我们设定的监测范围内。当我们把噪音幅值大致调节到0.12时,如图7-27所示,从输出波形已经很明显看到输入信号已经越界,因此监测结果中的“监测通过?”项为红灯,表示输入信号越界。而“监测结果”项部分为绿灯,表示在这些数据点处没有越界,另外一部分为红灯,表示这些数据点超出了我们设定的范围。当然我们也可以用failures端口来得到越界数据点具体数值大小的表示。图7-27波形边界监测越界示意图

2.波形峰值的监测

本例我们利用WaveformPeakDetection.vi来实现波形峰值的监测,主要是监测仿真信号(正弦波)的波峰值和波谷值。在实际应用中遇到的信号可能不会是简单的正弦波信号,但其方法和思路是一致的。程序前面板图如图7-28所示,流程框图如图

温馨提示

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

评论

0/150

提交评论