2024年6月6日发(作者:融飞雪)
维普资讯
计算机时代2006年第1 1期 -47・
基于声卡的虚拟数字滤波器的实现
庞然。汪仁煌,周玉,高延增
(广东工业大学自动化学院,广东广州510090)
摘要:系统以图形编程语言Labview为软件平台,以基于PCI总线的声卡作为硬件基础,充分利用声卡的A/D转换模
块进行数据采集;并通过无限长和有限长脉冲响应这两种算法实现对模拟信号的数字滤波。实验表明,该系统是一台性价
比高、并可广泛用于教学实验以及一般工业测控的虚拟数字滤波器。
关键词:虚拟仪器;Labview;数字滤波;声卡
O引言
传统的仪器设备缺乏相应的计算机接口,因而配合数据采
2硬件模块
本系统采用的声卡型号为世纪飞扬CF8738,它有四条输
入通道。其中的Line in输入端作为信号输入端口,其内部电路
集及数据处理十分困难[11。随着计算机技术在检测系统中的广泛
应用,有必要对传统的滤波器进行改进,以适应计算机应用的发
图如图2所示。该声卡的最高采样精度达16位,最高采样率
展要求。虚拟滤波器能够通过软件将计算机硬件资源与仪器硬
44.1kHz,可{芮足一般音频范围的模拟信号输入的要求,与一般
件有机融合为一体,把计算机强大的处理能力和仪器硬件的测
的低端通用采集卡相比,具有更高的性价比。PCI总线的使用,
量控制能力结合在一起,大大缩小仪器硬件成本和体积,并通过
解决了声卡与系统交换数据的瓶颈问题,即能充分发挥DSP
软件实现对数据的采集、存储以及分析处理。目前在基于虚拟仪
芯片的处理功能。同时,声卡是用DMA方式进行数据传送的,
器的数据采集系统中,常用的方案为PC机上层软件采用NI公
司的虚拟仪器开发软件Labview作为软件平台、直接采用NI公
因而极大地降低了CPU占有率。利用声卡的DMA方式进行数
据采集时需要设置采样率、数据格式、缓冲区长度等。
………
司生产的数据采集卡PCI板卡(M系列)或NI—DAQ数据采集
卡作为硬件平台。这样的系统兼容性好,编程效率高,但整套软
硬件价格昂贵,且涉及到知识产权问题,不利于推广应用。而采
模拟声信号
厘蛰爵 丽 冠丑………t一 ・-
£据输入
缓冲区
旦 垡堕
信号前置处
理A/D转换
D/A波形
重建
用国内通用的数据采集卡和vc++编程目要编写相应的驱动程
序,这就增加了设计开发的周期。本文所述的系统以Labview为
软件平台,底层采用通用PC机上的声卡作为数据采集的通道,
充分利用声卡提供的两路l6位的A/D和2到4路的D/A,其精
度足够满足—般环境下的数据采集和教学实验使用要求。本系
统的特点是:性价比高,开发周期短。
[亟圃
擎
尊
[亟
受据输出
缓冲区
图2声卡内部结构框图
d・vl c‘
1系统整体结构
系统由两大部分组成,分别为实现滤波显示功能的虚拟
仪器界面和实现数据采集功能的声卡。系统整体框图如图l
所示:模拟信号从声卡的“line in”通道输入,经A/D转换、
DSP处理后送给Labview程序接口,在程序中完成滤波显示
功能。
圜
II{甲嚣 ■丈小
图3声卡驱动程序子Ⅵ流程图
在Labview中提供了一系列使用Window底层函数编写的
与声卡有关的函数。这些函数在面板工具箱中调用的路径为:
Function>>Analyze>>Sound>>。由于使用Window底层函数(不
使用更高级的MCI函数以及DirectX接口)直接与声卡驱动程
序打交道,因而封装层次低,速度快,而且可以访问、采集缓冲区
任意位数的数据,具有较大的灵活性,能够满足实时不间断采集
的需要。在调用声卡进行数据采集时调用到一系列虚拟设备vI
图l系统整体框图
(virtual instrument)包括:(1)声卡初始化设备:SI Config;(2)声
虚拟仪器的面板为人机交互界面,其中设有控件和按钮各
卡启动设备:SI START;(3)声卡读入设备:SI READ;(4)声卡
三组,分另U实现未经滤波的原波形显示、原信号频谱、FIR滤波、
清空设备:SI CLEAR。对声卡驱动程序的使用就依靠上述四个
IIR滤波后的波形显示等功能。系统采用Labview编程语言,只
需调用子模板中的FIR/IIR滤波模块,再对对应的模块设定不
函数的联合调用,前一函数将信号的入口地址以task ID out的
传递值传递给下—个函数。发生异常时数据流的输入输出端口
将相应地连接在一起;在调用函数时,如若发生错误,本系统会
同滤波器的参数即可完成上层软件的编程。
维普资讯
・
48・ Computer Era No.1 1 2006
提示错误位置,以便发现或检查信号流程中的数据不匹配或数
3.1无限长脉冲响应(IIR)滤波器
据丢失的现象。四个子设备调用顺序如图3所示。
IIR滤波器的抽象表达式为:x Ax (k-1)+Bx(k)(k),
3软件设计
其输出取决于当前和过去的输出值(即x (k.1)),所以IIR滤
本系统能实现对外界模拟信号的显示、频谱分析以及对信
波器是递归滤波器 。本系统以巴特沃斯低通滤波法实现IIR滤
号进行IIR和FIR滤波。程序模块可分为声卡驱动与数据采集子
波功能。巴特沃斯低通滤波是一种用最平通带特性去逼近理想
模块、原波形显示子模块、白噪声加入子模块、原波形频谱分析
低通特性的滤波器,在通带(或阻带)的频率范围内,幅值在允许
子模块、UR滤波器子模块、FIR滤波器子模块。加入的白噪声函
的范围内单调或平坦地随频率变化,只有某一个频率上的幅值
数有利于对滤波的效果进行仿真检测。IIR和FIR滤波器对输入
与要求相符,其频率特性为lH(w)I=k,、/ ,Fc即为低通
信号的滤波,采用两种不同算法进行对比显示,以比较滤波效
滤波器的上截止频率。调用Butterworth Filter子设备的关键是
果,以及为不同的实验环境提供合适的滤波器。两个函数参数的
设定其采样截止频率,现设定其采样率为22050Hz,则巴特沃斯
入口在面板中可以选择。系统的应用程序框图如图4所示。
滤波器所能处理的最高频率为22050/2=1 1025Hz。经验数据表
明,把经验采样率除以1000,作为低端截止频率,符合采样定理
的要求。在不同的实验环境下,还可以通过动态的修改采样率和
低端截止频率,来设计不同型号的巴特沃斯滤波器。
3.2 FIR滤波子模块
FIR滤波的通式为:X ̄(k)=A51X(i),i从l循环到k。显然
输出值仅取决于过去的输入值(x(O)、x(1)、x(2)…..)和当前的输
入值(x(k))。从数学角度上说,IIR和FIR滤波器提供了相同的
输出,但他们的实现方式不同。FIR滤波器通常采用“窗函数法”
来实现,为了构造长度为N的线性相位滤波器,只有将Ild(n)截
取一段,并保证截取的一段对(N一1)/2对称。设截取段用h(n)表
滤波类型、阶数
示,则h(n)= n)R(n)。式中,R(n)是一个矩形序列,即前面板中
窗类型、滤波类型
选用的矩形窗类型。Butterworth Filter.vi函数的调用为执行
Functions>>Signal Processing>>Filters>>Butterworth Filter.vi操
作 。应用程序的流程图如图5所示。为了能将滤波后的波形保存
以备后期的打印、分析,在While循环以外编写了实现存盘的顺
图4程序流程图 序结构。
图5 lab ̄ew应用程序流程图
4结束语
中只需要— 萤道的信号输入线,因此,可以把两条线的地线和信
本系统调试采用信号发生器作为外部摸拟信号源,数据传输
号线对应连接在一起构成单通道数据采集系统。数据线的一端接
通道采用市售的普通耳机线。这两条连接线是共地的,在调试过程 上声卡的“line in”端口,另—端接入由信号发生器输出频率为
维普资讯
计算机时代2006年第1 1期 ・49・
分形软件及其应用
李海林,柳炳祥,詹棠森
(景德镇陶瓷学院信息工程学院,江西景德镇333001)
摘要:分形图案是使用计算机绘图工具做出的数学图案,它是运用计算机相关原理及分形理论设计得到的图案。文章
介绍了分形软件的组成及其功能,展示了一些软件产生的分形图案,并且对不同参数设置所获得的分形图案和动画进行
了比较。分形自身的特点决定了分形图案色彩及其形状,在开发设计过程中,分形算法的改善可获得更丰富的图案。最后
简单描述了分形软件在各个领域中的应用。
关键词:分形理论;分形软件;分形图案;分形艺术
O引言
佳的分形配置。
分形u1是一种与其它数学图案有明显区别的图案。分形技
(4)可以用数据库存储各种分形参数,为发展分形技术提供一
术能够对任何区域进行毫无失真的放大,并且保持分形图案的
个_共享平台。
自身特征。分形的结构是由重写过程来实现的,某些步骤必须
(5)分形动画是本软件最为突出的功能之一,对各种分形
每次重写。目前,很多相关的原理和理论都得到了应用,如数学
软件产生分形动画,它使得用户能够方便地捕捉各式各样的分
等式,公理,混沌理论等,我们使用这些学科知识来开发分形软
形图案。
件。分形软件产生的图案是画家无法绘制的,这是由分形自身 总之,只要用户稍懂分形的相关理论,使用本软件便可得
的属性决定的。当前,各种不同版本的分形软件只能展示小部
到各种不同的分形图案和分形动画,对这些产品进行处理,以
分的分形而且分形效果(如色彩)不是很好。然而因为分形图案 便达到用户的要求。软件主窗口如图l所示。
有很好的艺术价值,这就决定了开发一种相对较好的分形软件
2分形软件和分形动画展示
的必要性。我们借助Vc++工具来开发分形软件。这种软件具
从上述软件功能描述可知,只要对分形软件中各种参数进
有很大的实用价值和艺术潜力。
行设置,我们就可以得到不同的分形图案和分形动画。假如对分
1分形软件
形原理不熟悉,则可以参考一些相关的资料目,由于篇幅限制,我
1.1分形软件的组成
们在这里不作分形理论的讨论。
分形软件主要是由控制模块,数据接收模块,数据存储模
下面我们展示一部分分形原理产生的图案和动画。
块,图案绘制模块和图案设置模块组成。每一模块都相互联系并
对于根据Julia集原理,我们可以在以下输入窗口进行参
传递相关信息。我们使用MFC来开发软件,因为MFC能够便捷
数设置,如图2所示。
地使用单文档(sDI 多文档(MDD来编写程序。为了让用户能够
方便使用该程序,我们使用了单文档应用程序来进行开发。
1l2分形软件的功能
分形软件的功能主要有:
(1)打开和保存图案,并且可以进行编辑,如:图像的复制、
粘贴、剪切和旋转等。还可以通过属性窗口调整窗口的视图。
(2)根据不同的相关的分形原理来设置参数,并在绘制域
中显示相应的分形图案。
图1分形软件主窗口 图2 Julia集参数设置窗口
(3)对图案进行局部放大和修饰,对不同分形图案进行最 只要设置的参数符合软件的要求,便可以得到不同形状的
50Hz的正弦信号。调试结果表明,基于声卡的虚拟数字滤波能很
参考文献:
好地对音频范围内的信号进行滤波,效果优于—般的椁 氯珐 器。
【1】Gary W.Johnson,Richard Jennings著,武嘉澍,陆劲昆译.Labview
本系统充分利用声卡的A/D转换模块,作为外部模拟信号
Graphical Programming[M].北京大学出版社.2002.
的数据采集卡,实现两通道16位、高精度的数据采集,每个通
【2】陈舞波 一种基于高速般据采集卡的虚拟示波器开dC[J1.电子设计应
道的采样频率不小于22050Hz,比采用NI公司的数据采集卡
用.2005 11.
和其他的通用数据采集卡的成本低得多,而其各项指标均能达
【31丁玉美,高番全 毅字信号处理【M1.番安电子科技大学出版社,2001.
到教学实验和一般工业测试的要求,这就极大地提高了系统的
【4】侯国屏,王绅,叶齐鑫 Labview7 1蠕程与虚拟仪器设计fMJ.清华土
性价比,是一种很好的数据采集方案。
学出版社,2005‘ 园
2024年6月6日发(作者:融飞雪)
维普资讯
计算机时代2006年第1 1期 -47・
基于声卡的虚拟数字滤波器的实现
庞然。汪仁煌,周玉,高延增
(广东工业大学自动化学院,广东广州510090)
摘要:系统以图形编程语言Labview为软件平台,以基于PCI总线的声卡作为硬件基础,充分利用声卡的A/D转换模
块进行数据采集;并通过无限长和有限长脉冲响应这两种算法实现对模拟信号的数字滤波。实验表明,该系统是一台性价
比高、并可广泛用于教学实验以及一般工业测控的虚拟数字滤波器。
关键词:虚拟仪器;Labview;数字滤波;声卡
O引言
传统的仪器设备缺乏相应的计算机接口,因而配合数据采
2硬件模块
本系统采用的声卡型号为世纪飞扬CF8738,它有四条输
入通道。其中的Line in输入端作为信号输入端口,其内部电路
集及数据处理十分困难[11。随着计算机技术在检测系统中的广泛
应用,有必要对传统的滤波器进行改进,以适应计算机应用的发
图如图2所示。该声卡的最高采样精度达16位,最高采样率
展要求。虚拟滤波器能够通过软件将计算机硬件资源与仪器硬
44.1kHz,可{芮足一般音频范围的模拟信号输入的要求,与一般
件有机融合为一体,把计算机强大的处理能力和仪器硬件的测
的低端通用采集卡相比,具有更高的性价比。PCI总线的使用,
量控制能力结合在一起,大大缩小仪器硬件成本和体积,并通过
解决了声卡与系统交换数据的瓶颈问题,即能充分发挥DSP
软件实现对数据的采集、存储以及分析处理。目前在基于虚拟仪
芯片的处理功能。同时,声卡是用DMA方式进行数据传送的,
器的数据采集系统中,常用的方案为PC机上层软件采用NI公
司的虚拟仪器开发软件Labview作为软件平台、直接采用NI公
因而极大地降低了CPU占有率。利用声卡的DMA方式进行数
据采集时需要设置采样率、数据格式、缓冲区长度等。
………
司生产的数据采集卡PCI板卡(M系列)或NI—DAQ数据采集
卡作为硬件平台。这样的系统兼容性好,编程效率高,但整套软
硬件价格昂贵,且涉及到知识产权问题,不利于推广应用。而采
模拟声信号
厘蛰爵 丽 冠丑………t一 ・-
£据输入
缓冲区
旦 垡堕
信号前置处
理A/D转换
D/A波形
重建
用国内通用的数据采集卡和vc++编程目要编写相应的驱动程
序,这就增加了设计开发的周期。本文所述的系统以Labview为
软件平台,底层采用通用PC机上的声卡作为数据采集的通道,
充分利用声卡提供的两路l6位的A/D和2到4路的D/A,其精
度足够满足—般环境下的数据采集和教学实验使用要求。本系
统的特点是:性价比高,开发周期短。
[亟圃
擎
尊
[亟
受据输出
缓冲区
图2声卡内部结构框图
d・vl c‘
1系统整体结构
系统由两大部分组成,分别为实现滤波显示功能的虚拟
仪器界面和实现数据采集功能的声卡。系统整体框图如图l
所示:模拟信号从声卡的“line in”通道输入,经A/D转换、
DSP处理后送给Labview程序接口,在程序中完成滤波显示
功能。
圜
II{甲嚣 ■丈小
图3声卡驱动程序子Ⅵ流程图
在Labview中提供了一系列使用Window底层函数编写的
与声卡有关的函数。这些函数在面板工具箱中调用的路径为:
Function>>Analyze>>Sound>>。由于使用Window底层函数(不
使用更高级的MCI函数以及DirectX接口)直接与声卡驱动程
序打交道,因而封装层次低,速度快,而且可以访问、采集缓冲区
任意位数的数据,具有较大的灵活性,能够满足实时不间断采集
的需要。在调用声卡进行数据采集时调用到一系列虚拟设备vI
图l系统整体框图
(virtual instrument)包括:(1)声卡初始化设备:SI Config;(2)声
虚拟仪器的面板为人机交互界面,其中设有控件和按钮各
卡启动设备:SI START;(3)声卡读入设备:SI READ;(4)声卡
三组,分另U实现未经滤波的原波形显示、原信号频谱、FIR滤波、
清空设备:SI CLEAR。对声卡驱动程序的使用就依靠上述四个
IIR滤波后的波形显示等功能。系统采用Labview编程语言,只
需调用子模板中的FIR/IIR滤波模块,再对对应的模块设定不
函数的联合调用,前一函数将信号的入口地址以task ID out的
传递值传递给下—个函数。发生异常时数据流的输入输出端口
将相应地连接在一起;在调用函数时,如若发生错误,本系统会
同滤波器的参数即可完成上层软件的编程。
维普资讯
・
48・ Computer Era No.1 1 2006
提示错误位置,以便发现或检查信号流程中的数据不匹配或数
3.1无限长脉冲响应(IIR)滤波器
据丢失的现象。四个子设备调用顺序如图3所示。
IIR滤波器的抽象表达式为:x Ax (k-1)+Bx(k)(k),
3软件设计
其输出取决于当前和过去的输出值(即x (k.1)),所以IIR滤
本系统能实现对外界模拟信号的显示、频谱分析以及对信
波器是递归滤波器 。本系统以巴特沃斯低通滤波法实现IIR滤
号进行IIR和FIR滤波。程序模块可分为声卡驱动与数据采集子
波功能。巴特沃斯低通滤波是一种用最平通带特性去逼近理想
模块、原波形显示子模块、白噪声加入子模块、原波形频谱分析
低通特性的滤波器,在通带(或阻带)的频率范围内,幅值在允许
子模块、UR滤波器子模块、FIR滤波器子模块。加入的白噪声函
的范围内单调或平坦地随频率变化,只有某一个频率上的幅值
数有利于对滤波的效果进行仿真检测。IIR和FIR滤波器对输入
与要求相符,其频率特性为lH(w)I=k,、/ ,Fc即为低通
信号的滤波,采用两种不同算法进行对比显示,以比较滤波效
滤波器的上截止频率。调用Butterworth Filter子设备的关键是
果,以及为不同的实验环境提供合适的滤波器。两个函数参数的
设定其采样截止频率,现设定其采样率为22050Hz,则巴特沃斯
入口在面板中可以选择。系统的应用程序框图如图4所示。
滤波器所能处理的最高频率为22050/2=1 1025Hz。经验数据表
明,把经验采样率除以1000,作为低端截止频率,符合采样定理
的要求。在不同的实验环境下,还可以通过动态的修改采样率和
低端截止频率,来设计不同型号的巴特沃斯滤波器。
3.2 FIR滤波子模块
FIR滤波的通式为:X ̄(k)=A51X(i),i从l循环到k。显然
输出值仅取决于过去的输入值(x(O)、x(1)、x(2)…..)和当前的输
入值(x(k))。从数学角度上说,IIR和FIR滤波器提供了相同的
输出,但他们的实现方式不同。FIR滤波器通常采用“窗函数法”
来实现,为了构造长度为N的线性相位滤波器,只有将Ild(n)截
取一段,并保证截取的一段对(N一1)/2对称。设截取段用h(n)表
滤波类型、阶数
示,则h(n)= n)R(n)。式中,R(n)是一个矩形序列,即前面板中
窗类型、滤波类型
选用的矩形窗类型。Butterworth Filter.vi函数的调用为执行
Functions>>Signal Processing>>Filters>>Butterworth Filter.vi操
作 。应用程序的流程图如图5所示。为了能将滤波后的波形保存
以备后期的打印、分析,在While循环以外编写了实现存盘的顺
图4程序流程图 序结构。
图5 lab ̄ew应用程序流程图
4结束语
中只需要— 萤道的信号输入线,因此,可以把两条线的地线和信
本系统调试采用信号发生器作为外部摸拟信号源,数据传输
号线对应连接在一起构成单通道数据采集系统。数据线的一端接
通道采用市售的普通耳机线。这两条连接线是共地的,在调试过程 上声卡的“line in”端口,另—端接入由信号发生器输出频率为
维普资讯
计算机时代2006年第1 1期 ・49・
分形软件及其应用
李海林,柳炳祥,詹棠森
(景德镇陶瓷学院信息工程学院,江西景德镇333001)
摘要:分形图案是使用计算机绘图工具做出的数学图案,它是运用计算机相关原理及分形理论设计得到的图案。文章
介绍了分形软件的组成及其功能,展示了一些软件产生的分形图案,并且对不同参数设置所获得的分形图案和动画进行
了比较。分形自身的特点决定了分形图案色彩及其形状,在开发设计过程中,分形算法的改善可获得更丰富的图案。最后
简单描述了分形软件在各个领域中的应用。
关键词:分形理论;分形软件;分形图案;分形艺术
O引言
佳的分形配置。
分形u1是一种与其它数学图案有明显区别的图案。分形技
(4)可以用数据库存储各种分形参数,为发展分形技术提供一
术能够对任何区域进行毫无失真的放大,并且保持分形图案的
个_共享平台。
自身特征。分形的结构是由重写过程来实现的,某些步骤必须
(5)分形动画是本软件最为突出的功能之一,对各种分形
每次重写。目前,很多相关的原理和理论都得到了应用,如数学
软件产生分形动画,它使得用户能够方便地捕捉各式各样的分
等式,公理,混沌理论等,我们使用这些学科知识来开发分形软
形图案。
件。分形软件产生的图案是画家无法绘制的,这是由分形自身 总之,只要用户稍懂分形的相关理论,使用本软件便可得
的属性决定的。当前,各种不同版本的分形软件只能展示小部
到各种不同的分形图案和分形动画,对这些产品进行处理,以
分的分形而且分形效果(如色彩)不是很好。然而因为分形图案 便达到用户的要求。软件主窗口如图l所示。
有很好的艺术价值,这就决定了开发一种相对较好的分形软件
2分形软件和分形动画展示
的必要性。我们借助Vc++工具来开发分形软件。这种软件具
从上述软件功能描述可知,只要对分形软件中各种参数进
有很大的实用价值和艺术潜力。
行设置,我们就可以得到不同的分形图案和分形动画。假如对分
1分形软件
形原理不熟悉,则可以参考一些相关的资料目,由于篇幅限制,我
1.1分形软件的组成
们在这里不作分形理论的讨论。
分形软件主要是由控制模块,数据接收模块,数据存储模
下面我们展示一部分分形原理产生的图案和动画。
块,图案绘制模块和图案设置模块组成。每一模块都相互联系并
对于根据Julia集原理,我们可以在以下输入窗口进行参
传递相关信息。我们使用MFC来开发软件,因为MFC能够便捷
数设置,如图2所示。
地使用单文档(sDI 多文档(MDD来编写程序。为了让用户能够
方便使用该程序,我们使用了单文档应用程序来进行开发。
1l2分形软件的功能
分形软件的功能主要有:
(1)打开和保存图案,并且可以进行编辑,如:图像的复制、
粘贴、剪切和旋转等。还可以通过属性窗口调整窗口的视图。
(2)根据不同的相关的分形原理来设置参数,并在绘制域
中显示相应的分形图案。
图1分形软件主窗口 图2 Julia集参数设置窗口
(3)对图案进行局部放大和修饰,对不同分形图案进行最 只要设置的参数符合软件的要求,便可以得到不同形状的
50Hz的正弦信号。调试结果表明,基于声卡的虚拟数字滤波能很
参考文献:
好地对音频范围内的信号进行滤波,效果优于—般的椁 氯珐 器。
【1】Gary W.Johnson,Richard Jennings著,武嘉澍,陆劲昆译.Labview
本系统充分利用声卡的A/D转换模块,作为外部模拟信号
Graphical Programming[M].北京大学出版社.2002.
的数据采集卡,实现两通道16位、高精度的数据采集,每个通
【2】陈舞波 一种基于高速般据采集卡的虚拟示波器开dC[J1.电子设计应
道的采样频率不小于22050Hz,比采用NI公司的数据采集卡
用.2005 11.
和其他的通用数据采集卡的成本低得多,而其各项指标均能达
【31丁玉美,高番全 毅字信号处理【M1.番安电子科技大学出版社,2001.
到教学实验和一般工业测试的要求,这就极大地提高了系统的
【4】侯国屏,王绅,叶齐鑫 Labview7 1蠕程与虚拟仪器设计fMJ.清华土
性价比,是一种很好的数据采集方案。
学出版社,2005‘ 园