技术频道

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

  工程设计可以从虚拟仪器中获得什么?即便您对虚拟仪器并不熟悉,了解仪器如何影响工程设计也十分自然的。例如示波器等传统仪器在测试和测量应用中的不同阶段及电子系统的设计、验证和测试阶段都被广泛地应用。但是,凭借快速开发工具、交互式设计功能以及与实际信号的自然关联特性,虚拟仪器可以将工程设计带入到一个新的时代。

  例如数字信号处理(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)法开发解决方案。

FIR

特殊设计

巴特沃斯

凯塞

IIR谷峰

切比雪夫

多尔夫—切比雪夫

IIR梳

反切比雪夫

加窗

最平滤波器

椭圆

雷米兹

窄带

贝塞尔

最小P阶规范

任意群延迟

最小P阶规范

群延迟补偿器

表1:数字滤波器设计工具包提供了从传统应用到现代应用所需的程序化的滤波器设计工具套件。

  在对定点滤波器进行设计和发布的过程中,有一种特性的重要性是不言而喻的,就是需要能够直接、交互式地查看设计结果。传统的通过文本软件定点实现的方法往往效率高、成本低,但是由于算法精度较低,其设计过程也更为复杂。

  使用LabVIEW和数字滤波器设计工具包,定点数字滤波器设计过程首先是对浮点滤波器进行原型设计,并转换成定点设计。转换成定点设计会大大改变滤波器的特性和性能。实现了指定定长寄存器的整数字长、滤波器拓扑等其他参数,这些对于确保滤波器按照设计期望进行工作是十分关键的。对定点设计进行适当的仿真和分析可以避免之后在调试设计的时候,在千万行嵌入式系统代码中进行调试查找。集成在VI设计环境中的定点建模、仿真和分析工具简化了从浮点设计到定点设计之间的过渡。

  另外一个使得定点数字滤波设计非常困难的原因是,参数量化、中间运算和结果向系统引入了噪声。此外,如果在数据存储中没有足够的空间,就会发生上溢出。LabVIEW数字滤波器设计工具包中的定点建模、仿真和分析功能能够在设计阶段找出实现的错误源头。例如,对于图1设计的低通滤波器进行定点实现。用户使用定点建模VI,就可以在多个设计方案中选择定点系统、指定字长、整数字长以及设计中关键位置的舍入和溢出模式。为了对最终实现进行进一步控制,还提供了超过23种不同的滤波器拓扑,从FIR直接形式1到IIR级联二阶部分(形式I或II、转置),直至网格ARMA(基本、一个乘法器或归一化部分)。

文章版权归西部工控xbgk所有,未经许可不得转载。