⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldpcqenc.c

📁 此代码是LDPC码进行BP算法的重要参考代码
💻 C
字号:
#include <mex.h>
#include <matrix.h>         //for Matlab mx and mex fuctions
#include <math.h>

// 0            0  1   2
//[u]=ldpcqenc(h1j,s,cols)
void mexFunction( int nlhs, mxArray *plhs[],
                  int nrhs, const mxArray*prhs[] )
{
    //input
    double *h1j;        //pointer variable for input matrix h1j
    double *s;          //pointer variable for input matrix s (inf bits)
    double cols;

    //output
    double *u;          //pointer variable for output matrix u (encoded bits)

    //local
    double h1num;       //p solving matrix 1's number
    double slen;        //s length

    unsigned int h1loop;
    unsigned int uloop;
    unsigned char p;

    h1j = mxGetPr(prhs[0]);     //pointer to h1j
    s = mxGetPr(prhs[1]);       //pointer to s
    cols = mxGetScalar(prhs[2]);//value of cols

    h1num = mxGetN(prhs[0]);    //number of cols of h1j
    slen = mxGetN(prhs[1]);

    plhs[0] = mxCreateDoubleMatrix(1, cols, mxREAL); //matrix for output
    u = mxGetPr(plhs[0]);       //pointer to u

    for (uloop=0; uloop<slen; uloop++)
    {
        u[uloop] = s[uloop];
    }

    h1loop = 0;
    for (; uloop<cols; uloop++)
    {
        p = 0;
        while (h1j[h1loop]<=uloop)
        {
            p = p ^ (unsigned char)u[(unsigned int)h1j[h1loop] - 1];
            h1loop++;
        }
        u[uloop] = p;
        h1loop++;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -