


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB调用C程序、调试和LDPC译码过程详解MATLAB是一个很好用的工具。利用MATLAB脚本进行科学计算也特别方便快捷。但是代码存在较多循环时,MATLAB运行速度极慢。如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行,可以考虑将循环较多的功能采用C编写,MATLAB调用。本文将概述这一过程。虽然本文以LDPC译码算法为例,但不懂该算法不影响本文阅读。1. 起因最开始用MATLAB写的LDPC译码算法中,其中一个版本是这里,里面有三重循环,运行速度极慢。后来考虑了MATLAB的向量化操作,通过算法的合理划分以及内置函数调用,成功将三重循环修改为1层,具体这一版本
2、的代码可见这里。通过这一手段,函数的运行速度提高了几倍乃至几十倍。虽然这一方法下运行速度依旧比不过MATLAB工具箱中的comm.LDPCDecoder,远比不上利用GPU的comm.gpu.LDPCDecoder,但胜在可明确算法并具有一定扩展性。起初也注意到可以通过MATLAB调用C程序来加速程序运行,但向量化后的代码凑活能用,加上有时也可调用更为强大的内置函数,这一想法一直没有付诸实践。这几天想好好整理一下代码,遂萌发了写一个C版本译码算法的想法。代码现在的状态是“能用”,这里把相关经验总结分析在此。2. MATLAB调用C程序这一部分的内容在刘晓辉的matlab调用C程序中已经有较为详
3、细的介绍了,想要正确调用C程序,关键概括为2点。机器上装有MATLAB编译器,可通过在MATLAB命令行窗口输入mex -setup进行具体设置。有一个正确的接口子程序mexFunction完成MATLAB和C程序之间的数据转换和程序调用这里给出我写得mexFunction(注意这个代码写得不好,没有任何判断,没有健壮性)void mexFunction(int nlhs, mxArray *plhs, int nrhs, const mxArray *prhs) double* llr = (double*)mxGetPr(prhs0);int* rownum = mxGetPr(prhs1
4、);int* colnum = mxGetPr(prhs2);int* trans = mxGetPr(prhs3);double* state = mxGetPr(prhs4);plhs0 = mxCreateDoubleMatrix(1, state1, mxREAL);double* r =mxGetPr(plhs0);ldpcDec( r ,llr, rownum,colnum, trans,state);mexFunction的规范在刘晓辉的matlab调用C程序一文中已有提及,即nlhs:输出参数数目plhs:指向输出参数的指针nrhs:输入参数数目prhs:指向输入参数的指针例如
5、,在matlab命令行中使用a,b=test(c,d,e)调用mex函数test时,传给test的这四个参数分别是2,plhs,3,prhs其中:prhs0=cprhs1=dprhs2=e由此可以解释上述mexFunction,而命令plhs0 = mxCreateDoubleMatrix(1, state1, mxREAL) 则定义了一大小为1 state1的矩阵,做为函数的返回值。最后调用的ldpcDec是一个C程序,运行C程序后plhs0指向的内存空间存储的就是满足要求的计算结果。ldpcDec代码如下#include#includevoid ldpcDec(double*r,double* llr, int* rownum, int* colnum, int* trans, double* state)/列有序,trans为映射关系/rownumi-rownumi-1,第i+1行的行重/colnumi-colnumi-1,第i+1列的列重/state0:maxiter state1:llr /state3:H中非零元素个数 state4: alphadouble* temp;double* decodedtemp;temp = (double*)malloc(sizeof(double)*st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24460-2025太阳能光伏照明装置总技术规范
- 2025春季贵州黔西南州赴省内外高校引才暨第十三届贵州人才博览会公开引进企事业单位高层次人才和急需紧缺人才484人考前自测高频考点模拟试题及一套答案详解
- 2025年中国火腿刀行业市场分析及投资价值评估前景预测报告
- 2025安徽宿州市砀山县招聘幼儿园教师40人考前自测高频考点模拟试题有答案详解
- 2025年中国划线斗盒行业市场分析及投资价值评估前景预测报告
- 2025年中国化妆品级透明质酸原料行业市场分析及投资价值评估前景预测报告
- 2025年甘肃省武威市民勤县西渠镇人民政府选聘专业化管理村文书考前自测高频考点模拟试题及答案详解(各地真题)
- 2025广西大学招聘专职辅导员25人模拟试卷有完整答案详解
- 2025年4月广东深圳市东北师范大学附属中学深圳学校面向应届毕业生招聘教师2人模拟试卷及一套答案详解
- 2025北京师范大学一带一路学院教学助理招聘考前自测高频考点模拟试题及完整答案详解1套
- 人教版高二上学期数学(选择性必修1)《第一章空间向量与立体几何》单元测试卷及答案
- 第四章-运动系统
- 九上历史知识点总结(表格版)
- 中国电信通信技术类笔试题
- 范更华-图论及其应用
- 店长分成合作协议书
- 家乡文化渠县
- 中国天眼完整版本
- 2024年自考00055《企业会计学》历年真题及答案整理版
- 信息技术与小学语文阅读教学深度融合的策略研究
- 经济统计学课件
评论
0/150
提交评论