数字滤波器中英文对照外文翻译文献Word格式.docx
《数字滤波器中英文对照外文翻译文献Word格式.docx》由会员分享,可在线阅读,更多相关《数字滤波器中英文对照外文翻译文献Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
其中,Matlab的主要特点是,它的一套工具箱在滤波器的设计中都可以使用。
不足的是,使用这些工具箱,需要相当长的时间去掌握它们,新手才能使用它们。
更重要的是,Matlab不善于开发接口。
相反,VB中有一个友好的设计用户界面和开发应用程序,但它不能够计算,尤其是在数字滤波器的设计中。
因此,如果我们能够在开发的过程中,利用Matlab做计算和数据图形显示的工作,并用VB写的Windows应用程序和分析计算结果,集成VB和Matlab各自的优点,将很大的提高开发效率。
本文的结构如下:
在第二节中,我们将用VB和Matlab引入混合编程,这是基于COM(组件对象模型)的方法;
在第三节中我们将展示使用的方法,设计几种不同类型的滤波器,如巴特沃斯滤波器,切比雪夫I型和II型滤波器等;
在第四节中,我们将使用信号来检验设计的滤波器的效果。
2.混合编程的实现方法
在如何解决与其他应用程序交互的问题,2002年,Mathworks公司带来了MATLAB6.5,其中的COM生成器模块增加了,在COMBuilder提供了一个易于使用的图形用户界面,帮助用户将M文件自动快速转换成独立的COM组件。
COM组件保存为.DLL(ActiveXDLL)的形式,并且可以使用支持COM组件的应用程序,例如,VisualBasic、MicrosoftExcel、C/C++等。
它的优点是在VB调用COM组件时,可以以最快的速度得到,因为它没有必要进行环境切换。
一个项目包含了所有必要的元素使用COM来构建一个可部署的应用程序.COMBuilder组件是通过VisualBasic,C++,或任何支持COM的其他语言对COM对象的访问。
COM是组件对象模型的一个缩写,它是微软的对象互操作性二进制标准。
每个COM对象公开一个或多个类的VisualBasic编程环境。
每个类都包含了一组函数调用的方法,对应于包括在该组件项目的MATLAB函数。
创建一个组件时,你必须另外提供一个或多个类名。
组件名称表示要创建的DLL文件的名称。
类名表示,在运行时执行一个特定的方法时调用的类的名称。
组件名和类名,以及各种方法(MATLAB函数)之间的关系进入一个特定的类,是纯粹的组织。
作为一般规则,编制许多MATLAB函数时,它有助于确定函数类的方案,并创建一个单独的类。
每个类的名称应该是描述性的类功能。
2.1.在Matlab中创建COM组件
因为不是所有的编译器都能产生微软兼容的COM对象,COM生成器仅支持这些编译器的选择:
BorlandC++Builder4,BorlandC++Builder5,BorlandC++Builder6,微软的VisualStudio5.0,微软的VisualStudio6.0,微软的VisualS。
选择安装上述六个编译器之一后,您必须运行matlab编译MyWibes支持工具以及设置参数。
利用Matlab的COMBuilder创建一个COM组件是一个需要四个简单步骤的过程.
创建项目:
要开始创建项目,在命令行中输入MATLAB命令comtool。
出现了Matlab生成器窗口。
选择:
文件>
新建项目,在这个窗口来查看新的项目设置对话框。
组件名称表示以后在构建过程中创建的DLL名称。
当您输入组件名称时,图形用户界面会自动进入一个类名相同的组件。
你可以改变类的名称更具说明性。
虽然组件名和类名可以相同,但该组件添加到项目中的名称不能与任一M或MEX文件的名称相同。
将类添加到您的组件时,请在类名称字段中的类名单击添加。
新增加的类别现在出现在类列表中。
一旦你通过单击确定新建项目设置对话框的这些设置,他们将成为你项目工作区的一部分,并与M或MEX文件保存到一起,添加到项目名称项目文件中。
<
component_name>
.CBL的项目文件将自动保存到项目目录。
管理的m文件和MEX文件:
当你创建一个项目,建立Matlab的组件菜单选项生成器窗口。
添加M文件和或MEX文件到项目中,通过单击添加文件按钮或选择Project->
添加文件菜单。
你可以一次添加一个文件到项目中。
建设项目:
在定义项目设置并添加所需的M-函数和MEX函数,你可以建立一个可部署的DLL。
选择建立->
COM对象调用matlab编译,写中间的源文件,<
project_dir>
\src和输出文件需要部署到<
\DISTRIB。
包装和分发组件:
一旦你已经成功编译模型和测试的COM对象,您就可以在组件包分发给最终用户。
选择组件->
包装组件来创建包含这些文件的自解压可执行文件。
文件
Purpose
componentname>
.exe.
自解压可执行
_install.bat
脚本的运行、自解压
componentname_
projectversion>
.dll
编译组件
mglinstaller.exe
MATLAB数学和图形安装程序
mwcomutil.dll
COM生成器实用程序库
mwregsvr.exe
可执行文件,注册在目标计算机上的DLL
表1由COMBuilder创建的文件
2.2.应用COM组件在VB
当发布应用程序时,成功创建组件应登记到使用该应用程序的目标计算机。
从<
\DISTRIB复制输出文件到目标计算机,并执行自解压可执行文件,然后生成新的程序(mglinstaller.exe和mwregsvr.exe)并自解压。
该mglinstaller.exe将Matlab数学和图形文件写入$\DISTRIB\BIN\win32中,mwregsvr.exe将注册mwcomutil.dll和<
componentname_projectversion>
.dll复制到目标电脑。
最后复制所有的DLL文件$\DISTRIB\BIN\WIN32到$\Windows\System32下,以便计算机可以找到Matlab数学和图形文件的位置。
然后打开项目/参考VB的对话框,你可以参考COM直接选择后的<
类型库中可用的参考清单。
3.滤波器的设计
现在我们将采用上述方法来开发一种软件,该软件将过滤采样数据,并与滤波后的采样数据的波形比较。
该软件的用户界面是由VB设计,并且滤波器的设计和数据图形显示的函数利用Matlab完成。
对于IIR数字滤波器的设计最有名的和最常用的方法是经典模拟滤波器(theButterworth,切比雪夫I和II,和椭圆滤波器),双线性变换。
这种技术的优点之一是通式为这些过滤器的存在。
该软件提供了两种类型的滤波器--低通滤波器和高通滤波器,4种设计方法-巴特沃斯,切比雪夫I型,切比雪夫II型,椭圆型和FFT和数据的图形显示的功能。
为了满足用户的要求,,用户需要在用户界面中向过滤器输入一些参数,例如:
采样频率,截止频率等等。
软件的开发可以通过以下步骤来完成。
3.1.Matlab程序设计
Matlab程序设计将实现四个设计方法和数据的图形显示。
Matlab的信号处理工具箱提供了一些功能,能够快速,方便地设计滤波器。
巴特沃斯滤波器是在动态分析中最常用的数字滤波器中的一个。
巴特沃斯滤波器的频率响应在通带内是最平坦的(没有波纹),并朝零滚降在阻带。
巴特沃斯滤波器的设计:
使用函数buttord()来计算的顺序和截止频率巴特沃斯滤波器和使用功能butter()来实现巴特沃思模拟和数字滤波器的设计切比雪夫滤波器是具有陡峭的滚降多通带纹波(I型)或停止带内波动(II型)的模拟或数字滤波器。
切比雪夫滤波器具有滤波器理想化特性与实际之间的误差很小的性质,但波纹停止在通带频带内。
切比雪夫I型滤波器设计:
使用函数cheb1ord()来计算切比雪夫I型过滤顺序和使用功能cheby1()来实现切比雪夫I型滤波器的设计。
切比雪夫II型滤波器设计:
使用函数cheb2ord()来计算切比雪夫II型滤波器的顺序和使用功能cheby2()来实现切比雪夫II型滤波器的设计。
椭圆滤波器(也称为考尔滤波器)是滤波器与均衡纹波(等波纹)作用在通带和阻带中。
波纹在每个频带是独立可调的,对于波纹的给定值(纹波是否相等),任何其它滤波器具有在通带和阻带之间的过渡速度增益。
波纹在阻带趋近于零,过滤器变成一个切比雪夫型滤波器。
波纹在通频带接近于零,滤波器变成切比雪夫II型滤波器,最后,因为这两个纹波值接近于零,过滤器变成一个巴特沃斯滤波器。
椭圆滤波器设计:
使用函数ellipord()来计算最小参数为椭圆滤波器,并使用功能ellipord()来实现椭圆滤波器的设计。
具有相同系数的四个不同种参数得到的过滤器如图1。
图1:
四种不同类型的滤波器
FFT滤波器设计:
使用FFT函数()和IFFT()来实现的离散傅里叶变换和反变换。
数据图形显示的程序如下:
functionVPlot(fs,t,y,yp)
%yisthesampledataˈypisthedataafterfilteringfh=figure
(1);
set(gcf,'
Visible'
'
off'
);
%figure
(1)isinvisible
plot(fs*t(1:
50),y(1:
50),'
b'
LineWidth'
1);
%Plotthewaveformofthesampledataholdon;
50),yp(1:
r'
2);
%Plotthewaveformafterfiltering
legend('
thesampledata'
thedataafterfiltering'
set(fh,'
NumberTitle'
Name'
thewaveform'
ah=gca;
set(gca,'
XLim'
[150]);
xlabel('
time(1/fsseconds)'
print-dmeta;
%Hardcopyofthegraphicsclose(gcf);
%Closethefigure
(1)
Matlab程序设计,我们可以用上面的混合编程方法来创建COM组件,然后可以用VB转介。
3.2.VB程序设计
打开VB的工程/引用对话框中,然后就可以通过现有参考的列表中选择<
类型库引用的COM组件。
filtercomclass组件在一般发言栏声明:
私人IOP作为filtercomclass。
指定在一个filtercomclass组件IOP
Form_Load()module:
Setiop=Newfiltercomclass.
Inputthesamplingdata:
OpenInText.TextForInputAs#1
DoWhileNotEOF
(1)Input#1,y(i)
i=i+1
If(i>
n)Then
MsgBox("
Pleasecheckwhetherthesamplingnumberiscorrect!
"
)
Close#1
ExitSubEndIfLoop
Close#1
然后调用在cmdFilter_Click的接口函数()模块来过滤采样数据:
Calliop.vcheb2(1,yp,Wp,Ws,Rp,Rs,ftype,y)andCalliop.vplot(fs,t,y,yp).
Getgraphicsfromtheclipboard:
Figure.Picture=Clipboard.GetData().
Savethedataafterfiltering:
Open"
E:
\data.txt"
ForOutputAs#1
Fori=1Ton
Write#1,yp(1,i)Nexti
最后,编译并执行.
图2.用VB开发用户界面
4.上述软件进行测试
最近,它是基于该共混物一种新的方法,GPSRTK技术高度信号和升沉信号,呈现在精确的多波束数据处理。
混合RTK高度信号和升沉信号必须分别使用滤波器来提取有效部分。
在本节中,我们将使用预处理的RTK高度信号,以测试上述设计的滤波器。
RTK高度信号的低频部分是有效的。
因此,我们使用了低通巴特沃斯滤波器来处理信号。
可根据实际需要,采样频率为1Hz和截止频率被设定为0.2Hz。
图3.RTK高度信号测试的结果
从该结果可以发现,该软件可以满足用户的需求,实现了信号和数据图形的分析。
更重要的是,与M-Files比较,代码的效率大大提高,。
该软件的主要特点是,应用程序是完全脱离Matlab的工作环境,而且编程的难度降低,因为Matlab的数学库和工具箱中包含的各种功能,并且该算法的保密性可以得到保证,最为COM组件的形式。
致谢
这项研究由中国自然科学基金委员会(NSFC)赞助,授权号码40776048。
参考文献
[1]贝兹-洛佩兹,D.;
贝兹-Yillegas,四,基于Matlab[C]的滤波器设计,在教育工作会议上,第三卷,第F4D前沿-12-62001年10月。
[2]岳玉芳;
尤忠生;
张玉芳,基于COM[J]的计算机工程设计,卷用VB与Matlab混合编程。
26,第1号,第61-2,65,2005年1月。
[3]赵德安;
潘天虹,基于VB和Matlab的谷物白粉病人工神经网络模式识别软件的鉴定[J],网络,传感与控制,2008。
ICNSC2008IEEE国际会议ON6-2008年4月8日第808-811。
[4]范新浩;
苗庆敏;
安刚,基于Delphi6的研究[J],计算机应用与Softerware,第21卷,第11号,第38-9,40,2004年11月巴特沃斯数字滤波器的设计与应用。
[5]欧金成;
林德杰;
彭蓓展,调用Matlab从VB实现图形和界面研究[J],计算机工程与设计,卷联盟。
23日,第12号,第64-6,2002年12月。
[6]李腾飞;
张辉,LabWindows/CVI和Matlab设计滤波器的研究[J],电子科学,与技术,第3期,2007年3月。
[7]杨凡林;
赵建虎;
张红梅;
韩晓东,RTK身高信号和冻胀信号的融合及精度分析[J],测绘与信息科学武汉大学学报,Vol。
32,第3期,225-8页,2007年3月。
DesignofDigitalFilterBasedonVBandMatlab
Abstract
Thecoreofdigitalsignalprocessingisthedesignofdigitalfilter.Atpresent,mostdigitalfiltersaredesignedbyMatlab,whichisahigh-performancenumericalcalculationsoftwareandprovidesapowerfulfunctionofgraphicaldisplay.Matlabiswidelyusedinengineeringcalculation,numericalanalysisandotherfields,butitislessabletodevelopinterface.Inthispaper,amethodofhybridprogrammingwithVBandMatlabisintroducedtodesigndigitalfilter.TheintegratedsoftwarecantakefulladvantagesofVBandMatlab,andtheprocessofrealizationindicatesthatthismethodissimpleandconvenient.
Keywords:
digitalfilter,visualbasic,matlab,componentobjectmodel.
1.INTRODUCTION
Nowadays,filtershavearelevantimportanceinelectronicsystemsbecausetheyarepresentinalmostanyelectronicsystem.Forexample,communicationsystemsmakeintensiveuseoffiltertoseparateunwantednoisefromthedesiredsignal.PowersuppliesusefilterstorejectrippleandimprovethequalityoftheDCsignal.Audioequalizersusefilterstoamplifyorattenuatebandsintheaudiorangetoimproveaudioqualitydependinguponroomacousticcharacteristics.Digitalvideoneedsdigitalfilterstoreducenoiseduetocodingandtransmissionthroughanoisychannel,andsoon.However,filterdesignisanintensivecomputationaltaskrequiringasignificantamountofnumericalcalculationstoobtaineithertheparametersofafiltertransferfunctionortheelementvaluesforafiltercircuitrealization.Ontheotherhand,computerusagehasreachedeverycornerineverydaylife.Thus,computersoftwaredevelopmenthasbecomeanimportantpartoftechnologicaldevelopment.Anareathathasbeenmostinfluencedbythisdevelopmentiseducation.Today,thereexistsalargenumberofsoftwarepackageswhichcanbeusedtodesignfilter,andMatlabisoneofthem.Matlab,developedbyMathworkscompany,isahigh-performancenumericalcalculationsoftwareandprovidesapowerfulfunctionofgraphicaldisplay,whichiswidelyusedinengineeringcalculation,numericalanalysisandotherfields.
Matlabisnowavailableinanyuniversityorindustry,anditisused,amongmanyotherthings,inthedesignofcircuitsandsystems.OneofthemaincharacteristicsofMatlabistheavailabilityofasetoftoolboxesalmostreadytobeusedinthedesignoffilters.Unfortunately,theuseofthese
toolboxesrequiresaconsiderablelengthoftimetomasterthem,thusdiscouragingnoviceuserstousethem.What’smore,Matlabislessabletodevelopinterface.Contrarily,VBhasafriendlyuserinterfacetodesignanddevelopapplications,butlessabletocalculateandplot,especiallyforthedigitalfilter