QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第1页
QPSK毕业设计(论文)-QPSK调制器的设计与实现.ppt_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

各位老师好!,课题,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 filesmatlabr2007aexterninclude, d:program filesmatlabr2007aexternincludewin32; 然后在library files里面加入: d:program filesmatlabr2007aexternlibwin32microsoft; 注:根据用户的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,并在构造函数中初始化为null; 2.赋值:parrayin = mxcreatedoublematrix(1,8,mxreal); *(mxgetpr(parrayin)+i) = 1/0; 3.调用mlfqpsk(parrayin); 4.最后还需要在解析函数中销毁mxarray *parrayin , mxdestroyarray(parrayin);,vc调用*.m编译后的动态链接库,简单代码,查看结果,演示,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 c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论