基于
题 班 学 姓 电 成 1 北京信息科技大学 LabVIEW的虚拟仪器设计 结课报告 目:基于Labview的数字IIR虚拟滤波器的设计 级: 号: 名: 话: 绩:
基于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相比,FIR数字滤波器能够被设计成具有线性相位特性的滤波器。因此,它在要求具有线性相位的应用场合具有广泛的应用。数字滤波器的设计方法很多,其中较为常用的是窗函数设计法和频率采样设计法。本文介绍一种利用窗函数设计的虚拟滤波器。
LabVIEW 为设计者提供了FIR 和IIR 滤波器VI,使用起来非常方便,只需要输入相应的指标参数即可,不需要进行复杂的函数设计和大量的运算。滤波器VI 位于LabVIEW 流程图面板的Function>>Analyze>>Signal Processing>>Filters 上。基于LabVIEW的IIR 数字滤波器的设计
不同滤波器VI 滤波时均有各自的特点,因此它们用途各异。在利用LabVIEW 实现滤波功能时,选择合适的滤波器是关键,在选择滤波器时,可参照不同滤波器的特点,考虑滤波的实际要求来选择合适的滤波器。
实现的功能:
无限脉冲响应滤波器:
实现对含有噪声的信号进行滤波的功能,可实时显示输入信号波形和输出波形,以及副频响应和相频响应。
可选滤波器的结构有:Butterworth,Chebyshev,Inverse,Ellipic,Bessel。
可选滤波类型有:Lowpass 低通,Highpass 高通,Bandpass 带通,Bandstop 带阻
以及其他参数:阶数,低截至频率,高截至频率,通带波纹,阻带衰减,最低通带,最高通带,通带增益,阻带增益,最低阻带,最高阻带。
对于输入信号,可以选择正弦波,三角波,方波,还可以设定频率。
2
基于Labview的数字IIR虚拟滤波器的设计
可设置对输入信号的采样参数:采样频率Fs,采样数
此外,还可调节噪声的幅值,对滤波器进行重置开关操作。
2. 系统前面板设计
2.1 前面板图(宋体五号加黑)
前面板时域波形图
前面板幅频相频特性
滤波器参数设置
2.2 控件描述
显示环节:使用选项卡控件,制作两个选项卡:时域和滤波器信息,分别显示时域波形
3
基于Labview的数字IIR虚拟滤波器的设计
和频率特性。
滤波器参数设置环节:
使用信号输入控件,将多个输入控件组合在一起构建出多个簇,其中有IIR滤波器规范簇,可选IIR滤波器规范簇,输入信号参数簇和采样参数簇。
另外三个布尔元件作为开关使用
3. 程序框图设计
3.1程序框图
说明:程序使用循环结构,循环执行,进行滤波,如果程序执行期间出现错误,则跳出循环,按下停止按钮也可停止循环,2者进行或运算,来控制循环的停止。
3.2子程序
信号生成程序:
说明:信号通过前面板的设置,构成一个簇,通过按名称解除捆绑函数,将簇中的元素传递出去给基本函数发生器,基本函数发生器是一个VI。同时另外设置采样参数,同样构成一个簇,只是不需解除捆绑,直接传递给基本函数发生器即可。之后将生成的信号发送给均匀
4
基于Labview的数字IIR虚拟滤波器的设计
白噪声波形 VI,通过前面板的噪声幅值输入控件来控制添加的噪声的幅值,通过此VI,则构造了一个带有噪声的信号波形。最后,将这个信号输出给元素同址操作结构,只是提高了labview对内存和VI的效率,对信号没有任何影响,之后输出。这样,一个完整的输入信号就构造完成了。
滤波器程序
说明:在labview中,滤波器程序非常简单,只需要调用数字IIR滤波器这个VI文件即可,按照要求配置好输入控件,组合成簇,直接送入IIR滤波器,其中包括IIR滤波器规范和可选IIR滤波器规范。IIR滤波器产生两个输出,一个是信号输出,另一个是滤波器信息,前者是通过滤波操作后的信号波形,后者是幅频和相频特性,这两个输出都将送到前面版的波形显示控件上。
波形显示:
采用条件结构,通过前面板的标签选择来控制显示内容
时域波形图:
5
基于Labview的数字IIR虚拟滤波器的设计
说明:将原始信号和滤波后的信号结合在一起,组成一个新的数组,然后将结果传递给波形图控件进行显示。因为要显示两个波形,所以需要对波形图控件的属性进行设置,把输入和输出波形用不同的颜色区分开。
副频相频特性显示板:
说明:将滤波器的其中一个输出,滤波器信息传递给波形显示结构,然后对其进行按名称解除捆绑操作,幅频特性簇为H(w),需要通过将线性幅度转化为DB这个子VI进行信号的转换操作,最后将结果传递给波形图控件,显示幅频特性。
相频特性也为H(w),无需任何操作,直接传递给波形图进行显示即可。
另外还有阶数,通过一个数值显示控件进行显示。
4. 运行结果分析
6
基于Labview的数字IIR虚拟滤波器的设计
程序运行后,成功的完成了滤波功能,改变不同的滤波器类型,噪声幅值,输入信号,也能够很好地完成信号的滤波工作。
7
第二篇:IIR滤波器设计实验
数字信号处理实验报告
实验三:IIR滤波器设计实验
班 级: 10051041
姓 名:
学 号:
一、实验目的
1.学习模拟-数字变换滤波器的设计方法
2.掌握双线性变换滤波器的设计方法
3.掌握实现数字滤波的具体方法。
二、实验要求
1. 用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。设计指标参数为:在通带内频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π, π]频率区间上,最小衰减大于15dB.
2.0.02π为采样间隔,打印出数字滤波器在频率区间[0, π/2]上的频率响应特性曲线。
3. 用所设计的滤波器对实际心电图信号采样序列进行仿真滤波处理,观察总结滤波作用与效果
附:心电图采样序列x(n)
人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在实验中以x(n)作为输入序列,滤除其中的干扰成分。
{x(n)}={-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0}
三、实验设备
计算机、Matlab软件
四、实验程序
1、先设计模拟滤波器,再转化数字滤波器 ,程序为:
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
Rs=15;
Ts=0.02*pi;
Fs=1/Ts;
wp1=2/Ts*tan(wp/2);%将模拟指标转变成数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数
[Z,P,K]=buttap(N);%创建butterworth模拟滤波器
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换
[H,W]=freqz(bz,az,50);%绘制频率响应曲线
L=length(W)/2+1;
figure(1),plot(W(1:L)/pi,abs(H(1:L))),grid,xlabel('角频率(\pi)'),ylabel('频率响应幅度');
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,...
-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,...
-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
y=filter(bz,az,x); %滤波
figure(2),
subplot(2,1,1),plot(x),title('原始信号');
subplot(2,1,2),plot(y),title('滤波后信号');
实验结果图
2、直接设计数字滤波器,程序为:
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
Rs=15;
Ts=0.02*pi;
Fs=1/Ts;
wp1=0.2; %归一化指标
ws1=0.3;
[N,Wn]=buttord(wp1,ws1,Rp,Rs); %选择滤波器的最小阶数
[bz,az]=butter(N,Wn);
[H,W]=freqz(bz,az);%绘制频率响应曲线
figure(1),plot(W*Fs/(2*pi),abs(H)),grid,xlabel('频率/Hz'),ylabel('频率响应幅度');
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,...
-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,...
-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
y=filter(bz,az,x); %滤波
figure(2),
subplot(2,1,1),plot(x),title('原始信号');
subplot(2,1,2),plot(y),title('滤波后信号');
实验结果图
五、实验总结
IIR数字滤波器的设计步骤:
(1)按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;
(2)根据转换后的技术指标设计模拟低通滤波器;
(3)按一定规则将转换为。
注:若所设计的数字滤波器是低通的,那么上述设计工作结束;若所设计的是高通、带通、带阻滤波器,需要将(1)进行改动:将高通、带通、带阻滤波器的技术指标先转换为低通滤波器的技术指标。
实验心得
通过试验不仅熟练了Matlab在DSP方面的应用同时也掌握了模拟-数字变换滤波器的设计方法,对双线性变换的特点有了更深的理解,即双线性变换采用的是非线性映射滤波器的设计方法,消除了冲激响应不变法中的混叠现象,并且幅频响应的衰减比较快。