1、虚拟仪器 3,电子科技大学自动化学院 虚拟仪器课程组 ,第3章 虚拟仪器的测试信号分析 与处理技术,3.5 数字滤波器在虚拟仪器中 的应用及其软件实现,滤波器分类,按滤波器电路中是否带有有源器件分,无源滤波器,有源滤波器,低通滤波器,高通滤波器,带通滤波器,带阻滤波器,其他类型通带的滤波器,按能通过的频率范围分,安处理信号的性质分,模拟滤波器,数字滤波器,有限冲击响应滤波器(FIR),无限冲击响应滤波器(IIR),3.5.1调用数字滤波器子程序的几个问题,在调用数字滤波器程序时,需要注意以下几个问题:1. 调用时的参数设置2滤波过程的响应时间3. A/D前的抗混滤波器,调用时的参数设置 1)
2、滤波器类型选择 2) 截止频率确定 3) 采样频率设定 4) 滤波器的阶数 5) 纹波幅度,2滤波过程的响应时间 输入信号经过数字滤波器,相当于输入信号和数字滤波器的单位抽样响应进行卷积运算,从运算的时间零点到获得正确的滤波结果,中间会有一个过渡过程,需要一定的响应时间。 在后续处理时应该忽略这一段开始的滤波结果。,3. A/D前的抗混滤波器 A/D转换获得数字信号时,若采样频率未满足采样定理,会产生频域混叠,这时信号中频率大于1/2采样频率的高频成分已经混进数字信号的低频段。 数字滤波器是不可能将这些混在一起的频率成分再分离的,因此数字滤波并不能完全取代A/D转换之前的模拟抗混滤波。,3.5
3、.2在LabVIEW中应用滤波器,LabVIEW中提供了许多现成的滤波器VI,分成了Express VI、波形VI和基本功能VI 3个层次。 1. Express VI中的滤波器针对所有类型的滤波器的选项;2. 波形VI分成了IIR滤波器和FIR滤波器两个VI;3. 在基本功能VI的子模板中,根据滤波器的最佳逼近特性提供了多个比较丰富的滤波器VI。,1Express VI中的滤波器VI,Express VI中的滤波器VI (Filter. Vi )处于Functions Signal Analysis子模板中,其参数设置框图如图3-36所示。,图3-36 Filtervi带通IIR滤波器参数设
4、置框图,滤波器参 数设置,预览窗口,预览模式 设定,Filter的参数设置(1)滤波器参数设置首先选择滤波器类型,有低通、高通、带通、带阻和平滑滤波器(Smoothing)的选项5种, 选择前面4种时,需设置滤波器的上和(或)下截止频率,有限冲击响应滤波器的序列长度,无限冲击响应滤波器的最佳逼近函数和阶次, 最佳逼近函数有巴特沃兹、切比雪夫、反切比雪夫、贝塞尔和椭圆滤波器5个选项。 若滤波器类型选择平滑滤波器,需要设置的参数则是移动平均的窗函数选择和移动平均的半长度设定、指数窗平均的时间常数。平滑滤波器主要作用:对信号进行局部平均,消除周期性噪声或白噪声。,3-37中的输入信号预览窗口和输出信
5、号预览窗口显示了利用三角窗进行白噪声移动平均的效果。,图3-37 Filtervi平滑滤波器参数设置框图,(2)预览模式设定和预览窗口显示,当预览模式选定为观察信号时,两个预览窗口分别显示滤波输入和输出信号的时域波形; 当预览模式选定为观察频谱时,两个预览窗口分别显示滤波输入和输出信号的频谱图; 当预览模式选定为观察频率响应函数时,两个预览窗口分别显示滤波器频率响应函数的幅值特性和相位特性曲线。,例:在LabVIEW中用Filtervi进行滤波。 如图3-38所示为一个检测三角波基频信号的测试VI (Express Filtervi)的前后面板。,图3-38 检测三角波基频信号的测试VI前面板
6、,原始三角波信号,检测出来的基波信号,图3-38 检测三角波基频信号的测试VI后面板,由仿真信号发生器产生频率为20Hz、幅值为1、初始相位为0的三角波信号,经过截止频率为40Hz的4阶低通巴特沃兹滤波器进行时域处理,就能提取出其基波。,根据信号的基本知识,三角波由奇次倍频的谐波组成,经过上面滤波器后,只有基波(20Hz)的信号成分保留下来。 原始三角波信号和检测出来的基波信号相位不一致,是因为信号经过滤波器有一个时间延迟。,2. 波形中的滤波器VI,波形VI中的滤波器VI处于All Functions Analyze Waveform Conditioning中,共有数字IIR滤波器和数字F
7、IR滤波器两个VI (Digital IIR filter .vi和Digital FIR filter .vi )。 参数设定方式: Express滤波器VI使用对话框; 波形VI使用传统的端口方式,表3-10 Digital IIR Filtervi的端口含义及设置,波形滤波器和Express滤波器VI的重要区别: Express滤波器VI只能是一个滤波器对一个输入信号进行滤波处理, 波形滤波器VI可以扩展至多个不同特性的滤波器对多个不同的信号进行处理。,例:应用波形滤波器VI进行多通道信号多种参数滤波。Waveform Filter .vi。 两路输入信号是频率为20Hz的三角波和频率为
8、10Hz的方波,幅值都为1,初始相位都为0。,图3-39 b) Waveform Filtervi的前面板,图3-39 b) Waveform Filtervi的后面板,后面板中分别设置了两个不同的滤波器参数,为了分别检测出两个信号的基波信号; 前面板中则显示了两通道输入信号、检测出来的基波信号,以及对方波信号进行滤波的滤波器幅频特性及相频特性曲线。,3. 基本功能中的滤波器VI,基本功能VI中的滤波器的到达途径是All Functions Analyze Signal Processing Filters,其功能子模板参见图3-40。,图3-40滤波器子模板(Filter),3.6 信号和系
9、统的频率分析技术 及其软件实现,测试技术中的谱分析是指把时间域的各种动态信号通过傅里叶变换转换到频率域进行分析,内容包括: 频谱分析:包括幅值谱和相位谱、实部频谱和虚部频谱; 功率谱分析:包括自谱和互谱; 频率响应函数分析:系统输出信号与输入信号频谱之比; 相干函数分析:系统输入信号与输出信号之间谱的相关程度。,3.6.1 离散傅里叶变换,DFT和FFT基本概念在计算机中处理的信号是采样后的离散有限长时间序列x(n),时域与频域转换使用的算法是离散傅里叶变换(DFT)和反变换(IDFT),对应的离散频谱为X(K),计算公式如下:,DFT计算求N出点的X(K) ,需要 次复数乘法,而快速傅里叶变
10、换FFT的原理与DFT相同,是DFT在计算机中实现的快速方法。FFT运算要求点数N为2的整数次幂(如N=210=1024)时,计算速度最快。,2FFT存在的误差及其解决办法,用DFT进行测试信号频域特性分析存在主要误差有量化误差、混叠、泄漏和栅栏效应等,误差产生原因:量化误差混叠误差泄漏或截断误差栅栏效应,(1)量化误差模拟信号幅值是连续变化的,而数字信号的幅值是跳跃式的,模拟信号在数字化过程中采样点的幅值若落在两相邻量化值之间,就要舍入到相近的一个量化值上,这样就造成了量化误差。量化误差的最大值为数字编码最后位所代表值的1/2。 减小量化误差,提高量化精度的方法: 选用量化位数多的模数转换集
11、成芯片; 在信号进行模数转换之前先经过程控放大器进行放大,这样小电压经过放大后再进行模数转换,量化误差的值相对原始信号值就小了。,(2)混叠误差如果模拟信号x(t)的频谱是一限带信号,其信号中最高频率为 ,对时域作采样时的采样频率 如果小于所处理信号中的最高频率的两倍,就会产生频谱混叠。 减小混叠误差:,(3)泄漏或截断误差计算机可处理的长度总是有限的,而信号的长度可以是无限长的,这样在处理信号时必然就进行了长度上的截断,截断方法是:将无限长的信号乘以窗函数(Window function)。信号被截断以后,其频谱等于原信号的频谱和窗函数频谱的卷积,其频谱会发生畸变,原来集中的能量会被分散到一
12、个比较宽的频带中去,这种现象称之为泄漏。,减小泄漏或截断误差,(4)栅栏效应 在进行FFT的过程中,最后需对信号的频谱进行采样。经过采样所显示出来的频谱仅在各采样点上,而不在此类点上的频谱都显示不出来,即使在其他点上有重要的峰值也会被忽略,这就是栅栏效应。这一效应对于周期信号尤为严重,因为周期信号频谱是离散的。 栅栏效应解决措施“整周期截取”。而对于非周期信号,如果希望减小栅栏效应的影响,尽可能多地观察到谱线,则需要提高频谱的分辨率。频谱的分辨率等于处理信号的时间长度的倒数,即f=1/T= fs/N。,以上4种误差比较, 量化误差是无论如何都无法完全避免的,只能尽量减小; 混叠误差在选取合适的
13、采样频率及预先进行抗混滤波后是完全可以避免的; 泄漏和栅栏效应 对于周期信号而言,如果进行了整周期截取是可以完全避免的; 对非周期信号而言,这两种误差无法完全避免而只能尽量减小。,3.FFT处理步骤,可用较小的采样间隔及较大的采样长度N先试采样并做出FFT,按做出的FFT再修正及N。若长度不够采N点数据,可在后加零补足N点。,3.6.2 在LabVIEW中的频谱分析VI,在LabVIEW中实现频谱分析计算的3个层次的VI分别为 Express 中的Spectral Measurements. vi , 波形VI中的FFT Spectrum (Mag-Phase). vi 和FFT Spectr
14、um (Real-Im). vi , 基本函数VI的Amplitude and Phase Spectrum. Vi 。 其中波形VI中的频谱分析还特别给出了FFT Spectrum (Real-Im). VI以计算信号的实部频谱和虚部频谱。,1. Express 中的频谱测量VI,Express 中的Spectral Measurements.vi可以对单个信号进行频谱分析和功率谱分析(包含功率密度谱分析)。其到达途径为Functions Signal Analysis。 由于Spectral Measurements.vi是一个比较综合的Vl,其需要设置的参数基本上囊括了后面将要讲到的频谱
15、分析和功率谱分析VI中的所有参数.,图3-41 Spectral Measurementsvi参数设置对话框,参数设置,(1)根据频域分析目的选择不同的谱分析种类(Spectral Measurement)。 (2)幅度结果的表示Result:线性还是分贝值。 (3)窗函数Window的类型:窗函数选取原则应力求其频谱的主瓣宽度窄、旁瓣幅度小。 (4)平均Averaging参数:有平均模式Mode、平均权重 Weighting、平均次数Numbers of averages和平均输出类型Produce spectrum。 (5)相位谱输出的变换Phase:反卷及将弧度转换为度。,在LabVIE
16、W中,频域分析Express 和波形VI中函数的参数设置都提供了丰富的窗函数类型,在基本频域分析函数中,不提供窗函数参数,但是提供了单独的窗函数原型VI子模板,如图3-42所示。,图3-42 窗函数子模板(Windows),表3-11 LabVIEW中主要窗函数特性,图3-43表示的“FFT分析VI”对基本函数发生器产生的仿真信号作频谱分析,产生幅度谱(RMS)和相位谱。,图3-43 a) FFT分析vi的前面板,图3-43 b) FFT分析vi的后面板,选择的信号为三角波,频率为1kHz,采样频率为40kHz,采样点数为40点,正好1个周期,计算出的频谱频率范围为020kHz,频率间隔为1k
17、Hz(40kHz/40点),频谱表示了从1kHz20KHz的基波分量和高次谐波分量。,2波形VI中的FFT子VI,波形VI中的FFT Spectrum (Mag-Phase). vi和FFT Spectrum (Rea-Im). vi的参数设置及定义和Spectral Measurements. vi的完全一致,如图3-44所示。,a)单通道幅值相位频谱计算,b)多通道幅值相位频谱计算,c)单通道实部虚部频谱计算,d)多通道实部虚部频谱计算,图3-44 波形VI中频谱分析VI的端口图,3.基本函数谱分析,基本函数谱分析对应的VI是Amplitude and Phase Spectrumvi,
18、其到达途径是All Functions Analyze Signal Processing Frequency Domain。,图3-45 频域子模板 (Frequency Domain),图3-46 Amplitude and Phase Spectrum. vi的端口图,Amplitude and Phase Spectrum.vi子模板如图3-45所示。,上面的几个步骤可以用图3-47中的流程图来表示。,图3-47 Amplitude and PhaseSpectrumvi中谱分析计算流程图,LabVIEW中进行频谱分析的谱分析函数都是取单边谱。 由于Amplitude and Phas
19、e Spectrumvi的输入数据序列是一个实数数组,不带时间信息,所以其输入端还有一个采样时间的端口,而输出端有一个频率间隔的输出端口,利用这个信息可以画出幅频特性曲线和相频特性曲线。 基本函数VI没有加窗和平均的环节,因此也就没有相关的参数。如果要加窗和平均,则需要自己选择窗函数以及通过循环完成平均运算。,3.6.3功率谱分析及其VI,Express VI中的Spectral Measurements.vi既可以进行频谱分析也可以进行功率谱分析。 计算功率谱的波形VI有 FFT Power Spectrum. vi ; FFT Power Spectral Densityvi ; Cros
20、s Spectrum (Mag-Phase)vi ; Cross Spectrum (Real-Im)vi 。,计算功率谱的四个波形VI: 其到达途径为All Functions Analyze Waveform Measurements。 这些功率谱计算VI都是输出单边谱。 其中,计算自功率谱的FFT Power Spectrumvi和FFT Power Spectral Densityvi的区别仅仅在于输出的功率谱有一个比例差异。,例:对一个附加了均匀噪声的正弦信号求自功率谱,使用FFT Power Spectrumvi,使用Hanning窗函数,结果平均模式采用RMS平均,加权系数为指数
21、,平均次数为10次,以分贝显示。,图3-48 a) Power Spectrum vi的前面板,如图3-48,Power Spectrum .vi的前后面板,图3-48 b) Power Spectrumvi的后面板,3.6.4 谐波分析及其LabVIEW实现,利用谐波分析可得到周期信号波形的失真和畸变。 谐波的频率是基波频率的整数倍,也常称为高次谐波。 谐波分析主要是测量系统中高次谐波的含量包括: 基波和各次谐波的频率、幅值和相位; 总谐波失真THD (Total harmonic distortion); 信号与噪声失真比SINAD(Signal to Noise And Distorti
22、on)。,通过FFT计算出被分析信号的基波频率、幅值和相位,再搜索谐波信号的幅值和相位,然后计算谐波分析的指标,如THD和SINAD等。 在LabVIEW的Express VI中,Distortion Measurementsvi能够实现输入信号的谐波分析,输出THD、SINAD和各次谐波分量幅值的信息。其到达途径为Functions Signal Analysis。 Distortion MeasurementsVi参数对话框中一般进行谐波搜索的截止频率定为采样频率的一半,或是搜索10个谐波频率,用这些谐波的参数进行THD和SINAD指标的计算。,图3-49 Distortion Measu
23、rements .vi的参数设置对话框,红色的梳状曲线表示了一个对输入信号中各次谐波进行测量的滤波器的频率特性,即谐波分析只关心在基波频率整数倍频率上的幅值和相位,Distortion Measurements. vi只取这些点上的值进行计算。白色虚线则表示进行谐波频率搜索的截止频率。,选择需要输出谐波分析指标的种类,例:用Distortion Measurements. vi进行谐波分析。如图3-50所示Express Harmonic. vi 。,图3-50 a) Express Harmonicvi的前面板,图3-50 b) Express Harmonicvi的后面板,波形VI中的两个
24、谐波分析VI Harmonic Distortion Analyzervi 和SINAD Analyzer. vi 则可给出更为详细的谐波分析结果。 另外还有一个 Extract Single Tone Information. vi 可以用来提取基波频率或某一特定谐波频率的信息。 这3个波形VI位于波形测量 (Waveform Measurements)子模板中。,其参数设置和Distortion Measurementsvi基本一致,不同的是其输出的信息中还含有搜索到的所有谐波分量的幅值、被分析信号的时域波形和频谱分析波形。,a) Distortion Analyzer .vi的端口定义图
25、,b) SINAD Analyzervi的端口定义图,图3-51 谐波分析的波形的端口定义图,3.7逐点分析库,传统的基于缓冲和数组的分析过程不能实时的分析采集到的数据,很难构建高速实时系统。 LabVIEW 6.1以后版本提供了一个新的分析库“逐点(Point By Point)分析库”。 逐点分析中,数据分析是针对每个数据点的,对采集到的每一点数据都可以立即进行分析,而且分析可以是连续进行的。因此通过逐点分析,用户可以实时地观察到当前采集数据的分析结果,从而使能够跟踪和处理实时事件。,此外,由于不需要构建缓冲区,分析与数据可以直接相连。这使得采样率可以更高,数据量可以更大,而数据丢失的可能
26、性更小,编程也更加容易。 实时数据获取系统需要连续稳定的运行系统。逐点分析库由于把数据获取与分析连接在了一起,因此逐点分析是连续稳定的。,逐点分析库提供了与数组分析相应的分析功能。它在Functions Palette 中的位置为Analyze Point By Point,如图3-52所示。,图3-52 逐点分析库函数面板,逐点分析VI函数都包含相同的基本结构,如图3-53所示。,图3-53 逐点分析函数的基本结构,很多的逐点分析VI函数还有一个Sample Length参数,它的目的是为了指定采样数据队列的长度,它表示该函数所感兴趣的数据段长度。,由First Call函数来判断该子VI函
27、数是否是第一次被调用,如果是第一次被调用或者Initialize输入参数为真,则会对VI函数进行初始化。 While循环在每一次调用中只执行一次,但是它会将每次调用的结果通过移位寄存器传递到下一次调用时使用。因此逐点分析VI函数的前后两次调用总是相关的,为了避免多个VI程序调用同一个逐点分析VI函数发生冲突,这就要求逐点分析VI函数必须是可重入的(re-entrant)。 可重入VI函数为每一个调用都创建一个复本,即开辟一个独立的存储区,从而避免了冲突。,3.8 虚拟仪器中其他常用 数据处理技术,3.8.1 概率和统计函数 LabVIEW也提供了大量的概率与统计函数。位置:Functions
28、Palette的Mathematics Probability&Statistics面板下,如图3-54所示。,图3-54 概率与统计函数面板,这里只着重介绍其中两个Express VI函数Statistic和Create Histogram。 Statistic函数可以对大部分的基本统计参数进行计算,例如算术平均值、中数、均方根和标准方差等。 Create Histogram可以对数据进行柱状图统计。,a)前面板,例:对高斯噪声进行统计分析,首先通过Gaussian White Noise. vi产生一个2000点的满足高斯分布的随机数序列,然后通过Create Histogram和Stat
29、istic两个Express VI对该随机序列进行分析。,b)后面板,3.8.2 曲线拟合,曲线拟合可以从大量的离散数据中抽象出各个物理量之间的内部规律。LabVIEW包含了大量的曲线拟合函数,其中不仅包括二维曲线拟合,还包括三维曲面拟合。 曲线拟合函数面板位于Functions Palette的Mathematics Curve Fitting面板下。如图3-56所示。,图3-56曲线拟合的函数面板,对数据进行二维曲线拟合时,需要输入数据的坐标 ,即X数组和Y数组。曲线拟合的目的就是找出x和y之间的函数关系y=f(x)。 对于不同的对象有不同的拟合方法。 线性拟合(Linear Fit) 指
30、数拟合(Exp Fit) 幂拟合(Power Fit) 高斯拟合(Gauss Peak Fit) 对数拟合(Logarithm Fit) 多项式拟合(Polynomial Fit) 最小二乘法拟合(Gen.LS Lin.Fit) 非线性拟合(Nonlinear Curve Fit)等。,例:设计一个VI来测量温度,每隔0.25秒测一次,共测定10秒。在数据采集过程中,VI将在波形Chart上实时地显示测量结果。采集过程结束后,在Graph上画出温度数据曲线及最佳拟合曲线。,解:测量温度调用一个模拟产生温度的子VI(Demo Temp.VI),产生的温度范围为7090,在循环中使用定时器实现每隔0.25秒测一次,循环次数为40时,共测10秒。测试结束后,将温度和时间作曲线多项式拟合,拟合方次可变。,图3-57 曲线拟合的前面板和框图程序,3.8.3 线性代数,线性代数函数面板位于Functions Palette的Mathematics Linear Algebra面板下,包括: 矩阵相乘运算(A*B. vi); 求逆矩阵(Inverse Matrix. vi); 求解线性方程组(Solve Linear Equations. vi); 求矩阵的行列式(Determinant. i) 等子VI。 如图3-58所示。,图3-58线性代数函数面板,图3-59 求解线性方程,