matlab信号内插,基于VC++和Matlab的数字信号内插处理系统

0引言目前,利用并行交替式(Parallalinterleaving)技术,超高速数字化示波器的实时采样速率已突破了10Gsa/s。按照Nyquist定理,这种系统的实时带宽可接近5GHz。在数字化示波器中,由实时采样获得的样本数据原封不动地显示时,因采样理论和显示技术等缘故,可能会产生不同形式的视觉混淆。对于数字化示波器而言,除了要求有高的实时采样速率外,还要求有较高的波形分析细节[1]。为此需要在采集的数据样本之间进行插值。Matlab在矩阵运算,一维、二维和三维图形的绘制,数值拟合等方面均有极强的功能,已被广泛运用于数字信号处理、图像处理等领域,具有极好的可读性和可移植性。Matlab的突出特点是简洁,它利用丰富的函数资源,给用户带来最直观、最简洁的程序开发环境,但Matlab在用户接口上有着交互性差的缺点。而VC++可以开发基于MFC以及基于WindowsAPI的Win32程序,其特点是代码效率高、执行速度快,可以开发出风格多样的操作界面,其美中不足是开发信号处理算法时代码编写工作量很大。因此,VC++开发工具和Matlab混合编程的信号处理系统,既利用了VC++的面向对象特性和功能强大的MFC来开发专业级的操作界面,又可以方便地使用Matlab提供的信号处理函数完成对数字信号的一维插值处理。因工程需要,文中提到的内插方法是利用Matlab的库函数interp1()进行三次多项式插值,而不用涉及到复杂的多相滤波器[2]。该方法简单、有效。1系统功能和程序流程当执行工程程序时启动主对话框(见图1),由主对话框设置键启动读取长度和内插倍数设置对话框,在读取长度和内插倍数设置对话框中设置需要读取的数据点长度和内插的倍数(见图2)。然后启动Matlab引擎程序进行后台处理,读取数据文件进行内插处理,并显示相应的数据波形,最后按路径保存处理后的文件。关闭Matlab引擎,退出Matlab程序。用户交互界面和程序流程图见图3。图1主对话框图2读取长度和内插倍数设置对话框图3内插处理程序流程图2引擎方法调用Matlab的开发环境配置和关键程序混合编程的开发方式采用在VC++环境下调用Matlab引擎(在VC6.0和Matlab6.5环境下)来实现。所谓Matlab引擎(MatlabEngine),是指一组Matlab提供的接口函数(EngineAPI函数),它采用客户机/服务器计算模式,并且支持C语言。具体在C++中使用Matlab引擎来编制程序时,C++是作为客户端出现的,即负责用户接口和提出数据请求;而Matlab则属于服务器端,即向客户端提供数据服务。利用Mat-lab引擎调用工具箱中的函数可以节省大量的系统资源[3],C++客户端通过调用Matlab引擎与Matlab服务器建立连接,从而实现动态通信[4]。混合编程编译接口环境的配置主要有以下两步(假设Matlab安装在目录C:Matlab6p5下)。1)添加Matlab引擎库的头文件和库函数的路径。在VC++6.0开发环境中,打开菜单“Tools”选取“Options…->Directories”。在“Showdirectoriesfor”选项卡选取“Includefiles”,添加“C:Matlab6p5EXTERNINCLUDE”。这是Matlab引擎库的头文件engine.h所在的目录。然后在“Showdirectoriesfor”中选取“LibraryFiles”,添加“C:Matlab6p5EX-TERNLIBWIN32MICROSOFTMSVC60”,因为这些引擎库用到的动态链接库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值