基于labview的多功能滤波器设计a内容摘要:

算机基础上,配有相应的硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档低价的新型仪器。 由于虚拟仪器不依赖功能和结构复杂的仪器模块,使得开发成本大幅度降低,加之从设计开发到用户使用过程种的众多优点,可以预见在不远的将来,在测试系统领域,虚拟仪器系统将取代传统的测试设备,成为测试系统的主流。 虚拟仪器的组成 虚拟仪器由仪器硬件平台和应用软件两部分组成。 ( 1)构成虚拟仪器的硬件系统一般分为计算机硬件平台和接口设备。 硬件平台可以是台式机,笔记本电脑,工作站,嵌入式 计算机等。 计算机管理着虚拟仪器的软,硬件资源,是虚拟仪器的硬件基础。 计算机管理着虚拟仪器的软,硬件资源,是虚拟仪器的硬件基础。 计算机在显示,存储,处理性能,网络,总线标准等方面的发展,促进了虚拟仪器系统的快速发展 [6]。 I/O 接口设备主要完成北测试输入信号的采集,放大,模 /数转换。 不同的总线有其相应 I/O 接口硬件设备,如利用 PC机总线的数据采集卡, GPIB 总线仪器, VXI 总线仪器模块,串行总线仪器等。 虚拟仪器的核心思想,就是使本来需要硬件或电路实现的技术软件化和虚拟化,最大限度地降低系统成本,增强系统地 测试精度很灵活性。 基于软件在虚拟仪器系统种地重要作用,从低层到顶层,虚拟仪器的软件框架包括三个部分: VISA库,仪器驱动程序和应用软件。 VISA 库实质就是标准 I/O 函数库及相关规范的总称。 它驻留于计算机系统之中,执行仪器总线的特殊功能,是计算机与仪器之间的软件层连接,用来实现对仪器的控制。 对于仪器驱动程序开发者来说, VISA 库是一个可调用的操作函数库或集合。 仪器驱动程序是完成某一特定仪器的控制与通讯的软件程序集合,是应用程序实现仪器控制的桥梁。 每个仪器模块都有自己的仪器驱动程序,仪器厂商将其以源码的形式 提供给用户,用户在应用程序中调用仪器驱动程序 [6]。 应用软件建立在仪器驱动程序之上,直接面对操作用户,通过提供只管,友好的操作界面,丰富的数据分析与处理功能,来完成自动测试任务。 应用软件还包括通用数字处理软件。 通过数字处理软件包括用于数字信号处理的各种功能函数,如频域分析的功率谱估计、 FFT、逆 FFT 和细化分析等;时域分析的相关分1 学士学位论文 14 析的相关分析、卷积运算、反卷运算、均方根估计等。 这些功能函数为用户进一步扩展虚拟仪器的功能提供了基础。 LabVIEW 的概述 LabVIEW 应用程序的构成 所 有的 LabVIEW 应用程序,即虚拟仪器( VI) ,包括前面板,流程图以及图标 /连结器三部分 [5]。 (1)前面板 前面板包括用户输入和显示输出两类控件,分别用于参数的设置和测量结果的数值、波形显示等,具体表现有开关,旋钮,图形以及其它控制和显示对象。 图 4 是一个简单的波形发生器 VI 的前面板,上面有 5个控制对象,分别为信号类型的选择,波形的频率,幅值,相位以及停止。 有一个显示对象,显示了所产生的波形。 在前面板后面还有一个与之配套的流程图。 图 4 波形发生器的前面板 ( 2)流程图 流程图提供 VI 的图 形化源程序。 在流程图中对 VI 编程,以控制和操纵定义在前面板上的输入和输出功能。 流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等 [5]。 1 学士学位论文 15 图 5 波形发生器的流程图 图 5 是图 4对应的流程图。 在图中我们可以看到流程图中包含了与前面板上对应的连线端子,还有一个基本函数发生器的函数及程序的循环结构。 基本函数发生器通过连线将产生的波形送到显示控件,为了使它持续工作下去,设置了一个 While Loop 循环,由开关控制这一循环的结束。 ( 3)图标 /连接器 VI 具有 层次化和结构化的特征。 一个 VI 可以作为子程序,这里称为子 VI,被其它 VI 调用。 图标与连接器在这里相当与图形化的参数。 LabVIEW 的操作模板 LabVIEW 中的操作模板分为工具模板,控件模板和函数模板, LabVIEW 程序的创建主要依靠这三个模板完成。 这些模板集中反映了该软件的功能与特征 [5]。 ( 1)编辑工具 —— 工具模板 图 6 LabVIEW 的工具模板 工具模板如图 6所示,利用工具模板可以创建、修改 LabVIEW 中的对象,并1 学士学位论文 16 对程序进行调试。 如果该模板没有出现,则可以在“查看”菜单下选择“ 工具模板”以显示该模板。 当从模板内选择了任意一种工具后,鼠标箭头就会变成该工具相应的形状。 ( 2)前面板设计工具 —— 控件模板 控件模板中包括了用来创建前面板对象的各种控制量和显示量,是用户设计前面板的工具, LabVIEW 中的控件模板如图 7所示。 在控件模板中,按照所属类别,各种控制量和显示量被分门别类地安排在不同地子模板中,应用这些子模板,用户可以创建出界面美观且功能强大地 VI 前面板。 图 7 LabVIEW 的控件模板 ( 3)框图程序设计工具 —— 函数模板 与控件模板相对应的函数模板主要用于对 VI后面板的设计,在函数模板中,按照功能分门别类地存放着一些函数, VIs 和 Express Vis。 可以在流程图程序窗口的空白处点击右键以弹出函数模板。 函数模板如图 8所示。 1 学士学位论文 17 图 8 LabVIEW 的函数模板 LabVIEW 的特点 LabVIEW 是由美国国家仪器公司在 1986 年推出的一种基于图形编程语言( G语言)的开发环境,它具有十分强大的功能,包括数值函数运算、数据采集、信号处理、输入 /输出控制、信号生成、图象的获取、处理和传输等等。 LabVIEW与 C、 Basic 等传统编程语言有着诸多相似之处, 如相似的数据类型、数据流控制结构、程序调试工具,以及模块化的编程特点等。 但二者最大的区别在于:传统编程语言用文本语言编程;而 LabVIEW 使用图象语言编程,界面非常直观形象,而且使用的都是测试工程师们 熟悉的旋钮、开关、波形图等,因此是一种直觉式图形程序语言。 用 LabVIEW 编程无需太多编程经验,只要以很直觉的方法建立前面板界面和方块图程序,便可以完成编程过程,使用户免于传统程序语言线性结构的困扰,这对于美誉哦丰富编程经验的工程师们来说无疑是个极好的选择。 同时, LabVIEW 的执行顺序是依方块图间数据的传递来决定的,并不像传统文字式程序语言必须逐行地执行,因此用户能设计出可同时执行多个程序地流程图。 LabVIEW 设计虚拟仪器的方法 LabVIEW 的图形化程序设计是基于现代软件地面向对象技术和 数据流技术1 学士学位论文 18 而发展起来的。 数据流程序设计表示只有在所有输入都有效时,一个对象才开始执行,同样,只有当对象的功能完成以后,对象输出才有效。 这样的话,互相在对象间的数据流控制执行顺序,执行顺序不局限于来自文本式程序设计的线性顺序,它可以不受其限制。 用户能够通过连接功能模块来快速开发自己地应用程序,甚至能够使用多路数据通道,实现同步操作 [6]。 与传统的文本程序设计一样, LabVIEW 也有控制流程图功能执行的部分,它们包括循环结构、分支结构、顺序结构,它们被图形化地描述成边界结构,像在传统的线性化程序设计中可以插入 代码段一样,可以把图标放在 LabVIEW 图形结构的界限内部。 LabVIEW 有一个图形编辑器来产生最优化编辑代码,虚拟仪器执行它们相当编译 C 的速度。 利用应用程序生成器,用户能够产生虚拟仪器,就像独立的执行程序一样。 下面按步骤说明进行图形化的程序设计。 ( 1)建立方案:选用 LabVIEW 软件,可以构建虚拟仪器,而不是编写程序。 有了交互式控制的软件系统,用户可以很方便地建立其前面板接口。 为了实现具体功能,用户利用向导把流程图组合在一起。 ( 2)建立前面板:从控制模块上选择你需要的对象,放在虚拟仪器的前 面板上。 当你的虚拟仪器完成以后,就能在虚拟仪器工作时利用前面板去控制整个系统,如移动滑动片、在图象中变向、从键盘输入等。 ( 3)构建图形化的流程图:对虚拟仪器进行程序设计,你不必担心很多传统程序设计所需的语法细节,而可自己构建流程图。 从函数模板上选择对象(用图标表示),并用线将它们连接起来以便数据进行传递。 函数模板上的对象包括简单的数学运算、高级数据采集和分析方法、以及网络和文件输入输出操作。 ( 4)数据流程序设计: LabVIEW 用一种精巧的数据流程序设计模式把用户从文本式语言的线性化方式构建程 序的办法中解放出来。 因为在 LabVIEW 软件中程序的执行顺序由各方块中的数据流决定。 ( 5)模块化和层次: LabVIEW 虚拟仪器实行模块化设计,因而任何虚拟仪器既能独立运行,又能被用作其他虚拟仪器的一部分。 甚至可以创建自己的虚拟仪器图标,因而可以设计由虚拟仪器构成的多层系统,并可以改变它,同其他虚拟仪器交换和连接以满足不断变化的应用需要。 1 学士学位论文 19 4 多功能滤波器的设计 滤波器的总体设计方案 我的毕业设计的题目是基于 LabVIEW 的多功能滤波器设计。 如图 9为总体设计方案的示意图。 图 9 总体设计示意图 通过软件 LabVIEW 设计一个虚拟的数字滤波器,使其能产生基本的带有噪声的模拟信号,或是能通过数据采集卡采集信号输入到微机里,并能使用户通过在前面板调节按钮,变换参数产生想要的滤波器,来对所产生的信号或从外界输入的信号进行数字滤波,这里的滤波器可以根据用户的需要进行选择,可以找出最适合的滤波器。 我设计的滤波器包括 FIR 滤波器, IIR滤波器以及小波去噪。 其中这三大类滤波器分别有一些参数可调,例如 IIR 滤波器滤波的窗函数。 进行完滤波后还能对信号进行各种频谱分析。 然后通过显示面板来显示滤波前 后的信号及频谱分析的信号。 滤波器的各个模块的设计 我设计的滤波器的模块有信号发生模块,滤波模块,以及频谱分析模块。 信号发生模块 信号发生模块是信号有两种,一种是通过基本函数发生器产生基本波形,包括正弦波、方波、三角波、锯齿波四种;一种是用户通过编写公式来产生想要的波形。 然后分别叠加噪声信号,以此来模拟现实中的信号。 其中噪声的类型有均匀白噪声、高斯噪声、周期性随机噪声、泊松噪声。 噪声的幅值也可以调节。 如图 10 是信号发生模块流程图。 1 学士学位论文 20 图 10 信号发生模块流程图 其中需要注意 的是采样频率的选择,不然的话会出错,系统不能运行。 根据奈圭斯特采样定理,采样频率应大于或至少等于信号截止频率的 2倍,以保证数字化后的信号数据不丢失原信号的特性。 但是奈圭斯特采样定理假设有一个理想的低通滤波器来恢复信号,并且被采样的信号的频带范围有限,这些条件在实际使用中是很难实现的,所以它只在理论上成立。 对同一信号以不同的采样率采集得到的结果是不同的,显然采样频率越高,采集信号越接近真实信号,但是高采样频率意味着对存储空间和内存的更高要求,工程上用到的采样频率常常是信号最高频率的 5~ 10 倍。 如图 11所示为信 号发生模块流程图对应的前面板。 图 11 输入信号参数选板 1 学士学位论文 21 滤波去噪模块 图 12 滤波去噪模块流程图 图 13 滤波参数选板 1 学士学位论文 22 滤波去噪模块的流程图如图 12 所示,信号的滤波去噪就是通过这个模块来实现的。 图 13 为滤波参数选板,第一个布尔控件是来选择是否要进行滤波,当指示灯亮时就进行滤波了。 布尔控件下面的叫做菜单下拉列表,是用来选择滤波器的类型的。 再往下的三个框分别是 IIR 滤波器规范, FIR滤波器规范,小波去噪规范,通过调节文本下拉列表可以搭配出最好的滤波器。 其中有三点需要说明一下,一 是 Case 结构,二是 LabVIEW 调用 Matlab 函数。 三是小波去噪的相关内容。 (1)Case 结构是执行条件语句的一种方法。 这类似于常规的文本编程语言中常见的 if„ Then„ Else 语句。 从“函数”选项板的“控制过程执行”子选项板中选择 Case 结构并将其放置在框图上,并使其边框包围所希望的对象;也可以先将 Case 结构放置在框图上,然后再根据需要调整其大小并将对象拖拽到结构内部 [12]。 Case 结构可有多个子框图,这些子框图就像一叠卡片,一次只能看到一张。 在 Case 结构边框的顶部使子框图标识符。 子框图标识符 可以是数字,布尔,字符串或枚举型控件。 在枚举型控件就是无符号字节、无符号字或无符号长整型,如图 1图 15 所示。 可将选择器器端子放在 Case 结构左边框上的任何地方。 选择器标签自动调整为输入的数据类型。 例如,如果选择器连接的值从枚举型改变到布尔型,那么对应的 0 和 1 分支将分别改变成 FALSE 和 TRUE。 需要注意的一点是如果选。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。