DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 711|回复: 0
打印 上一主题 下一主题

[工仪] 利用虚拟仪器进行数字信号处理设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 14:56:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  工程设计可以从虚拟仪器中获得什么?即便您对虚拟仪器并不熟悉,了解仪器如何影响工程设计也十分自然的。例如示波器等传统仪器在测试和测量应用中的不同阶段及电子系统的设计、验证和测试阶段都被广泛地应用。但是,凭借快速开发工具、交互式设计功能以及与实际信号的自然关联特性,虚拟仪器可以将工程设计带入到一个新的时代。  例如数字信号处理(DSP)以及它与仪器之间的关系。数字信号处理器 (DSP),是一种针对数字信号进行实时数学运算的微处理器。要使用DSP处理模拟信号,首先要用抗锯齿滤波器和模拟数字转换器(ADC)对模拟信号进行数字化,并将它送入到传入DSP的数据流中。之后,DSP会以某种方式修改数据流,并通过数字模拟转换器(DAC)以及抗假象滤波器将信号转回模拟信号。通常而言,类似示波器等传统独立仪器会使用定制的固定嵌入式DSP系统。除此之外,示波器其实还可以通过虚拟仪器技术在个人电脑(PC)上实现。利用PC的强大性能,使用PCI数据采集设备对实际输入信号进行数字化,然后使用PC对信号进行处理。这种虚拟仪器的方式可以使用户依靠自行开发的软件程序和在PC或者实时操作系统上完成自定义的仪器功能。  虚拟仪器提供的强大设计工具使得具有不同技能层次和不同教育背景的人都可以快速设计并开发自定义测试和测量系统。相反,过去的工程设计要求开发人员使用不相关的开发工具,还需要在领域设计和实现都具备一定的工程专业知识。本文描述了如何将虚拟仪器设计工具应用到信号处理工程设计中,从而消除在设计和最终系统实现之间的障碍。我们将通过研究数字信号处理的设计与发布,并作为工程实例,来进一步讨论这个问题。  数字信号处理与虚拟仪器  首先,我们来讨论一下虚拟仪器的概念,它的出现是为了解决传统独立仪器的局限性。过去,测试和测量工具通常由例如示波器和波形发生器等独立仪器组成,它们为有限的测量应用提供了有限的功能集合。这种传统仪器具有三个基本局限性:1)硬件对信号采集提供有限的精度与速度;2)仪器中内建的厂商定义的有限的测量与分析函数;3)用户操作界面的局限性。如果这些局限性中有任何一点无法满足项目规范的要求,那么就需要一个新的独立仪器,这样会大大增加最终系统成本。  自1976年以来,NI通过将传统的独立仪器分成两个基本部分为仪器带入了一种新的观念,这两个部分是:对信号进行数字化所需的硬件和分析显示结果所需的软件。允许最终用户使用用户定义的软件为其应用建立最终仪器,这样仪器的局限性就被解决了,虚拟仪器的概念就是这样诞生的。将软件作为仪器,仪器就可以扩展到测试、控制和设计中。  相对于传统的独立仪器而言,虚拟仪器的优点与数字信号处理相对于模拟信号处理而言的优点是相似的。例如,模拟滤波器通常使用运算放大器、电容和电阻等模拟电子元件实现,相对于使用浮点或定点机器实现的数字滤波器而言灵活性十分有限。尽管模拟滤波器比较便宜、易于建立,模拟滤波器的标定和维护十分困难。要对设计进行修改也十分难以实现。例如,如果后来发现需要一个更高阶的滤波器,就必须改动硬件实现新的设计。由于数字滤波器是用软件建立的,并没有这个问题,从而在单一硬件上提供了可以实现多种应用的灵活平台。  除了虚拟仪器和数字信号处理都发挥了基于软件平台的优点,虚拟仪器通过利用图形化编程开发环境NI LabVIEW使得易用性的优点得到进一步的发展,它能够让更多人参与到软件开发和仪器设计中去。LabVIEW不仅提供了完全与传统的基于文本的编程语言所不同的图形化编程方式,使得编程过程变得更加直观与方便,同时还通过自带的Mathscript兼容了文本的编程语言,使得用户可以兼容已有的算法,或者根据实际应用来选择合适的编程方式。这样大大节省了需要熟悉编程环境和语法所需要的大量的时间。  这也是缺乏足够的设计工具对数字信号处理所产生的影响?对于DSP工程师而言,使用传统工具实现基于软件的解决方案十分痛苦。典型的开发过程从算法设计开始,它需要使用多种数学建模环境,这要求对基于文本的命令和语法有着足够的熟悉程度。在完成算法之后,嵌入式系统的实现带来了新的困难。嵌入式系统设计需要对实时处理概念、板载内存可用性以及在软件开发中所需的基于文本的编程语言和语法有深入的知识。  在传统的基于文本的设计工具中,调试又是相当困难的。如果嵌入式系统没有能够按照期望的方式进行工作,如何才能找出数学设计的错误如何对应到具体的嵌入式系统代码呢?例如量化、下溢出和上溢出等关于定点设计的问题很难进行跟踪,因为他们常常在实时执行的前几个循环中出现。例如断点、单步执行、监视可用寄存器和变量等常用的简单调试工具是不够的,因为他们需要用户舍弃实时执行,这样也就无法使得问题重现。  在最近20年中,来自成千上万家公司的工程师、科学家和技术员通过使用LabVIEW加速并简化了开发过程,LabVIEW相比传统设计工具而言更加强大,更加易于使用。LabVIEW具有通用编程语言所有的广度和深度,其易用性提高了用户效率,缩短了开发应用程序所需的时间。   简化DSP设计的参数选择  以数字滤波器设计为例,它是用NI LabVIEW和数字滤波器设计工具包进行开发与实现的。在这个应用和其他应用中,虚拟仪器方法的一个优点是提供了交互性——可以直接看到制定修改设计参数的结果。  数字滤波器设计首先要为滤波器类型(低通、带通、带阻和高通)定义滤波器规范,确定是有限脉冲响应(FIR)或是无限脉冲响应(IIR),确定采样速率以及浮点机器上所需的滤波器响应。图1给出了用于设计典型滤波器的交互式界面,例如巴特沃斯、切比雪夫、反切比雪夫、椭圆、凯塞窗、多尔夫—切比雪夫窗以及等波纹FIR设计方法。图1所示的设计是8 kHz采样速率、1 kHz带通、2 kHz带阻、60 dB带阻衰减的低通数字滤波器。在设计这些参数的时候,可以立刻看到当前设计的幅度响应和零极点图,以及产生滤波器的阶数。在图1中,选择了反切比雪夫滤波器因为它具有较好的过度带特性和相对较低的滤波器阶数。
                          
                       
                          
                               

图1 典型滤波器设计Express VI提供了用于交互式设计探索的界面,可以使用教科书中的巴特沃斯、切比雪夫以及等波纹FIR等滤波器  基于虚拟仪器的信号处理设计所具有的另一个优点是图形化的编程方式,类似流程图式的图形化编程方式使得程序更加直观。同时,要尝试一个新的算法只需要替换成所需要的函数图标即可。例如,反切比雪夫滤波器设计可以方便地替换成雷米兹滤波器设计方法或是最小P阶规范设计方法。实际上,在表1中所列的一系列编程设计选择都可以用于设计中。雷米兹设计方法生成了FIR滤波器,可以将期望频率响应和实际设计滤波器频率响应之间的最大误差降到最小。这种设计规范产生的滤波器具有“等波纹”特性,即“切比雪夫”误差行为。雷米兹工具产生的滤波器设计适用于类型I-IV线性相位、任意形状FIR、最优幅度近似(最大或最小相位)、单点带规范(谷或峰)以及精确增益控制。最小P阶规范方法可以用于设计带有任意幅度和相位约束的FIR和IIR滤波器。使用数字滤波器设计工具包,最小P阶规范方法使用牛顿法或迭代重赋权最小二乘(IRLS)法开发解决方案。??????????????

表1 数字滤波器设计工具包提供了从传统应用到现代应用所需的程序化的滤波器设计工具套件  群延迟补偿器  在对定点滤波器进行设计和发布的过程中,有一种特性的重要性是不言而喻的,就是需要能够直接、交互式地查看设计结果。传统的通过文本软件定点实现的方法往往效率高、成本低,但是由于算法精度较低,其设计过程也更为复杂。  使用LabVIEW和数字滤波器设计工具包,定点数字滤波器设计过程首先是对浮点滤波器进行原型设计,并转换成定点设计。转换成定点设计会大大改变滤波器的特性和性能。实现了指定定长寄存器的整数字长、滤波器拓扑等其他参数,这些对于确保滤波器按照设计期望进行工作是十分关键的。对定点设计进行适当的仿真和分析可以避免之后在调试设计的时候,在千万行嵌入式系统代码中进行调试查找。集成在VI设计环境中的定点建模、仿真和分析工具简化了从浮点设计到定点设计之间的过渡。  另外一个使得定点数字滤波设计非常困难的原因是,参数量化、中间运算和结果向系统引入了噪声。此外,如果在数据存储中没有足够的空间,就会发生上溢出。LabVIEW数字滤波器设计工具包中的定点建模、仿真和分析功能能够在设计阶段找出实现的错误源头。例如,对于图1设计的低通滤波器进行定点实现。用户使用定点建模VI,就可以在多个设计方案中选择定点系统、指定字长、整数字长以及设计中关键位置的舍入和溢出模式。为了对最终实现进行进一步控制,还提供了超过23种不同的滤波器拓扑,从FIR直接形式1到IIR级联二阶部分(形式I或II、转置),直至网格ARMA(基本、一个乘法器或归一化部分)。  图2展示了包含选择滤波器拓扑、定点设计工具以及用于定点和浮点设计仿真与分析的范例VI。这个VI提供了能够随着仿真运行对实现参数进行交互式修改的接口。首先,可以保持定点建模参数不变,使用默认的滤波器拓扑,使用正态分布的白噪声信号作为滤波器输入,测试滤波器在所有频率下的响应。图3给出了仿真结果。很明显,定点滤波器并没有给出与浮点仿真相同的结果,尽管设计的滤波器具有几乎相同的幅度、相位和零极点图。滤波器分析报告指出由于在乘法、加法、延迟中产生了上溢出和下溢出,因此得到的结果不够理想。利用在VI环境中给出的信息,用户可以对定点实现进行运行时修改,例如增加问题区域中的整数字长、尝试其他滤波器拓扑或是修改定点建模的其他属性。对于这个设计而言,提高乘法、加法和延迟的整数字长就可以得到希望的定点设计结果,如图4所示。

图2 程序框图展示了滤波器的设计,可以修改滤波器拓扑、整数字长、对正态分步的白噪声进行定点和浮点设计仿真以及仿真分析
                          
                       
                          
                               

图3 前面板显示了定点滤波器设计和浮点滤波器设计的幅度、相位和零极点图特性以及仿真结果和第一个测试的分析

图4 根据在滤波器分析报告中提供的信息,增加了加法、乘法和延迟的整数字长,现在定点设计和浮点设计的仿真结果能够匹配  设计验证与发布  虚拟仪器通过与测试测量应用中所需的硬件自然整合在一起,改进了工程设计。在上述数字滤波器设计中, PCI数据采集设备能够获得实际信号,将它与仿真信号进行比较,就更加能确保滤波器设计的正确性。由于LabVIEW与NI以及众多第三方厂家的数据采集硬件紧密整合,这点在工程设计中又是一个重要的优点。  许多测试与测量应用需要具有能够在包括实时系统与嵌入式系统在内的多平台之间的可移植性。这点又是与工程设计相关的,其中VI需要可以被用于各种通用操作系统,包括Windows、Mac、Linux,以及支持LabVIEW的FPGA、DSP和任何32位微处理器等嵌入式系统。数字滤波器设计工具包是LabVIEW的一个附件,它提供了定点建模工具和LabVIEW FPGA以及ANSI-C代码生成。DSP工程师现在可以利用LabVIEW的强大功能进行完整的数字滤波器开发,从设计到验证直至嵌入式系统发布。  数字滤波器设计工具包为学术应用和工业应用都提供了发布方案。一种是将滤波器参数保存到文件中,这也是最简单的发布方式,它将所有实现细节保存到文件中,供以后使用。使用LabVIEW DSP模块,可以读取过去保存在文件中的滤波器参数,并在DSP上实时实现。LabVIEW DSP将图形化编程带入到多个硬件平台上,能够广泛地应用于学术中,其中包括了NI SPEEDY-33和Texas Instruments C6711、C6713、C6416 DSK,用于对DSP进行设计、快速原型开发和发布。它很好地支持了快速VI(Express VIs),可以加速开发速度,能够对板卡上的模拟及数字IO进行直接存取,并支持图形编程环境的调试。  另一种方案是FPGA发布,数字滤波器设计工具包能根据定点数字滤波器设计生成LabVIEW FPGA代码,并在LabVIEW FPGA模块中使用生成的代码,它利用Xilinx编译器直接同步位于NI可重配置I/O(RIO)硬件上的FPGA。具有RIO技术的设备有着多种外形规格,包括PCI、PXI以及CompactRIO可编程自动化控制器。LabVIEW FPGA提供了在数字滤波器应用中 对数字I/O线路和模拟I/O线路的直接访问。  ANSI-C代码生成是另一种发布数字滤波器设计的选择。LabVIEW嵌入式开发模块利用第三方嵌入式工具链和操作系统,能对LabVIEW 生成的C代码进行编译、连接,并下载到任何32位微处理器目标中。使用LabVIEW嵌入式模块,您可以在前面板和程序框图中交互式地调试程序,访问板卡的外围I/O,使用任何用于嵌入式应用的1000个内置数字处理和信号处理VI。

图5 LabVIEW DSP、LabVIEW FPGA和LabVIEW嵌入式模块将图形化编程的强大功能引入到无限的硬件平台中  虚拟仪器是用于测试和测量系统设计与实现的可行方法。虚拟仪器思想所采用的独特方法可以应用到工程设计应用和信号处理开发中,并且实现在理论设计、分析测试与发布实现中使用同一工具。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-10 16:01 , 耗时 0.087831 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表