MATLAB与C混合编程技术在A/D性能测试中的应用
2015-01-01王益民
王益民
(南京电子技术研究所, 南京210039)
0 引言
MATLAB是一套高级的数学分析和计算软件,具有科学计算与可视化功能、简单易用的开放可扩展环境,以及多达30多个面向不同领域而扩展的工具箱支持,集计算机辅助设计、分析与仿真一体,功能强大和灵活,编程效率高,在需要快速验证算法时,相比常见的通用编程平台(如:Visual C++等)有很大优势。但MATLAB也存在以下4点不足:
1)程序执行逐行解释,在实时仿真中影响速度;
2)无规范完整的图形用户界面标准;
3)不能直接访问底层硬件;
4)用户界面单调。
上述不足限制了它不能作为通用的软件开发平台,这给工程计算与应用带来很大的不便[1-3]。
而常见的通用编程平台(如:Visual C++等),功能灵活,与硬件接口能力突出,但面对信号分析领域先进的理论和方法,如:时频分析、小波变换、遗传算法等,编程效率低。因此,实现MATLAB与Visual C++的混合编程,使其有机结合,优势互补,具有很强的应用价值[4]。
MATLAB本身提供了多种外部接口,如:使用MATLAB自带的MATLAB Compiler、利用MATLAB引擎、利用Active控件、利用MAT文件、C-MEX等,通过这些外部接口,实现MATLAB与其他编程环境的混合编程,可以扩充MATLAB的强大的数值计算和图形显示功能,而避开其缺点[1]。
在一种雷达接收机A/D性能测试设备的研制中,针对MATLAB与硬件设备的接口能力较差,不能直接访问底层硬件设备的缺点,我们采用MATLAB外部接口混合编程技术,利用C语言编写自定义的MEX函数,在MATLAB环境中实现了对计算机设备的读写驱动,可直接获取A/D采集的数据,进而对数据分析处理,简化了系统软件的设计,提高了实时性能,充分利用MATLAB编程效率高、数学计算功能强大的特点。……
