文档详情

QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt

发布:2017-08-06约2.97千字共15页下载文档
文本预览下载声明
各位老师好! 课题 QPSK调制器的设计与实现 工具软件 Matlab R2007amatlab Visual C++ 6.0 前期工作 使用matlab完成QPSK调制器的设计; QPSK调制器程序完成以后,测试并调试: 输入数据:10 11 01 00 结果如图所示: 再续 从录音文件(-.wav)读取数据,实现调制。 问题: (1)数据太多,无法显示;数据图像显示有限,如果读取太多,图像分辨不清。 (2)控制数据显示方面,能力不足。 为什么需要混编? 背景简介: Matlab 是由Math Works 公司于1984 年推出的数值计算及图形处理软件,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干领域的计算和图形显示功能。其中,控制系统工具箱的集成为设计和分析各种复杂的控制系统提供了有效的方法和途径。 但是,由于Matlab开发平台的局限性,在其上面开发的程序不能脱离Matlab运行环境,因而在处理一些实际应用问题时显得灵活性不足,而VC++则在一定程度上能够弥补这一漏洞,因此,现将二者结合共用,各献其长,可以为科研工作和工程开发提供了更为强大的技术支持。 C/C++中调用Matlab 使用MATLAB引擎 用matlab生成DLL 用matlab生成COM组件 matcom VC++ 通过matlab编译器的mcc命令,可以将Matlab*.m文件直接编译为动态链接 库供Visual C++调用。以下面函数为例,采用mcc -B cssharedlib:libQPSk QPSk.m 将其编译为动态链接库,生成文件列表如图所示: %QPSK.m文件 function Qpsk(g) l=length(g); f=2; t=0:2*pi/99:2*pi; cp=[];sp=[]; mod=[];mod1=[];bit=[]; …… Qpsk=cp.*mod+sp.*mod1; subplot(2,1,1); plot(bit,LineWidth,1.5); title(Binary Signal) axis([0 50*l -0.2 3.2]); grid on; …… VC调用*.m编译后的动态链接库 编译Matlab *.m文件 1.打开VC工程的Project|Setting对话框,在link|input选项中加入库文件 libemlrt.lib libmex.lib libut.lib mclmcrrt.lib libeng.lib libmwlapack.lib mclcom.lib mclxlmain.lib libfixedpoint.lib libmwservices.lib mclcommain.lib libdflapack.lib libmat.lib libmx.lib mclmcr.lib libQpsk.lib 2.工具-选项,属性页选择“目录”,在include files里面加入: D:\PROGRAM FILES\MATLABR2007A\EXTERN\INCLUDE, D:\PROGRAM FILES\MATLABR2007A\EXTERN\INCLUDE\WIN32; 然后在Library files里面加入: D:\PROGRAM FILES\MATLABR2007A\EXTERN\LIB\WIN32\MICROSOFT; 注:根据用户的Matlab安装位置,修改相应目录。 3.将libsincplot.dll复制到Windows系统目录或者工程的debug目录下,将libsinc- plot.h、libsincplot.lib和libsincplot.ctf文件复制到工程的源文件目录下,并将libs- incplot.h文件添加到工程。 注:同时也需要将libsincplot.ctf复制到工程的debug目录下,这一点书上没提到。 VC调用*.m编译后的动态链接库 VC工程设置 1.在MATLAB当中,我们利用M文件来实现函数,每一个M文件实现一个单独的功 能,这一点和C语言当中的函数是相互对应的。 2.MATLAB所有的计算都是基于一种名为mxArray的数据结构之上的, 所有的浮点数、向量或者是矩阵在MATLAB当中都是通过mxArray结构来进行存 储和传递的。当然,MATLAB所提供的所有数学函数也都是基于这样一种数据结 构进行运算的。所以,要使用MATLAB的生成代码,就必须将C语言当中常用的 浮点数和整数转换为mxArray结构。 VC调用*.m编译后的动态链接库 函数调用: 1.添加变量mxArray *pArrayIn,并在构造函数中初始化为
显示全部
相似文档