LabVIEW和Delphi混合编程实现IIR数字滤波器设计
基于Labview的IIR数字滤波器设计
华北电力大学本科毕业设计(论文)来自毕 业 设 计(论文)
`
题
目
基于 LABVIEW 的 IIR 数字滤波 器设计
院
系
自动化系 测控技术与仪器 1201 班 加桑扎西 白康
专业班级 学生姓名 指导教师
二○一六年六月
1
华北电力大学本科毕业设计(论文)
基于 LabVIEW 的 IIR 数字滤波器设计
摘要
Ⅱ
华北电力大学本科毕业设计(论文)
目
录
摘要.................................................................................................
基于LabVIEW的IIR 数字滤波器的设计
基于LabVIEW的IIR 数字滤波器的设计时间:2010-01-07 13:26:56 来源:维库开发作者:LabVIEW 为设计者提供了FIR 和IIR 滤波器VI,使用起来非常方便,只需要输入相应的指标参数即可,不需要进行复杂的函数设计和大量的运算。
滤波器VI 位于LabVIEW 流程图面板的Function>>Analyze>>Signal Processing>>Filters 上。
不同滤波器VI 滤波时均有各自的特点,因此它们用途各异。
在利用LabVIEW 实现滤波功能时,选择合适的滤波器是关键,在选择滤波器时,可参照不同滤波器的特点,考虑滤波的实际要求来选择合适的滤波器[5]。
各种滤波器的特点及选择滤波器的步骤见图1。
图1 滤波器选择步骤3 基于LabVIEW 的数字滤波器设计实例电力系统滤波器可以从电力信号中将所需频段的信号提取出来并将干扰信号滤除或大大衰减。
利用LabVIEW 可以设计出满足电力系统需要的滤波器,图2为利用LabVIEW 设计的IIR 数字滤波器前面板,前面板上有参数设置、波形显示两个区域。
在参数设置区域有六个设置项:滤波器选择、滤波器类型、下截止频率、上截止频率、采样频率、阶次、纹波、衰减;选择的滤波器不同时,需要设置的项也不同。
波形显示区域用于显示滤波前后的波形,在此区域可直观地看出滤波效果。
1.2 数字滤波器的传统设计方法数字滤波器的传统设计过程可归纳为以下三个步骤:(1)按照实际需要确定滤波器的性能要求。
(2)用一个因果稳定的系统函数(即传递函数)去逼近这个性能要求。
此函数可以分为两类:即IIR 传递函数和FIR 传递函数。
(3)用一个有限精度的运算去实现这个传递函数。
FIR 滤波器设计实质是确定能满足要求的转移序列或脉冲响应的常数,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
目前,FIR 滤波器设计没有封闭的设计公式。
IIR数字滤波器的设计及软件实现
IIR数字滤波器的设计及软件实现IIR数字滤波器(Infinite Impulse Response Digital Filter)是一种常用于信号处理的数字滤波器。
与FIR(Finite Impulse Response)滤波器不同,IIR滤波器的输出取决于过去的输入样本和输出样本。
1.确定滤波器的类型:根据实际应用需求选择低通滤波器、高通滤波器、带通滤波器或带阻滤波器。
2.确定滤波器的阶数:阶数决定了滤波器的频率响应特性的陡峭程度。
一般来说,阶数越高,滤波器的频率响应特性越陡峭。
阶数的选择需要权衡计算复杂度和滤波器性能。
3.设计滤波器的传递函数:传递函数是描述滤波器输入和输出之间关系的数学表达式。
传递函数可以通过频率响应要求来确定。
4.选择滤波器设计方法:针对不同的频率响应要求,可以选择不同的滤波器设计方法,如巴特沃斯方法、切比雪夫方法、椭圆方法等。
5.设计滤波器的参数:根据滤波器的传递函数和设计方法,计算滤波器的系数。
这些系数可以用于实现滤波器。
软件实现的步骤如下:1. 选择合适的软件平台:根据实际需求,选择适合的软件平台,如MATLAB、Python等。
2. 导入相关的滤波器设计库:选择合适的滤波器设计库,如MATLAB的Signal Processing Toolbox、Python的scipy.signal等。
3.使用滤波器设计函数:根据选择的滤波器设计方法,使用相应的函数进行滤波器设计。
这些函数可以根据输入的参数计算出滤波器的系数。
4.实现滤波器:使用得到的滤波器系数,将其用于滤波器的实现。
可以使用滤波器函数对信号进行滤波操作。
5.评估滤波器性能:根据实际应用需求,对滤波器的性能进行评估。
可以通过比较滤波器的输出和期望的输出,或者通过分析滤波器的频率响应特性来评估滤波器的性能。
需要注意的是,IIR数字滤波器的设计和实现过程可能相对复杂,需要一定的信号处理和数学基础。
在实际应用中,可以借助已有的滤波器设计库和工具来简化设计和实现过程。
IIR数字滤波器设计及软件实现[1]
IIR数字滤波器设计及软件实现[1]IIR数字滤波器是一种常见的数字滤波器类型,它利用数字信号处理技术对信号进行滤波,广泛应用于信号处理、音频处理、图像处理等领域。
本文将介绍IIR数字滤波器的设计方法和软件实现。
一、IIR数字滤波器的基本原理IIR数字滤波器是一种基于递归算法的数字滤波器,它可以用于对离散时间信号进行滤波。
具体而言,IIR数字滤波器是由一组差分方程组成的,其中包括有限冲激响应(FIR)和无限冲激响应(IIR)数字滤波器两种类型。
与FIR数字滤波器不同的是,IIR数字滤波器是具有无限冲激响应的性质,因此可以实现更高阶的滤波效果。
IIR数字滤波器可以用如下的一阶滤波器来进行递归实现:y(n) = a1 * y(n-1) + a0 * x(n) - b1 * x(n-1)其中,x(n)表示输入信号,y(n)表示输出信号,a0、a1、b1是滤波器的系数。
这种一阶滤波器可以通过级联组合来构成更高阶的滤波器,形成一系列级联的一阶滤波器。
1.滤波器类型的选择在开始设计IIR数字滤波器之前,需要先确定所需的滤波器类型,即低通滤波器、高通滤波器、带通滤波器或带阻滤波器等。
各种类型的滤波器的特点及应用范围不同,需要根据具体需求进行选择。
2.设计滤波器参数确定了滤波器类型之后,需要根据要求的滤波器截止频率、带宽、通带衰减等参数来确定滤波器的系数。
一般可以采用Butterworth滤波器设计方法、Chebyshev滤波器设计方法或Elliptic滤波器设计方法等常见方法来进行设计。
3.验证设计结果设计出的IIR数字滤波器需要进行验证,可以采用MATLAB等数字信号处理软件进行仿真测试,进行频率响应、相位响应、群延迟等分析,以确保设计结果满足要求。
IIR数字滤波器的实现可以采用MATLAB、Python等数字信号处理工具,也可以使用C 语言来进行程序设计。
下面以MATLAB为例,介绍IIR数字滤波器的实现。
基于LabVIEW的IIR 数字滤波器的设计
基于LabVIEW 的IIR 数字滤波器的设计0 引言正常情况下,电力系统中三相电力是对称的,它们之间满足一定的幅值和相位条件;但当负载变化时,系统受到影响,波形会发生畸变。
随着经济的发展,许多非线性电力负荷投入使用,使电网中谐波分量猛增,而电力系统微机保护和二次控制中,很多信号的处理与分析是基于基波和某些整次谐波的,因此,滤波器一直是电力系统二次装置中的关键部件。
目前,微机保护和二次信号处理软件主要采用数字滤波器。
传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。
利用LabVIEW(Laboratory Virtual INSTRUMENT Engineering Workbench,实验室虚拟仪器工作平台)使用G 语言(Graphics Language,1. 数字滤波器及其传统设计方法1.1 数字滤波器概述滤波器是一种使有用频率信号通过同时抑制(或大为衰减)无用频率信号的装置。
工程上常将它用于信号处理、数据传送和抑数字滤波器是数字信号分析中的重要组成部分,它的输入和输出信号都是离散的,与模拟滤波器相比,它具有准确度和稳定性高,系统函数容易改变,灵活性高等优点,因而数字滤波器在工程中得到了广泛的应用[2]。
数字滤波器有多种分类,按频率特性分类可以分为:高通、低通、带通、带阻;按数字滤波器冲激响应的时域特征分类可以分为:有限冲激响应滤波器(finite impulse response, FIR)和无限冲激响应滤波器(infinite impulse response, IIR)。
FIR 滤波器的冲击响应h(n) 是有限序列,IIR 滤波器的冲击响应h(n) 是无限序列的。
数字滤波器的差分方程可以用下式表示:。
使用LabVIEW实现数字滤波器的设计
使用LabVIEW实现数字滤波器的设计引言正常情况下,电力系统中三相电力是对称的,它们之间满足一定的幅值和相位条件;但当负载变化时,系统受到影响,波形会发生畸变。
随着经济的发展,许多非线性电力负荷投入使用,使电网中谐波分量猛增,而电力系统微机保护和二次控制中,很多信号的处理与分析是基于基波和某些整次谐波的,因此,滤波器一直是电力系统二次装置中的关键部件。
目前,微机保护和二次信号处理软件主要采用数字滤波器。
传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。
利用LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工作平台)使用G 语言(Graphics Language,图形化编程语言)编程,可以快速有效地实现数字滤波器的设计与仿真。
由于G 语言编程具有诸多优点,因此基于LabVIEW 设计的数字滤波器具有高效、灵活、界面友好、集成性强、费用低、用户自定义功能强等诸多优点[1]。
1. 数字滤波器及其传统设计方法1.1 数字滤波器概述滤波器是一种使有用频率信号通过同时抑制(或大为衰减)无用频率信号的装置。
工程上常将它用于信号处理、数据传送和抑数字滤波器是数字信号分析中的重要组成部分,它的输入和输出信号都是离散的,与模拟滤波器相比,它具有准确度和稳定性高,系统函数容易改变,灵活性高等优点,因而数字滤波器在工程中得到了广泛的应用[2]。
数字滤波器有多种分类,按频率特性分类可以分为:高通、低通、带通、带阻;按数字滤波器冲激响应的时域特征分类可以分为:有限冲激响应滤波器(finite impulse response, FIR)和无限冲激响应滤波器(infinite impulse response, IIR)。
FIR 滤波器的冲击响应h(n) 是有限序列,IIR 滤波器的冲击响应h(n) 是无限序列的。
IIR数字滤波器设计及实现
实验三IIR数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
二、实验原理设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。
脉冲响应不变法:根据设计指标求出滤波器确定最小阶数N和截止频率Wc;计算相应的模拟滤波器系统函数;将模拟滤波器系统函数:'转换成数字滤波器系统函数双线性变换法:根据数字低通技术指标得到滤波器的阶数N;取合适的T值,几遍校正计算相应模低通的技术指标--;根据阶数N查表的到归一化低通原型系统函数。
,将"' Q 代入。
‘去归一化得到实际的,/ :' ;用双线性变换法将:’转换成数字滤波器三、实验内容及步骤1、用脉冲响应不变法设计(1)根据设计指标求出滤波器确定最小阶数N和截止频率Wcclear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn 得到结果为:N 二7Wn 二 0.3266 即:该设计指标下的模拟滤波器最小阶数为N=7,其截至频率为Wn =0.3266;(2)计算相应的模拟滤波器系统函数打:, clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数 Wn[B,A]=butter(N,1,'s' %计算相应的模拟滤波器系统函数得到结果为: B = 1.0e-003 * 0 00 0 0 0 0 0.3966 A =1.0000 1.4678 1.0773 0.5084 0.1661 0.0375 0.0055 0.0004 >>(3)将模拟滤波器系统函数转换成数字滤波器系统函数 clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定 butterworth 的最小阶数 N 和频率参数Wn[B,A]=butter(N,1,'s' ; %计算相应的模拟滤波器系统函数 [Bz,Az]=impinvar(B,A %用脉冲相应不变法将模拟滤波器转换成数字滤波器 sys=tf(Bz,Az,T; %得到传输函数‘‘‘‘‘ Bz =1.0e-004 *-0.0000 0.0045 0.2045 0.8747 0.7094 0.1090 0.0016 0Az =1.0000 -5.5415 13.2850 -17.8428 14.4878 -7.1069 1.9491 -0.2304>>>>即:由Bz和Az可以写出数字滤波器系统函数为:Transfer function:-9.992e-015 z~7 + 4.454e-007 z~6 + 2.045e-005 z~5 + 8.747e-005 z~4 + 7.094e-005 z"3 + 1.09e-005 z~2+ 1.561e-007 z z 7 - 5.541 z 6 + 13.28 z 5 - 17.84 z 4 + 14.49 z 3 - 7.107 z 2 + 1.949 z - 0.2304Sampling time: 4.5351e-005>>(4)绘图clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s 的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth 的最小阶数N 和频率参数Wn[B,A]=butter(N,Wn,'s'; %计算相应的模拟滤波器系统函数[Bz,Az]=impinvar(B,A; %用脉冲响应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T;%得到传输函数‘ [H,W]=freqz(Bz,Az,512,Fs; % 生成频率响应参数plot(W,20*log10(abs(H; % 绘制幅频响应grid on; %加坐标网格得到结果为:观察实验结果图可看到:在频率为3402Hz处频率为衰减2.015db,在频率为5017Hz处幅度衰减21.36db。
IIR数字滤波器的设计及软件实现
IIR 数字滤波器的设计及软件实现一.实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法; (2)学会用MATLAB 信号处理工具箱中的滤波器设计函数(或滤波器设计分析工具FDAtool )设计各种滤波器,学会根据滤波需求确定滤波器指标参数; (3)掌握IIR 数字滤波器的MATLAB 实现方法;(4)通过观察滤波器输入、输出信号的时域波形及其频谱,建立数字滤波的概念。
二.实验原理设计IIR 数字滤波器一般采用间接法(脉冲响应不变法和双线性不变法),应用最广泛的是双线性变换法。
基本的设计过程是:①将给定的数字滤波器指标转换成模拟滤波器的指标; ②涉及模拟滤波器;③将模拟滤波器的系统函数转换成数字滤波器的系统函数。
MATLAB 信号处理工具箱中的各种IIR 数字滤波器设计函数都是采用双线性变换法。
本实验的数字滤波器的MATLAB 实验是调用MATLAB 信号处理工具箱的函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n). 三.实验内容及步骤1.信号处产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动回图显示st 的时域波形和幅频特性曲线,由后图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可通过滤波的方法在频域分离。
2.将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
且滤波器的通带最大衰减为0.1dB ,阻带最小衰减为60bB 。
提示:抑制载波单频调幅信号的数学表示式为()()()()()()[]tt t t t s f f f f f f c c c 0002cos 2cos 212cos 2cos )(++-==ππππ 其中,()t fc2cos π称为载波,fc为载波频率,()t f2cos π称为单频调制信号,f 0为调制正弦波信号频率,且满足fc>f 0。
iir数字滤波器的设计步骤
IIR数字滤波器的设计步骤1.简介I I R(In fi ni te Im pu l se Re sp on se)数字滤波器是一种常用的数字信号处理技术,它的设计步骤可以帮助我们实现对信号的滤波和频率选择。
本文将介绍I IR数字滤波器的设计步骤。
2.设计步骤2.1确定滤波器的类型I I R数字滤波器的类型分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器。
根据信号的要求,我们需确定所需滤波器的类型。
2.2确定滤波器的规格根据滤波器的应用场景和信号特性,我们需确定滤波器的通带范围、阻带范围和衰减要求。
2.3选择滤波器的原型常用的I IR数字滤波器有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等。
根据滤波器的需求,我们需选择适合的滤波器原型。
2.4设计滤波器的传递函数根据滤波器的规格和选定的滤波器原型,我们需计算滤波器的传递函数。
传递函数表示了输入和输出之间的关系,可以帮助我们设计滤波器的频率响应。
2.5对传递函数进行分解将滤波器的传递函数进行分解,可得到II R数字滤波器的差分方程。
通过对差分方程进行相关计算,可以得到滤波器的系数。
2.6滤波器的稳定性判断根据滤波器的差分方程,判断滤波器的稳定性。
稳定性意味着滤波器的输出不会无限增长,确保了滤波器的可靠性和准确性。
2.7选择实现方式根据滤波器的设计需求和实际应用场景,我们需选择I IR数字滤波器的实现方式。
常见的实现方式有直接I I型、级联结构和并行结构等。
2.8优化滤波器性能在设计滤波器后,我们可以对滤波器的性能进行优化。
优化包括滤波器的阶数和抗混淆能力等方面。
3.总结I I R数字滤波器的设计步骤包括确定滤波器的类型和规格、选择滤波器的原型、设计滤波器的传递函数、对传递函数进行分解、判断滤波器的稳定性、选择实现方式和优化滤波器性能等。
通过这些步骤的实施,我们可以有效地设计出满足信号处理需求的II R数字滤波器。
实验四IIR数字滤波器设计及软件实现
实验四IIR数字滤波器设计及软件实现IIR数字滤波器是一种重要的信号处理工具,常用于音频处理、图像处理、通信系统等领域。
本实验旨在通过软件实现IIR数字滤波器的设计和使用。
实验目标:1.了解IIR数字滤波器的基本原理和结构。
2. 学会使用Matlab等软件工具进行IIR数字滤波器设计和模拟。
实验步骤:1.确定滤波器的要求:包括滤波器的类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的衰减要求等。
2.根据滤波器的要求选择适合的设计方法:常见的设计方法包括脉冲响应、巴特沃斯、切比雪夫、椭圆等。
3. 使用Matlab等软件工具进行滤波器设计:根据选择的设计方法,使用相应的函数或工具箱进行滤波器的设计。
4.评估滤波器性能:通过频率响应曲线、幅频特性、相频特性等评估滤波器的性能,比如阻带衰减、通带波动等。
5.应用滤波器:将设计好的滤波器应用到实际信号中,观察滤波效果。
6.优化滤波器性能(可选):根据实际应用需求,对滤波器的设计进行调整和优化。
实验注意事项:1.在进行滤波器设计时,要根据实际应用需求选择合适的滤波器类型和设计方法。
2.在评估滤波器性能时,要对设计结果进行全面的分析,包括滤波器的频率响应、幅频特性、相频特性等。
3.在实际应用过程中,可以根据实际需求对设计结果进行优化和调整,以达到更好的滤波效果。
参考资料:1.陈志骏等编著,《信号与系统实验指导书》。
2. Proakis, J. G., & Manolakis, D. G. (1996). Digital signal processing: principles, algorithms, and applications. Pearson Education India.。
实验三IIR数字滤波器设计及软件实现
实验三IIR数字滤波器设计及软件实现IIR数字滤波器是一种常见的数字滤波器类型,它可以实现对信号的频率响应进行调整和改变,常用于信号处理和通信系统中。
本实验将介绍IIR数字滤波器的设计方法和软件实现。
设计一个IIR数字滤波器的一般步骤如下:1.确定滤波器的类型:低通滤波器、高通滤波器、带通滤波器或带阻滤波器。
2.确定滤波器的阶数:阶数决定了滤波器的复杂程度和性能。
3.确定滤波器的截止频率:截止频率决定了滤波器对信号的频率响应的影响。
4.根据滤波器类型和截止频率的要求,选择适当的滤波器设计方法:脉冲响应不变法、双线性变换法等。
5.根据滤波器设计方法,计算出滤波器的系数:系数决定了滤波器的频率响应和性能。
6.实现滤波器的差分方程:将滤波器的系数代入差分方程中,得到滤波器的离散时间域表示。
7. 使用合适的软件工具进行滤波器的软件实现和仿真:可以使用MATLAB、Python等编程语言进行滤波器设计和实现。
在软件实现过程中,通常可以通过以下步骤来实现IIR数字滤波器:1.定义滤波器的参数和输入信号:定义滤波器的类型、阶数、截止频率等参数,并读取输入信号。
2.计算滤波器的系数:根据设计方法和参数,计算滤波器的系数。
3.实现滤波器的差分方程:根据滤波器的差分方程,使用循环结构来实现滤波器的运算。
4.输入信号进入滤波器:将输入信号输入滤波器,进行滤波处理。
5.输出滤波后的信号:获取滤波器的输出结果,并进行处理和显示。
需要注意的是,IIR数字滤波器的设计和实现需要对信号处理和数字滤波器的基本原理有一定的了解,并且需要根据实际需求选择合适的设计方法和参数。
参考资料:2. Zhu, Y., & Buck, J. (2024). VLSI signal processing. John Wiley & Sons.。
基于LabVIEW的IIR数字滤波器的设计
第26卷第3期湖 北 工 业 大 学 学 报2011年06月Vol.26No.3 Journal of Hubei University of Technology Jun.2011[收稿日期]2010-11-03[作者简介]邹 玲(1962-),女,湖北武汉人,湖北工业大学教授,研究方向为工程电磁场数值计算及电网络分析[文章编号]1003-4684(2011)03 0083 02基于LabV IEW 的IIR 数字滤波器的设计邹 玲,郭 彪,楚思红(湖北工业大学电气与电子工程学院,湖北武汉430068)[摘 要]详细介绍了基于L abV IEW 虚拟滤波器的设计原理和开发过程.并以巴特沃斯低通滤波器为实例,用LabV IEW 软件模拟产生一个接近实际信号并带噪声的虚拟信号,可根据实验的需求调整参数,并通过仪器的前面板来显示滤波前后的时域波形.[关键词]LabV IEW;虚拟仪器;数字滤波器[中图分类号]T N 713,T P34[文献标识码]:A作为21世纪科学技术中的核心技术之一,虚拟仪器技术突破了以硬件为主体模式的传统电子仪器,是利用计算机自动化测试仪器的系统.虚拟仪器经由软件把计算机硬件资源和仪器有机地结合在一起,进而使计算机强大的计算处理能力同仪器硬件的控制、测量能力整合为一体,达到了减少体积与成本的目的,经过软件达到对数据的显示、分析、处理和储存的功能[1].1 数字滤波器原理数字滤波器是一种在信号中屏蔽无用噪声提取有用信号的重要装置,它在实际的信号处理中起到了重要的作用.巴特沃斯低通滤波器作为IIR 滤波器的一种,是用最平通带特性去逼近理想低通特性.其特性如下所示.1)幅频特性|H ( )|=[1+( / c )2n]-1.(1)式中,n =1,2,3, 为滤波器的阶次.2)一阶巴特沃斯低通滤波器的传递函数H (s )=K b 0/(b 1s +b 0)=K /( s +1).(2)式中,s = +j , =b 1/b 0.令 =0得H (j )=H ( )=k/( j +1).(3)幅频特性A( )=|H (j )|=k /1+( / c )2.(4)相频特性(j )= ( )=-arctan =-ar ctan ( / c ).2 基于L abV IEW 的数字滤波器的应用该文研究的虚拟巴特沃斯滤波器需要一个能够产生方波、正弦波、三角波等典型信号的发生器,它是本文研究的先决条件,用来发生实验中所需要信号的波形,接着用巴特沃斯滤波器对这些波形实现滤波分析.滤波前后的信号波形能够显示在仪器前面板中的显示控件上.从而方便直观地观察和对比信号变化.滤波器类型、阶次、高低截止频率等参数能够依据测试的要求,经由仪器前面板上的对应控件选择和设定.2.1 butterw orthfilter.vi 图标的调用图1为butterw orthfilter.v i 图标,它的调用路径执行functions>analy ze>signalprocessing >fil ter >butterw orthfilter.vi 操作.图1 butter wo rthfilter.vi 图标图2为butterw orthfilter.v i 图标的参数设置.图中左侧为输入端口参数,右侧为输出端口参数.图2 but terw ort hfilter.v i 图标及其窗口2.2 前面板设计图3为虚拟巴特沃斯滤波器的前面板.两个波形显示的控件(Wavefo rmGraph)在前面板上,各自为了呈现生成模块产生的信号,这些信号是经由滤波分析前后的时域波形,滤波器类型的控件能够参考的滤波器为H ig hpass 、Low pass 、Bandstop 和Bandpass,而且能够通过低截止频率、高截止频率和阶次实现滤波器类型的确定,其他一些控件功能是确定生成信号源的参数,如信号频率、采样频率、采样点数、幅值、相位等.图3 虚拟巴特沃斯滤波器前面板2.3 程序设计在仪器的后面板也就是流程图设计中,使用case 这种分支选择结构,case 结构条件的端子输入值由一个波形类型选择的控件控制,能够决断哪个分支程序的运行,能够使用的波形类型为正弦波、三角波、锯齿波、方波,控制和调节虚拟滤波器前面板上的相应控件需要的信号波形.数据处理的模块,使用一个Butterw orthFilter.Vi 的函数,它被包含在 FunctionSig nalProcessing Filters 子模板中,这个VI 可以通过设置相关的参数达到对输入信号的滤波处理(图4).图4 虚拟巴特沃斯滤波器程序框图3 结束语通过以上仿真实验可以得出结论,当滤波器有较高的阶次时,系统中的频率响应速度就会较快,阶次越高就越能接近理想特性.采用图形化语言编程也增加了程序的可读性,在虚拟仪器系统中可以把虚拟滤波器作为子程序调用.为了达到不同环境下的测量要求,该系统完全可以并入大型虚拟仪器类电子测量系统.[ 参 考 文 献 ][1] 侯国屏,王 坤,叶齐鑫.L A BV IEW7.1编程与虚拟仪器设计[M ].北京:清华大学出版社,2005.[2] 姚天任,江太辉.数字信号处理[M ].武汉:华中科技大学出版社,1999.[3] Jose M Gr ima Palop,Jose M Andres T eruel.V irt ualWo rk Bench for Elet ronic Instrumentatio n T eaching [J].IEEE T ransaction on Education,2000,43(1):15[4] Luig ino Benetazzo ,M atteo Ber tocco,F ranco F err aris,A lessandro F err ero.A W eb Based Distr ibuted V irt ual Educat ional L abor ator y [J].IEEE T ransact ions on In str umentatio n and M easur ement,2000,49(2):349[5] Har riso n L an.T her mal analy sis of polymer s using virtual inst ruments[J],T her m chimicaActa,2001(8):367-368Design of Digital Filter Based on LabVIEWZOU Ling,GU O Biao,CH U Si hong(School of E lectr ical &Electr onic Engin.,H ubei Univ.of Tech.,Wuhan 430068,China)Abstract:T his paper descr ibes the virtual filter's design principles and dev elo pment pro cess based on the LabVIEW.Butterw orth lo w pass filter is used as an ex ample,a realistic simulation is generated w ith a no ise sig nal by LabVIEW,the virtual signal's parameter s can be adjusted,and the filtering w avefo rm can be displayed o n the instrument's front panel.Keywords:LabVIEW;v ir tual instrument;virtual Filter[责任编校:张岩芳]84湖 北 工 业 大 学 学 报2011年第3期。
IIR数字滤波器设计及实现.
实验三 IIR数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数设计IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
二、实验原理设计IIR数字滤波器一般采用脉冲响应不变法和双线性变换法。
脉冲响应不变法:根据设计指标求出滤波器确定最小阶数N和截止频率Wc;计算相应的模拟滤波器系统函数;将模拟滤波器系统函数转换成数字滤波器系统函数双线性变换法:根据数字低通技术指标得到滤波器的阶数N;取合适的T值,几遍校正计算相应模低通的技术指标;根据阶数N查表的到归一化低通原型系统函数,将代入,去归一化得到实际的;用双线性变换法将转换成数字滤波器三、实验内容及步骤1、用脉冲响应不变法设计(1)根据设计指标求出滤波器确定最小阶数N和截止频率Wcclear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth的最小阶数N和频率参数Wn得到结果为:N =7Wn =0.3266即:该设计指标下的模拟滤波器最小阶数为N=7,其截至频率为Wn =0.3266;(2)计算相应的模拟滤波器系统函数clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth的最小阶数N和频率参数Wn[B,A]=butter(N,1,'s' %计算相应的模拟滤波器系统函数得到结果为:B =1.0e-003 *0 0 0 0 0 0 0 0.3966A =1.0000 1.4678 1.0773 0.5084 0.1661 0.0375 0.0055 0.0004>>(3)将模拟滤波器系统函数转换成数字滤波器系统函数clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth的最小阶数N和频率参数Wn[B,A]=butter(N,1,'s'; %计算相应的模拟滤波器系统函数[Bz,Az]=impinvar(B,A %用脉冲相应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T; %得到传输函数Bz =1.0e-004 *-0.0000 0.0045 0.2045 0.8747 0.7094 0.1090 0.0016 0Az =1.0000 -5.5415 13.2850 -17.8428 14.4878 -7.1069 1.9491 -0.2304>>>>即:由Bz和Az可以写出数字滤波器系统函数为:Transfer function:-9.992e-015 z^7 + 4.454e-007 z^6 + 2.045e-005 z^5 + 8.747e-005 z^4 + 7.094e-005z^3 + 1.09e-005 z^2+ 1.561e-007 z---------------------------------------------------------------------------------------------------------z^7 - 5.541 z^6 + 13.28 z^5 - 17.84 z^4 + 14.49 z^3 - 7.107 z^2 + 1.949 z - 0.2304Sampling time: 4.5351e-005>>(4)绘图clear;close all;clc; % 开始准备fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; % T=1s的模拟滤波器设计指标W1p=fp/Fs*2; W1s=fs/Fs*2; % 求归一化频率[N, Wn] = buttord(W1p, W1s, Rp, Rs, 's'; % 确定butterworth的最小阶数N和频率参数Wn[B,A]=butter(N,Wn,'s'; %计算相应的模拟滤波器系统函数[Bz,Az]=impinvar(B,A; %用脉冲响应不变法将模拟滤波器转换成数字滤波器sys=tf(Bz,Az,T; %得到传输函数[H,W]=freqz(Bz,Az,512,Fs; % 生成频率响应参数plot(W,20*log10(abs(H; % 绘制幅频响应grid on; % 加坐标网格得到结果为:观察实验结果图可看到:在频率为3402Hz处频率为衰减2.015db,在频率为5017Hz处幅度衰减21.36db。
IIR数字滤波器的设计及软件实现
IIR 数字滤波器的设计及软件实现一.实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法; (2)学会用MATLAB 信号处理工具箱中的滤波器设计函数(或滤波器设计分析工具FDAtool )设计各种滤波器,学会根据滤波需求确定滤波器指标参数; (3)掌握IIR 数字滤波器的MATLAB 实现方法;(4)通过观察滤波器输入、输出信号的时域波形及其频谱,建立数字滤波的概念。
二.实验原理设计IIR 数字滤波器一般采用间接法(脉冲响应不变法和双线性不变法),应用最广泛的是双线性变换法。
基本的设计过程是:①将给定的数字滤波器指标转换成模拟滤波器的指标; ②涉及模拟滤波器;③将模拟滤波器的系统函数转换成数字滤波器的系统函数。
MATLAB 信号处理工具箱中的各种IIR 数字滤波器设计函数都是采用双线性变换法。
本实验的数字滤波器的MATLAB 实验是调用MATLAB 信号处理工具箱的函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n). 三.实验容及步骤1.信号处产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动回图显示st 的时域波形和幅频特性曲线,由后图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可通过滤波的方法在频域分离。
2.将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
且滤波器的通带最大衰减为0.1dB ,阻带最小衰减为60bB 。
提示:抑制载波单频调幅信号的数学表示式为()()()()()()[]tt t t t s f f f f f f c c c 0002cos 2cos 212cos 2cos )(++-==ππππ 其中,()t fc2cos π称为载波,fc为载波频率,()t f2cos π称为单频调制信号,f 0为调制正弦波信号频率,且满足fc>f 0。
labview结题报告 IIR虚拟滤波器的设计
北京信息科技大学基于LabVIEW的虚拟仪器设计结课报告题目:基于Labview的数字IIR虚拟滤波器的设计班级:学号:姓名:电话:成绩:基于Labview的数字IIR虚拟滤波器的设计1.虚拟仪器系统功能描述背景:Labview简介LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制。
LabVIEW 集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
传统文本编程语言根据指令的先后顺序决定程序执行顺序,但LabVIEW 则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI 及函数的执行顺序。
LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW 中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G 代码。
LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图。
意义:数字滤波器是数字信号分析中的重要组成部分,它实现对信号的滤波、提取、增强信号的有用分量、削弱无用的分量。
经典滤波器的特点是输入信号中的有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器达到滤波目的。
但如果信号和干扰的频率相重叠,那么经典滤波器将无能为力,这时需要采用现代滤波器,如维纳滤波器、卡尔曼滤波器、自适应滤波器等。
从实现的网络结构或从单位脉冲响应分类,数字滤波器可以分为无限脉冲相应滤波器(Infinite impulse respose,IIR)和有限脉冲相应滤波器(Finite impulse respose,FIR)。
IIR数字滤波器的设计及软件实现
IIR 数字滤波器的设计及软件实现一.实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法; (2)学会用MATLAB 信号处理工具箱中的滤波器设计函数(或滤波器设计分析工具FDAtool )设计各种滤波器,学会根据滤波需求确定滤波器指标参数; (3)掌握IIR 数字滤波器的MATLAB 实现方法;(4)通过观察滤波器输入、输出信号的时域波形及其频谱,建立数字滤波的概念。
二.实验原理设计IIR 数字滤波器一般采用间接法(脉冲响应不变法和双线性不变法),应用最广泛的是双线性变换法。
基本的设计过程是:①将给定的数字滤波器指标转换成模拟滤波器的指标; ②涉及模拟滤波器;③将模拟滤波器的系统函数转换成数字滤波器的系统函数。
MATLAB 信号处理工具箱中的各种IIR 数字滤波器设计函数都是采用双线性变换法。
本实验的数字滤波器的MATLAB 实验是调用MATLAB 信号处理工具箱的函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n). 三.实验内容及步骤1.信号处产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动回图显示st 的时域波形和幅频特性曲线,由后图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可通过滤波的方法在频域分离。
2.将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
且滤波器的通带最大衰减为0.1dB ,阻带最小衰减为60bB 。
提示:抑制载波单频调幅信号的数学表示式为()()()()()()[]tt t t t s f f f f f f c c c 0002cos 2cos 212cos 2cos )(++-==ππππ 其中,()t fc2cos π称为载波,f c为载波频率,()t f 02cos π称为单频调制信号,f为调制正弦波信号频率,且满足fc>f。
基于Delphi的IIR数字滤波器的设计与实现
基于Delphi的IIR数字滤波器的设计与实现张倩;喻金科【摘要】The filter is the basis of digital signal processing. In view of the data acquisition process will often introduce the high frequency interference,the paper uses Butterworth iflter design method,designs a IIR low-pass digital iflter,and realizes IIR iflter based on Delphi environment design method.Through the iflter,the inside of the signal interference signal is ifltered out basically,useful signal is not affected,effect is good,there is a certain practical value.%滤波是数字信号处理的基础,数据采集过程中经常会引入高频干扰,文章利用巴特沃斯(Butterworth)滤波器设计方法,设计了一种IIR低通数字滤波器,并基于Delphi环境应用软件设计的方法实现了IIR滤波器。
通过滤波,信号里面的干扰信号基本上被滤除,有用信号未受到影响,滤波效果尚可,具有一定的实用价值。
【期刊名称】《无线互联科技》【年(卷),期】2015(000)019【总页数】3页(P136-138)【关键词】IIR 数字滤波器;巴特沃斯;低通【作者】张倩;喻金科【作者单位】南昌航空大学信息工程学院,江西南昌 330063;南昌航空大学信息工程学院,江西南昌 330063【正文语种】中文数字滤波器(Digital Filter,DF)在数字信号处理中发挥着十分重要的作用,数字滤波器用来滤除数字信号中的干扰信号,通过对采样到的数字信号进行一系列的数学运算来达到频域滤波的目的。
基于LabVIEW的IIR数字滤波器的设计
基于LabVIEW的IIR数字滤波器的设计
荣雅君;刘琳;贾艳;高广峰
【期刊名称】《微计算机信息》
【年(卷),期】2008(24)16
【摘要】数字滤波器是数字系统的重要组成部分.利用文本文件实现数字滤波器存在滤波系数不易调整、开发周期长等问题.本文根据IIR的设计原理,采用LabVIEW 开发平台,完成了该平台下的数字滤波器的设计,经在电力系统仿真模型上的实验证明,该滤波器能有效地滤除信号中的谐波分量,提取有用分量,并且大大提高了开发效率.
【总页数】3页(P95-97)
【作者】荣雅君;刘琳;贾艳;高广峰
【作者单位】066004,河北省,秦皇岛市燕山大学电气工程学院;066004,河北省,秦皇岛市燕山大学电气工程学院;066004,河北省,秦皇岛市燕山大学电气工程学院;066004,河北省,秦皇岛市燕山大学电气工程学院
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于LabVIEW的IIR数字滤波器的设计 [J], 邹玲;郭彪;楚思红
bVIEW和Delphi混合编程实现IIR数字滤波器设计 [J], 郑冬;张河新
3.基于LabVIEW的IIR数字滤波器性能分析 [J], 桂静宜
4.基于Labview的IIR数字滤波器教学刍议 [J], 谭岳衡;眭仁武
5.基于LabVIEW平台的IIR数字滤波器设计 [J], 王丽坤;邵俊鹏;刘玉林;金婉如因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0引言美国NI 公司开发的LabVIEW 软件是一种高性能的图形化虚拟仪器编程软件,主要用于开发数据监测、数据测量采集系统、工业自动控制系统、数据分析系统等领域,是虚拟仪器开发的主要工具之一。
但其本身也有不足,例如不能完全提供用户所需的驱动程序和调用系统程序实现底层操作,不擅长完成大量数据处理的任务。
Delphi 语言是一种功能强大的编程语言,基于窗口和面向对象,并兼有VC 的强大功能和VB 的快速开发、易学易用的优点;具有开发效率高、界面制作美观方便、可实现各种操作功能等特点,已成为软件开发人员的首选工具。
如果能够实现LabVIEW 和Delphi 的混合编程,就可弥补L abVIEW 的上述不足,开发出功能更为强大的程序。
本文以IIR 数字滤波器设计程序为例,介绍在Delphi 中调用L abVIEW 制作的虚拟仪器,实现LabVIEW 和Delphi 混合编程的方法。
1实现方法1.1概述本文依靠LabVIEW 提供的Activ eX 接口,实现对L abVIEW 的调用。
LabVIEW 可以用作一个ActiveX 客户程序,从而访问其它支持Activ eX 应用程序的对象、属性、方法和事件。
LabVIEW 也可作为Activ eX 服务器,在其它的应用程序中也可以访问L abVIEW 的对象、属性和方法。
在Delphi 中调用L abVIEW 时,应将L abVIEW 作为Activ eX 服务器。
当激活LabVIEW ,使它作为Activey 服务器时,LabVIEW 输出两个类(一个类和一个V I 类),应用类可以打开V I 类的一个实例,通过这个实例即可调用L abVIEW 中制作的虚拟仪器。
1.2使用L abVIEW 制作虚拟仪器为实现IIR 数字滤波器设计,首先要使用Lab-VIEW 制作虚拟仪器(VI ),其程序框图见图1。
在这个VI 中,首先使用一组控制器(Co ntro ls ),包括2个Enum 和6个Numeric Control ,用来输入滤波器的设计参数,包括:滤波器的设计方法(T opolo gy )、类型(Ty pe )、阶次(Order )、上限频率(UFC )、下限频率(LFC )、通带波纹(PBR )、阻带衰减(SBA )、信号采样频率(Fs )等。
而待滤波的信号,使用数组控制器(In-putArray )来输入。
这在框图中,首先由输入采样频率和信号数据构造一个波形作为待滤波的信号。
然后将滤波器的设计参数组合为一个簇后,传递给两个Dig italIIR F VI ,由其中一个D IIR F VI 根据给作者简介郑冬,男,8年生,河南科技大学在读硕士研究生。
LabVIEW 和Delphi 混合编程实现IIR 数字滤波器设计郑冬1,2张河新1(1.河南科技大学机电工程学院河南洛阳471003;2.南阳理工学院河南南阳473004)【摘要】利用L abVIEW 提供的ActiveX 接口,使用Delphi 编写程序调用LabVI EW 制作的虚拟仪器,实现了LabVIEW和D elphi 的混合编程,并用这种方法编写了IIR 数字滤波器设计程序;重点叙述了程序的设计过程,并给出了程序代码。
【关键词】LabVIEW;Delphi;ActiveX;IIR 数字滤波器【中图分类号】TP314【文献标识码】A【文章编号】1003-773X(2007)04-0136-03图1VI 前面板和框图第4期(总第97期)机械管理开发2007年8月No.4(S UM No.97)MECHANICAL M ANAGEM ENT AND DEV ELOP MENTAug.200736Application itual nstrum ent Appli-catio n itual nstrument ilter igital ilter :1971定的参数设计IIR 滤波器并对输入信号滤波。
另一个则接收一个白噪声信号输入,并按相同的参数对其进行滤波,目的是估计出滤波器的幅频特性,并显示在前面板上。
最终,待滤波信号经滤波后产生的输出信号数据,由一个数组指示器(OutputArray )输出。
前面板上的三个Wav eform Graph 分别用来显示滤波器的幅频特性、输入信号波形、滤波后信号波形。
这个VI 制作完成后,为了在Dephi 中调用,还必须定义连接器,把此VI 的输入(包括滤波器设计参数和输入信号)定义为输入端子,将VI 的输出(Out-putArray )定义为输出端子。
完成后保存为文件IIR-Filter.v i 。
1.3在Delphi 中调用VI上述VI 制作完成并保存后,即可在Delphi 中调用了。
要在Delphi 中调用刚才制作的VI ,首先必须在Delphi 中安装LabVIEW 提供的Applicatio n 组件[1]。
方法是在Delphi 环境中,点击菜单项Pro ject →Impo rt TypeLibrary …,就会出现“Impo rt Ty pe Library ”对话框,在此对话框上方的列表框中选中L abVIEW8.0Type Library (Versio n 5.5),点击“Install …”按钮,安装完毕后在Delphi 的Activ eX 组件页就会出现Applicatio n 组件,见图2。
Applicatio n 组件安装完毕后,即可在Delphi 中编写调用VI 的应用程序了。
编写应用程序时,首先将Ap-plication 组件添加到程序中,组件名称为Application1。
然后在程序中添加一组组件(Co mboBox 和Edit )用来输入滤波器的设计参数,并添加按钮组件控制VI 的调用。
此程序的编写过程不在此详述,仅给出实现VI 调用的按钮事件响应代码。
Procedure Tfrm Main.btnStartClick(Sender:T Object);var//定义两个变体作为VI 调用参数paramn ames :OleVariant;paramv als :OleVariant;//定义存储VI 输入输出数据的动态数组x :Array o f Double;y :Array of Do uble;VIPath :string ;//VI 文件路径//定义引用VI 的对象变量VI:v irtualinstrument;//定义其它变量…初始化VI 调用参数=y ([,],);=y ([,],);paramnames[0]:='To polo gy ';paramnames[1]:='Ty pe';paramnames[2]:='Order';paramnames[3]:='LFC';paramnames[4]:='UFC';paramnames[5]:='PB R';paramnames[6]:='SBA';paramnames[7]:='Fs';paramnames[8]:='InputArray ';param names[9]:='Outp utArray ';//从组件中读入滤波器设计参数paramv als[0]:=cmbT opo log y.ItemIndex ;paramv als[1]:=cmbT ype.ItemIndex;paramv als[2]:=strto int(edtOrder.Text);paramv als[3]:=strto flo at(edtL FC.Text);paramv als[4]:=strto flo at(edtUFC.T ex t);paramv als[5]:=strto flo at(edtPBR.T ex t);param vals[6]:=strto float(edtSB A.T ext);//读入待滤波数据s etleng th(x ,N);…//此处将待滤波数据赋值给数组x Paramvals [7]:=Fs;//信号采样频率paramv als [8]:=x;//调用VIVIPath:='…\IIRFilter.v i'//指明vi 文件路径VI:=Applicatio n1.GetVIReference(VIPath,'',true,0);VI.ShowFPOnC all:=true;VI.Call(paramn ames,param vals);//将滤波后数据赋值给数组y y:=paramv als [9];//输出数据的后续处理…end;上述程序运行后,首先启动LabVIEW ,然后运行前面制作的VI ,运行时的VI 前面板见图1。
图中滤波前信号为一混有白噪声的频率为1kHz 的方波信号,经带通滤波后,结果近似为1kHz 的正弦信号。
1.4VI 作为独立程序调用上述方法虽能实现VI 的调用,但调用时会首先启动LabVIEW 软件,这样会严重影响VI 的调用速度。
为了解决这个问题,可将VI 编译为可执行文件,然后再作为独立程序进行调用,其实现方法如下:当VI 制作完并保存后,可在L abVIEW 环境中将其编译为可执行文件,方法是:点击菜单项To ols →Build Executable …,软件弹出“Build Ex ecutable Wizard ”,在其中设置文件名后即可建立一个LabVIEW 工程。
在工程的“Project Explo rer ”窗口中右击“Build Specifications ”,在弹出的快捷菜单中点击New →Application (EXE ),软件弹出“M y A pplica-”对话框。
为了能在D 中调用生成的X 文件,须在此对话框的“”页中勾选“X S ”选项,对话框中的其它项目可根图2Applica tion 组件(下转第页)3beg in//paramn ames:vararra create 09v arvariant param val s:vararra creat e 09varv ari ant tion Properties elphi E E Advanced En-able Active erver 14017据需要设置。
设置完成后,点击“Build ”按钮,即可在指定目录下生成exe 文件和tlb 文件。
在Delphi 中调用上述exe 文件时,首先要使用菜单项Project →Impo rt Type Li-brary …安装刚才生成的tlb 文件,安装后在Delphi 组件页上会出现相应的组件,此组件的使用方法和前述的Application 组件类似,利用它即可将VI 作为独立程序调用。