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和.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;
plot(fs*t(1:
50),yp(1:
50),'r','LineWidth',2);
%Plotthewaveformafterfiltering
legend('thesampledata','thedataafterfiltering');
set(fh,'NumberTitle','off','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
Close#1
最后,编译并执行.
图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