一种基于VC与MATLAB混合编程下的信道噪声干扰仿真

2014-12-25 05:03周雅芳范玉娜张耀寰沈阳理工大学辽宁沈阳110159
科技视界 2014年26期
关键词:航天器信道编程

周雅芳 范玉娜 张耀寰 罗 浩(沈阳理工大学,辽宁 沈阳110159)

1 Visual C++与Matlab混合编程介绍

Visual C++是微软推出的一款C++编译器,将C++语言翻译为“机器语言”的程序。Visual C++是一个功能强大的可视化软件开发工具,已成为专业程序员进行软件开发的首选工具。由于C++是由C语言发展起来的,也支持C语言的编译[1]。但是代码编制复杂,不适合算法设计绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序,但是可视化编程太复杂[2]。用VC++来做应用程序的界面,而用Matlab来实现应用程序的功能,这样在VC中就不用再写复杂的算法,在Matlab中也就不用再为复杂的可视化而烦恼。

2 Visual C++与MATLAB混合编程方法

MATLAB与VC混合编程的方法有很多,其中包括通过MATLAB Engine方式,直接调用C/C++数学函数库,用MATLAB自带的MATLAB Compiler,使用MATLAB的combuilde工具以及使用matcom工具五种方法,其中,本文采取的是使用matcom工具进行仿真的方法。matcom是一个十分有用的.m文件翻译器,是一个能将M文件转化成相同功能C++代码的工具。相比MATLAB自带的编译器Compiler,用matcom转化代码要简单和方便得多[3]。Visual C++与MATLAB混合编程流程图如图1所示:

图1 Visual C++与MATLAB混合编程流程图

3 实验仿真结果

随着空间科学和空间技术的不断发展,许多任务要求在航天器与航天器之间、航天器与地面站之间双向传输音频、视频、科学实验等多种不同类型的数据[4-5]。为可靠、有效地传输这些数据,本实验对信道噪声进行了研究分析,仿真结果如图2所示:

图2 原始波形与加入噪声的波形

本实验我们选取的原始波形如图2中的上部分所示,在原始波形中,我们选取横坐标从1到33一共33个“0”、“1”组成的二进制码流作为发送端的传输码流,下部分加入噪声波形所加入的噪声是高斯白噪声[6]。由于计算机是以“0”、“1”排列组合成的二进制码流对发送端的信源进行存储与传输,经过传输信道的时候受到传输信道噪声的影响生成原始波形下方的加入噪声波形,可以看出在横坐标的1到33处,波形的幅值有明显的变化。

[1]谢贤芬.21天学通Visual C++[M].2版.北京:电子工业出版社,2001,2.

[2]龚纯,王正林.MATLAB语言常用算法程序集[M].2版.北京:电子工业出版社,2011,3.

[3]余姜德.MATLAB与VC++混合编程的实现[J].软件导刊,2007,7.

[4]田野,冯永新,马玉峰,刘桂君.高级在轨系统中的多路复用与差错控制技术研究[M].北京:科学出版社,2014,4.

[5]Tian ye,Li Qingfan,Feng yongxin,Gao xiaoling.A virtual channels scheduling algorithm with broad applicability based on movable boundary[J].Mathematical Problems in Engineering,2013,9:1-8.

[6]樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2007:334-335.

猜你喜欢
航天器信道编程
2022 年第二季度航天器发射统计
编程,是一种态度
编程小能手
纺织机上诞生的编程
2019 年第二季度航天器发射统计
2018 年第三季度航天器发射统计
2018年第二季度航天器发射统计
基于导频的OFDM信道估计技术
一种改进的基于DFT-MMSE的信道估计方法
基于MED信道选择和虚拟嵌入块的YASS改进算法