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

上传人:小小飞 文档编号:3901056 上传时间:2019-10-09 格式:PPT 页数:15 大小:601.50KB
返回 下载 相关 举报
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第1页
第1页 / 共15页
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第2页
第2页 / 共15页
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第3页
第3页 / 共15页
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第4页
第4页 / 共15页
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt》由会员分享,可在线阅读,更多相关《QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt(15页珍藏版)》请在三一文库上搜索。

1、各位老师好!,课题,QPSK调制器的设计与实现,工具软件,Matlab R2007amatlab Visual C+ 6.0,前期工作,使用matlab完成QPSK调制器的设计; QPSK调制器程序完成以后,测试并调试: 输入数据:10 11 01 00 结果如图所示:,再续,从录音文件(-.wav)读取数据,实现调制。 问题: (1)数据太多,无法显示;数据图像显示有限,如果读取太多,图像分辨不清。 (2)控制数据显示方面,能力不足。,为什么需要混编?,背景简介:,Matlab 是由Math Works 公司于1984 年推出的数值计算及图形处理软件,可以实现数值分析、优化、统计、偏微分方程

2、数值解、自动控制、信号处理、图像处理等若干领域的计算和图形显示功能。其中,控制系统工具箱的集成为设计和分析各种复杂的控制系统提供了有效的方法和途径。 但是,由于Matlab开发平台的局限性,在其上面开发的程序不能脱离Matlab运行环境,因而在处理一些实际应用问题时显得灵活性不足,而VC+则在一定程度上能够弥补这一漏洞,因此,现将二者结合共用,各献其长,可以为科研工作和工程开发提供了更为强大的技术支持。,C/C+中调用Matlab,使用MATLAB引擎,用matlab生成DLL,用matlab生成COM组件,matcom & VC+,通过matlab编译器的mcc命令,可以将Matlab*.m

3、文件直接编译为动态链接 库供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; ,

4、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.工具-选项,属性

5、页选择“目录”,在include files里面加入: D:PROGRAM FILESMATLABR2007AEXTERNINCLUDE, D:PROGRAM FILESMATLABR2007AEXTERNINCLUDEWIN32; 然后在Library files里面加入: D:PROGRAM FILESMATLABR2007AEXTERNLIBWIN32MICROSOFT; 注:根据用户的Matlab安装位置,修改相应目录。 3.将libsincplot.dll复制到Windows系统目录或者工程的debug目录下,将libsinc- plot.h、libsincplot.lib和libs

6、incplot.ctf文件复制到工程的源文件目录下,并将libs- incplot.h文件添加到工程。 注:同时也需要将libsincplot.ctf复制到工程的debug目录下,这一点书上没提到。,VC调用*.m编译后的动态链接库,VC工程设置,1.在MATLAB当中,我们利用M文件来实现函数,每一个M文件实现一个单独的功 能,这一点和C语言当中的函数是相互对应的。 2.MATLAB所有的计算都是基于一种名为mxArray的数据结构之上的, 所有的浮点数、向量或者是矩阵在MATLAB当中都是通过mxArray结构来进行存 储和传递的。当然,MATLAB所提供的所有数学函数也都是基于这样一种数

7、据结 构进行运算的。所以,要使用MATLAB的生成代码,就必须将C语言当中常用的 浮点数和整数转换为mxArray结构。,VC调用*.m编译后的动态链接库,函数调用:,1.添加变量mxArray *pArrayIn,并在构造函数中初始化为NULL; 2.赋值:pArrayIn = mxCreateDoubleMatrix(1,8,mxREAL); *(mxGetPr(pArrayIn)+i) = 1/0; 3.调用mlfQPSK(pArrayIn); 4.最后还需要在解析函数中销毁mxArray *pArrayIn , mxDestroyArray(pArrayIn);,VC调用*.m编译后的

8、动态链接库,简单代码,查看结果,演示,matlab窗口嵌入MFC窗口,void CWaveView:OnPlotinview() / TODO: Add your command handler code here m_plotH = :FindWindow(NULL,“Figure 1“); if(:IsWindow(m_plotH) /将CWave_dllView设为MATLAB窗口的父窗口 :SetParent(m_plotH,this-GetSafeHwnd(); CWnd * pWnd = NULL; pWnd = FromHandle(m_plotH); CRect rect; GetClientRect( ,重载OnSize函数,void CYanshiComView:OnSize(UINT nType, int cx, int cy) CView:OnSize(nType, cx, cy); / TODO: 在此处添加消息处理程序代码 if (:IsWindow(m_plotH) :MoveWindow(m_plotH,0,0,cx,cy,true); ,谢 谢 !,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1