EDA365电子论坛网

标题: MATLAB调用C程序、调试和LDPC译码过程详解 [打印本页]

作者: fanichicl    时间: 2019-2-27 07:30
标题: MATLAB调用C程序、调试和LDPC译码过程详解
MATLAB调用C程序、调试和LDPC译码过程详解4 V# |! x, t% d0 L. g  ^

MATLAB是一个很好用的工具。利用MATLAB脚本进行科学计算也特别方便快捷。但是代码存在较多循环时,MATLAB运行速度极慢。如果不想放弃MATLAB中大量方便使用的库,又希望代码能迅速快捷的运行,可以考虑将循环较多的功能采用C编写,MATLAB调用。本文将概述这一过程。虽然本文以LDPC译码算法为例,但不懂该算法不影响本文阅读。

1. 起因

最开始用MATLAB写的LDPC译码算法中,其中一个版本是这里,里面有三重循环,运行速度极慢。后来考虑了MATLAB的向量化操作,通过算法的合理划分以及内置函数调用,成功将三重循环修改为1层,具体这一版本的代码可见这里。通过这一手段,函数的运行速度提高了几倍乃至几十倍。虽然这一方法下运行速度依旧比不过MATLAB工具箱中的comm.LDPCDecoder,远比不上利用GPU的comm.gpu.LDPCDecoder,但胜在可明确算法并具有一定扩展性。

起初也注意到可以通过MATLAB调用C程序来加速程序运行,但向量化后的代码凑活能用,加上有时也可调用更为强大的内置函数,这一想法一直没有付诸实践。这几天想好好整理一下代码,遂萌发了写一个C版本译码算法的想法。代码现在的状态是“能用”,这里把相关经验总结分析在此。


5 u8 Y) r' u+ N' X. z# x; y
作者: yxlk    时间: 2019-2-27 09:34
谢谢分享




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2