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

📄 de_64qam.c

📁 好东西
💻 C
📖 第 1 页 / 共 4 页
字号:
 */
void mlxDe_64qam(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]) {
    mxArray * mprhs[1];
    mxArray * mplhs[1];
    int i;
    if (nlhs > 1) {
        mlfError(
          mxCreateString(
            "Run-time Error: File: de_64qam Line: 1 Column:"
            " 1 The function \"de_64qam\" was called with m"
            "ore than the declared number of outputs (1)."),
          NULL);
    }
    if (nrhs > 1) {
        mlfError(
          mxCreateString(
            "Run-time Error: File: de_64qam Line: 1 Column:"
            " 1 The function \"de_64qam\" was called with m"
            "ore than the declared number of inputs (1)."),
          NULL);
    }
    for (i = 0; i < 1; ++i) {
        mplhs[i] = NULL;
    }
    for (i = 0; i < 1 && i < nrhs; ++i) {
        mprhs[i] = prhs[i];
    }
    for (; i < 1; ++i) {
        mprhs[i] = NULL;
    }
    mlfEnterNewContext(0, 1, mprhs[0]);
    mplhs[0] = Mde_64qam(nlhs, mprhs[0]);
    mlfRestorePreviousContext(0, 1, mprhs[0]);
    plhs[0] = mplhs[0];
}

/*
 * The function "Mde_64qam" is the implementation version of the "de_64qam"
 * M-function from file
 * "c:\matlab6p5\work\adptive_ofdm\adptive_ofdm\de_64qam.m" (lines 1-92). It
 * contains the actual compiled code for that M-function. It is a static
 * function and must only be called from one of the interface functions,
 * appearing below.
 */
/*
 * function y=de_64qam(x)     %qam解调,X1是序列长度,K1就是2^K1qam
 */
static mxArray * Mde_64qam(int nargout_, mxArray * x) {
    mexLocalFunctionTable save_local_function_table_
      = mclSetCurrentLocalFunctionTable(&_local_function_table_de_64qam);
    mxArray * y = NULL;
    mxArray * y1 = NULL;
    mclCopyArray(&x);
    /*
     * 
     * x=x*sqrt(42);
     */
    mlfAssign(&x, mclMtimes(mclVa(x, "x"), mlfSqrt(_mxarray0_)));
    /*
     * y=real(x);
     */
    mlfAssign(&y, mlfReal(mclVa(x, "x")));
    /*
     * y1=imag(x);
     */
    mlfAssign(&y1, mlfImag(mclVa(x, "x")));
    /*
     * if          (y>=0)&(y<=2)      y=1;
     */
    {
        mxArray * a_ = mclInitialize(mclGe(mclVv(y, "y"), _mxarray15_));
        if (mlfTobool(a_)
            && mlfTobool(mclAnd(a_, mclLe(mclVv(y, "y"), _mxarray1_)))) {
            mxDestroyArray(a_);
            mlfAssign(&y, _mxarray2_);
        /*
         * elseif (y>2) &(y<=4)     y=3;
         */
        } else {
            mxDestroyArray(a_);
            {
                mxArray * a_0 = mclInitialize(mclGt(mclVv(y, "y"), _mxarray1_));
                if (mlfTobool(a_0)
                    && mlfTobool(
                         mclAnd(a_0, mclLe(mclVv(y, "y"), _mxarray3_)))) {
                    mxDestroyArray(a_0);
                    mlfAssign(&y, _mxarray4_);
                /*
                 * elseif (y>4) &(y<=6)     y=5; 
                 */
                } else {
                    mxDestroyArray(a_0);
                    {
                        mxArray * a_1
                          = mclInitialize(mclGt(mclVv(y, "y"), _mxarray3_));
                        if (mlfTobool(a_1)
                            && mlfTobool(
                                 mclAnd(
                                   a_1, mclLe(mclVv(y, "y"), _mxarray5_)))) {
                            mxDestroyArray(a_1);
                            mlfAssign(&y, _mxarray6_);
                        /*
                         * elseif (y>6)            y=7;   
                         */
                        } else {
                            mxDestroyArray(a_1);
                            if (mclGtBool(mclVv(y, "y"), _mxarray5_)) {
                                mlfAssign(&y, _mxarray7_);
                            /*
                             * elseif (y<-6)            y=-7;
                             */
                            } else if (mclLtBool(mclVv(y, "y"), _mxarray8_)) {
                                mlfAssign(&y, _mxarray9_);
                            /*
                             * elseif (y>=-6) &(y<-4)   y=-5;  
                             */
                            } else {
                                mxArray * a_2
                                  = mclInitialize(
                                      mclGe(mclVv(y, "y"), _mxarray8_));
                                if (mlfTobool(a_2)
                                    && mlfTobool(
                                         mclAnd(
                                           a_2,
                                           mclLt(
                                             mclVv(y, "y"), _mxarray10_)))) {
                                    mxDestroyArray(a_2);
                                    mlfAssign(&y, _mxarray11_);
                                /*
                                 * elseif (y>=-4) &(y<-2)   y=-3;     
                                 */
                                } else {
                                    mxDestroyArray(a_2);
                                    {
                                        mxArray * a_3
                                          = mclInitialize(
                                              mclGe(
                                                mclVv(y, "y"), _mxarray10_));
                                        if (mlfTobool(a_3)
                                            && mlfTobool(
                                                 mclAnd(
                                                   a_3,
                                                   mclLt(
                                                     mclVv(y, "y"),
                                                     _mxarray12_)))) {
                                            mxDestroyArray(a_3);
                                            mlfAssign(&y, _mxarray13_);
                                        /*
                                         * else                     y=-1;
                                         */
                                        } else {
                                            mxDestroyArray(a_3);
                                            mlfAssign(&y, _mxarray14_);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    /*
     * end
     */
    }
    /*
     * if          (y1>=0)&(y1<=2)     y1=1;
     */
    {
        mxArray * a_ = mclInitialize(mclGe(mclVv(y1, "y1"), _mxarray15_));
        if (mlfTobool(a_)
            && mlfTobool(mclAnd(a_, mclLe(mclVv(y1, "y1"), _mxarray1_)))) {
            mxDestroyArray(a_);
            mlfAssign(&y1, _mxarray2_);
        /*
         * elseif (y1>2) &(y1<=4)     y1=3;
         */
        } else {
            mxDestroyArray(a_);
            {
                mxArray * a_4
                  = mclInitialize(mclGt(mclVv(y1, "y1"), _mxarray1_));
                if (mlfTobool(a_4)
                    && mlfTobool(
                         mclAnd(a_4, mclLe(mclVv(y1, "y1"), _mxarray3_)))) {
                    mxDestroyArray(a_4);
                    mlfAssign(&y1, _mxarray4_);
                /*
                 * elseif (y1>4) &(y1<=6)     y1=5; 
                 */
                } else {
                    mxDestroyArray(a_4);
                    {
                        mxArray * a_5
                          = mclInitialize(mclGt(mclVv(y1, "y1"), _mxarray3_));
                        if (mlfTobool(a_5)
                            && mlfTobool(
                                 mclAnd(
                                   a_5, mclLe(mclVv(y1, "y1"), _mxarray5_)))) {
                            mxDestroyArray(a_5);
                            mlfAssign(&y1, _mxarray6_);
                        /*
                         * elseif (y1>6)             y1=7;   
                         */
                        } else {
                            mxDestroyArray(a_5);
                            if (mclGtBool(mclVv(y1, "y1"), _mxarray5_)) {
                                mlfAssign(&y1, _mxarray7_);
                            /*
                             * elseif (y1<-6)             y1=-7;
                             */
                            } else if (mclLtBool(mclVv(y1, "y1"), _mxarray8_)) {
                                mlfAssign(&y1, _mxarray9_);
                            /*
                             * elseif (y1>=-6) &(y1<-4)   y1=-5;  
                             */
                            } else {
                                mxArray * a_6
                                  = mclInitialize(
                                      mclGe(mclVv(y1, "y1"), _mxarray8_));
                                if (mlfTobool(a_6)
                                    && mlfTobool(
                                         mclAnd(
                                           a_6,
                                           mclLt(
                                             mclVv(y1, "y1"), _mxarray10_)))) {
                                    mxDestroyArray(a_6);
                                    mlfAssign(&y1, _mxarray11_);
                                /*
                                 * elseif (y1>=-4) &(y1<-2)   y1=-3;     
                                 */
                                } else {
                                    mxDestroyArray(a_6);
                                    {
                                        mxArray * a_7
                                          = mclInitialize(
                                              mclGe(
                                                mclVv(y1, "y1"), _mxarray10_));
                                        if (mlfTobool(a_7)
                                            && mlfTobool(
                                                 mclAnd(
                                                   a_7,
                                                   mclLt(
                                                     mclVv(y1, "y1"),
                                                     _mxarray12_)))) {
                                            mxDestroyArray(a_7);
                                            mlfAssign(&y1, _mxarray13_);
                                        /*
                                         * else                       y1=-1;
                                         */
                                        } else {
                                            mxDestroyArray(a_7);
                                            mlfAssign(&y1, _mxarray14_);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    /*
     * end
     */
    }
    /*
     * x=complex(y,y1);
     */
    mlfAssign(&x, mlfComplex(mclVv(y, "y"), mclVv(y1, "y1")));
    /*
     * 
     * 
     * if       x==-7+7*j y=[0 0 0 0 0 0];%y==[0 0 0 0 0 0] x=-7+7*j;
     */
    if (mclEqBool(mclVa(x, "x"), _mxarray16_)) {
        mlfAssign(&y, _mxarray17_);
    /*
     * elseif x==-5+7*j y=[0 0 0 0 0 1];%y==[0 0 0 0 0 1] x=-5+7*j;
     */
    } else if (mclEqBool(mclVa(x, "x"), _mxarray19_)) {
        mlfAssign(&y, _mxarray20_);
    /*
     * elseif x==-1+7*j y=[0 0 0 0 1 0];%y==[0 0 0 0 1 0] x=-1+7*j;
     */
    } else if (mclEqBool(mclVa(x, "x"), _mxarray22_)) {
        mlfAssign(&y, _mxarray23_);
    /*
     * elseif x==-3+7*j y=[0 0 0 0 1 1];%y==[0 0 0 0 1 1] x=-3+7*j;
     */
    } else if (mclEqBool(mclVa(x, "x"), _mxarray25_)) {
        mlfAssign(&y, _mxarray26_);
    /*
     * elseif x==7+7*j  y=[0 0 0 1 0 0];%y==[0 0 0 1 0 0] x=7+7*j;
     */
    } else if (mclEqBool(mclVa(x, "x"), _mxarray28_)) {
        mlfAssign(&y, _mxarray29_);
    /*
     * elseif x==5+7*j  y=[0 0 0 1 0 1];%y==[0 0 0 1 0 1] x=5+7*j;
     */
    } else if (mclEqBool(mclVa(x, "x"), _mxarray31_)) {
        mlfAssign(&y, _mxarray32_);

⌨️ 快捷键说明

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