亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scm_mex_core.c

?? 3gpp信道模型代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
                        }
                     }
                     /* all is real */
                     else {
                        a = *(re_G_BS+ks) * *(re_G_MS+ku);
                        b = 0.0;
                     }

                     /* calculation of t-invariant part of exp(j...) in [1] 5.4 */
                     exp_helper = k_CONST * (*(d_s+s_i) * sin(theta_BS[k_i]) + 
                        *(d_u+u_i) * sin(theta_MS[k_i])) + phase_los[k_i];

                     /* product of previous two */
                     complex_multiply(a, b, cos(exp_helper), sin(exp_helper),
                        &real_multiplier, &imag_multiplier);

                     usntk_i = usn*tn*k_i + u*s*n_i + u*s_i + u_i;
                     for(t_i=0; t_i<tn; t_i++) {
                        usntk = usntk_i + usn*t_i;
                        kt = k*t_i + k_i;
                        angle = exp_t_coeff * *(ts+kt);
                        complex_multiply(real_multiplier, imag_multiplier,
                           cos(angle), sin(angle),
                           &re_LOS, &im_LOS);
                        *(re_h + usntk) += sq_K * sq_1_over_K_plus_1 * re_LOS;
                        *(im_h + usntk) += sq_K * sq_1_over_K_plus_1 * im_LOS;
                     }
                  }
               }
            }
         }
      }
   }
   return 0;
}



/**
 * This is the mex-function.
 *
 * Input arguments are:
 *
 * FOR GENERAL COEFFICIENTS MODE:
 *
 * prhs[0] = mode, either 1 (GENERAL), 2 (POLARIZED) or 3 (LOS) 
 * prhs[1] = [G_BS], complex BS_antenna gains (size [k][s][n][m])
 * prhs[2] = [G_MS], complex MS_antenna gains (size [k][u][n][m])
 * prhs[3] = [aod], angles of departure (size [k][n][m])
 * prhs[4] = [aoa], angles of arrival (size [k][n][m])
 * prhs[5] = [d_s], distances of BS antenna s from ref. antenna (s=1), (size [s])
 * prhs[6] = [d_u], distance of MS antenna u from ref. antenna (u=1), (size [u])
 * prhs[7] = [phase], phase of the mth subpath of the nth path (size [k][n][m])
 * prhs[8] = [ts], time samples (size [k][tn])
 * prhs[9] = k_CONST, wave number
 * prhs[10] = [v], magnitude of the MS velocity vector (size [k])
 * prhs[11] = [theta_v], angle of the MS velocity vector (size [k])
 * prhs[12] = [sq_Pn], square root of Pn (size [k][n*l])
 * prhs[13] = look_up_points, 0 if look-up table not used, -1 if default, otherwise the number of points
 * prhs[14] = u, number of MS antennas
 * prhs[15] = s, number of BS antennas
 * prhs[16] = n, number of multipaths
 * prhs[17] = l, number of midpaths
 * prhs[18] = m, number of subpaths
 * prhs[19] = k, number of links
 * prhs[20] = tn, number of time samples
 * prhs[21] = GainsAreScalar, nonzero if gains are scalar
 * prhs[22] = [lm], indexing vector for subpaths (size [m])
 * prhs[23] = [ln], number of subpaths per midpath (size [l])
 * Output arguments are 
 * plhs[0] = [h], output array of the channel coefficients (size [u][s][n][tn][k])
 * plhs[1] = [output_SubPathPhase] pointer to output phases (size [k][n][m])
 *
 * FOR POLARIZED MODE:
 *
 * prhs[0] = mode, either 1 (GENERAL), 2 (POLARIZED) or 3 (LOS) 
 * prhs[1] = [X_BS_v] BS antenna V-pol component response (size[k][s][n][m])
 * prhs[2] = [X_BS_h] BS antenna H-pol component response (size[k][s][n][m])
 * prhs[3] = [X_MS_v] MS antenna V-pol component response (size[k][u][n][m])
 * prhs[4] = [X_MS_h] MS antenna H-pol component response (size[k][u][n][m])
 * prhs[5] = [aod], angles of departure (size[k][n][m])
 * prhs[6] = [aoa], angles of arrival (size[k][n][m])
 * prhs[7] = [d_s], distances of BS antenna s from ref. antenna (s=1), (size [s])
 * prhs[8] = [d_u], distance of MS antenna u from ref. antenna (u=1), (size [u])
 * prhs[9] = [phase_v_v], Phase offset of the mth subpath of the nth path between vertical components of BS and MS (size = [k][n][m])
 * prhs[10] = [phase_v_h], Phase offset of the mth subpath of the nth path between vertical components of BS and horizontal components of MS (size = [k][n][m])
 * prhs[11] = [phase_h_v], Phase offset of the mth subpath of the nth path between horizontal components of BS and vertical components of MS (size = [k][n][m])
 * prhs[12] = [phase_h_h], Phase offset of the mth subpath of the nth path between horizontal components of BS and MS (size = [k][n][m])
 * prhs[13] = [r_n1] power ratio of (v-h)/(v-v) (size [k][n])
 * prhs[14] = [r_n2] power ratio of (h-v)/(v-v) (size [k][n])
 * prhs[15] = [ts], time sample vector (size [k][tn])
 * prhs[16] = k_CONST, wave number
 * prhs[17] = [v], magnitude of the MS velocity vector (size [k])
 * prhs[18] = [theta_v], angle of the MS velocity vector (size [k])
 * prhs[19] = [sq_Pn], square root of Pn (size [k][n*l])
 * prhs[20] = look_up_points, 0 if look-up table not used, -1 if default, otherwise the number of points
 * prhs[21] = u, number of MS antennas
 * prhs[22] = s, number of BS antennas
 * prhs[23] = n, number of multipaths
 * prhs[24] = l, number of midpaths
 * prhs[25] = m, number of subpaths
 * prhs[26] = k, number of links
 * prhs[27] = tn, number of time samples
 * prhs[28] = GainsAreScalar, nonzero if gains are scalar
 * prhs[29] = [lm], indexing vector for subpaths (size [m])
 * prhs[30] = [ln], number of subpaths per midpath (size [l])
 * Output arguments are 
 * plhs[0] = [h], output array of the channel coefficients (size [u][s][n][tn])
 * plhs[1] = [output_SubPathPhase] pointer to output phases (size [n][m])
 *
 * FOR LOS MODE:
 *
 * prhs[0] = mode, either 1 (GENERAL), 2 (POLARIZED) or 3 (LOS) 
 * prhs[1] = [G_BS], complex BS_antenna gains (size [k][s])
 * prhs[2] = [G_MS], complex MS_antenna gains (size [k][u])
 * prhs[3] = theta_BS, angles of departure (size [k])
 * prhs[4] = theta_MS, angles of arrival (size [k])
 * prhs[5] = [d_s], distances of BS antenna s from ref. antenna (s=1), (size [s])
 * prhs[6] = [d_u], distance of MS antenna u from ref. antenna (u=1), (size [u])
 * prhs[7] = phase_los, phase of LOS component (size [k])
 * prhs[8] = [ts], time sample vector (size [k][tn])
 * prhs[9] = k_CONST, wave number
 * prhs[10] = [v], magnitude of the MS velocity vector (size [k])
 * prhs[11] = [theta_v], angle of the MS velocity vector (size[k])
 * prhs[12] = [h_in], input matrices (size [u][s][n][tn][k])
 * prhs[13] = [input_phase_los], (size [k])
 * prhs[14] = [k_FACTOR], (size [k])
 * prhs[15] = u, number of MS antennas
 * prhs[16] = s, number of BS antennas
 * prhs[17] = n, number of multipaths
 * prhs[18] = k, number of links
 * prhs[19] = tn, number of time samples
 * Output arguments are 
 * plhs[0] = [h], output array of the coefficients with LOS terms (size [u][s][n][tn][k])
 * plhs[1] = [output_phase_los] pointer to output phases (size [k])

 *
 */

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {

   /*pointers for input parameters*/

   /* variables for general mode coefficients */
   double *re_G_BS, *im_G_BS, *re_G_MS, *im_G_MS, *phase;

   /* variables for polarized mode coefficients */
   double *re_X_BS_v, *im_X_BS_v, *re_X_BS_h, *im_X_BS_h, *re_X_MS_v, *im_X_MS_v, *re_X_MS_h, *im_X_MS_h,
      *phase_v_v, *phase_v_h, *phase_h_v, *phase_h_h, *r_n1, *r_n2;

   /* variables for los mode */
   double *k_FACTOR, *theta_BS, *theta_MS, *phase_los;

   /* variables for more or less common parameters */
   double k_CONST;
   double *d_s, *d_u, *aod, *aoa, *sq_Pn, *v, *theta_v;
   double *ts;
   double *lm, *ln;  /* subpath ordering */
   int u, s, n, l, m, tn, k; /* parameters to be extracted from inputs' dimensions */
   int h_dims[5]; /* table for output array dimensions */
   int out_Phase_dims[3];
   long int look_up_points;
   int error, mode, GainsAreScalar;

   /*pointers to output*/
   double *re_h, *im_h, *output_SubPathPhase, *output_los_phase;

   /* check which mode is used */
   mode = (int)mxGetScalar(prhs[0]);


   /*Check if general coefficients are wanted */
   if (mode == GENERAL) {

      if(nrhs != 24)
         mexErrMsgTxt("scm_mex_core error: exactly 24 input arguments required for GENERAL option");

      /* ripping values from input */
      re_G_BS = (double*)mxGetPr(prhs[1]);
      im_G_BS = (double*)mxGetPi(prhs[1]);
      re_G_MS = (double*)mxGetPr(prhs[2]);
      im_G_MS = (double*)mxGetPi(prhs[2]);	
      aod = (double*)mxGetPr(prhs[3]);
      aoa = (double*)mxGetPr(prhs[4]);
      d_s = (double*)mxGetPr(prhs[5]);
      d_u = (double*)mxGetPr(prhs[6]);
      phase = (double*)mxGetPr(prhs[7]);
      ts = (double*)mxGetPr(prhs[8]);
      k_CONST = (double)mxGetScalar(prhs[9]);
      v = (double*)mxGetPr(prhs[10]);
      theta_v = (double*)mxGetPr(prhs[11]);
      sq_Pn = (double*)mxGetPr(prhs[12]);
      look_up_points = (long int)mxGetScalar(prhs[13]);
      u = (int)mxGetScalar(prhs[14]);
      s = (int)mxGetScalar(prhs[15]);
      n = (int)mxGetScalar(prhs[16]);
      l = (int)mxGetScalar(prhs[17]);
      m = (int)mxGetScalar(prhs[18]);
      k = (int)mxGetScalar(prhs[19]);
      tn = (int)mxGetScalar(prhs[20]);
      GainsAreScalar = (int)mxGetScalar(prhs[21]);
      lm = (double*)mxGetPr(prhs[22]);
      ln = (double*)mxGetPr(prhs[23]);

      /* now we know the output dimensions */
      h_dims[0] = u;
      h_dims[1] = s;
      h_dims[2] = n*l;
      h_dims[3] = tn;
      h_dims[4] = k;
      out_Phase_dims[0] = k;
      out_Phase_dims[1] = n;
      out_Phase_dims[2] = m;

      /* setting up output */
      plhs[0] = mxCreateNumericArray(5, h_dims, mxDOUBLE_CLASS, mxCOMPLEX);
      plhs[1] = mxCreateNumericArray(3, out_Phase_dims, mxDOUBLE_CLASS, mxREAL);
      re_h = (double*)mxGetPr(plhs[0]); /* Create a C pointer to real values of the output array */
      im_h = (double*)mxGetPi(plhs[0]); /* Create a C pointer to imaginary values of output */
      output_SubPathPhase = (double*)mxGetPr(plhs[1]);

      /* calculating the values */
      error = scm_sum(look_up_points, u, s, n, l, m, k, re_G_BS, im_G_BS, re_G_MS, im_G_MS,
         k_CONST, d_s, d_u, aod, aoa, phase, v, theta_v, ts, tn, sq_Pn, ln, lm, GainsAreScalar,
         re_h, im_h, output_SubPathPhase);

   } /* end general coefficients mode */

   /* check for polarized mode */
   else if (mode == POLARIZED)	{

      if(nrhs != 31)
         mexErrMsgTxt("scmmex error: exactly 31 input arguments required");

      /* ripping values from input */
      re_X_BS_v = (double*)mxGetPr(prhs[1]);
      im_X_BS_v = (double*)mxGetPi(prhs[1]);
      re_X_BS_h = (double*)mxGetPr(prhs[2]);
      im_X_BS_h = (double*)mxGetPi(prhs[2]);	
      re_X_MS_v = (double*)mxGetPr(prhs[3]);
      im_X_MS_v = (double*)mxGetPi(prhs[3]);
      re_X_MS_h = (double*)mxGetPr(prhs[4]);
      im_X_MS_h = (double*)mxGetPi(prhs[4]);
      aod = (double*)mxGetPr(prhs[5]);
      aoa = (double*)mxGetPr(prhs[6]);
      d_s = (double*)mxGetPr(prhs[7]);
      d_u = (double*)mxGetPr(prhs[8]);
      phase_v_v = (double*)mxGetPr(prhs[9]);
      phase_v_h = (double*)mxGetPr(prhs[10]);
      phase_h_v = (double*)mxGetPr(prhs[11]);
      phase_h_h = (double*)mxGetPr(prhs[12]);
      r_n1 = (double*)mxGetPr(prhs[13]);
      r_n2 = (double*)mxGetPr(prhs[14]);
      ts = (double*)mxGetPr(prhs[15]);
      k_CONST = (double)mxGetScalar(prhs[16]);
      v = (double*)mxGetPr(prhs[17]);
      theta_v = (double*)mxGetPr(prhs[18]);
      sq_Pn = (double*)mxGetPr(prhs[19]);
      look_up_points = (long int)mxGetScalar(prhs[20]);
      u = (int)mxGetScalar(prhs[21]);
      s = (int)mxGetScalar(prhs[22]);
      n = (int)mxGetScalar(prhs[23]);
      l = (int)mxGetScalar(prhs[24]);
      m = (int)mxGetScalar(prhs[25]);
      k = (int)mxGetScalar(prhs[26]);
      tn = (int)mxGetScalar(prhs[27]);
      GainsAreScalar = (int)mxGetScalar(prhs[28]);
      lm = (double*)mxGetPr(prhs[29]);
      ln = (double*)mxGetPr(prhs[30]);

      /* now we know the output dimensions */
      h_dims[0] = u;
      h_dims[1] = s;
      h_dims[2] = n*l;
      h_dims[3] = tn;
      h_dims[4] = k;
      out_Phase_dims[0] = k;
      out_Phase_dims[1] = n;
      out_Phase_dims[2] = m;

      /* setting up output */
      plhs[0] = mxCreateNumericArray(5, h_dims, mxDOUBLE_CLASS, mxCOMPLEX);
      plhs[1] = mxCreateNumericArray(3, out_Phase_dims, mxDOUBLE_CLASS, mxREAL);
      re_h = (double*)mxGetPr(plhs[0]); /* Create a C pointer to real values of the output array */
      im_h = (double*)mxGetPi(plhs[0]); /* Create a C pointer to imaginary values of output */
      output_SubPathPhase = (double*)mxGetPr(plhs[1]);

      /* calculating the values */
      error = scm_pol_sum(look_up_points, u, s, n, l, m, k, re_X_BS_v, im_X_BS_v, re_X_BS_h, im_X_BS_h, 
         re_X_MS_v, im_X_MS_v, re_X_MS_h, im_X_MS_h, k_CONST, d_s, d_u, aod, aoa,
         phase_v_v, phase_v_h, phase_h_v, phase_h_h,	r_n1, r_n2,
         v, theta_v, ts, tn, sq_Pn, ln, lm, GainsAreScalar, re_h, im_h, output_SubPathPhase);
   } /* end polarized mode */


   /* check los mode */
   else if (mode == LOS) {

      if(nrhs != 20)
         mexErrMsgTxt("scmlosmex error: exactly 20 input arguments required");

      /* ripping values from input */
      re_G_BS = (double*)mxGetPr(prhs[1]);
      im_G_BS = (double*)mxGetPi(prhs[1]);
      re_G_MS = (double*)mxGetPr(prhs[2]);
      im_G_MS = (double*)mxGetPi(prhs[2]);
      theta_BS = (double*)mxGetPr(prhs[3]);
      theta_MS = (double*)mxGetPr(prhs[4]);
      d_s = (double*)mxGetPr(prhs[5]);
      d_u = (double*)mxGetPr(prhs[6]);
      phase_los = (double*)mxGetPr(prhs[7]);
      ts = (double*)mxGetPr(prhs[8]);
      k_CONST = (double)mxGetScalar(prhs[9]);
      v = (double*)mxGetPr(prhs[10]);
      theta_v = (double*)mxGetPr(prhs[11]);
      re_h = (double*)mxGetPr(prhs[12]);
      im_h = (double*)mxGetPi(prhs[12]);
      output_los_phase = (double*)mxGetPr(prhs[13]);
      k_FACTOR = (double*)mxGetPr(prhs[14]);
      u = (int)mxGetScalar(prhs[15]);
      s = (int)mxGetScalar(prhs[16]);
      n = (int)mxGetScalar(prhs[17]);
      k = (int)mxGetScalar(prhs[18]);
      tn = (int)mxGetScalar(prhs[19]);

      /* setting up output */
      plhs[0] = (mxArray*)prhs[12];
      plhs[1] = (mxArray*)(prhs[13]);

      /* calculating the values */
      error = scm_los(u, s, n, k, re_G_BS, im_G_BS,
         re_G_MS, im_G_MS, k_CONST, d_s, d_u, theta_BS, theta_MS,
         phase_los, v, theta_v, ts, tn, k_FACTOR, re_h, im_h, output_los_phase);

      } /* end los mode */

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩你懂的在线播放| 国产精品免费久久久久| 蜜臀av一区二区| 国产精品剧情在线亚洲| 日韩欧美亚洲一区二区| 成人免费毛片app| 国产v日产∨综合v精品视频| 亚洲综合久久久久| 中文字幕免费不卡| 久久蜜臀精品av| 日韩精品一区二区三区三区免费| 亚洲欧美在线高清| 综合在线观看色| 有坂深雪av一区二区精品| 伊人一区二区三区| 国产精品自拍三区| 不卡视频免费播放| 欧美在线色视频| 欧美视频在线一区二区三区| 欧美区视频在线观看| 欧美丰满一区二区免费视频| 91精品欧美一区二区三区综合在| 欧美日韩aaaaaa| 亚洲人成网站色在线观看| 成人欧美一区二区三区小说| 亚洲一区二区三区四区在线免费观看| 国产成人午夜高潮毛片| av亚洲精华国产精华精| 欧洲色大大久久| 亚洲欧美日韩精品久久久久| 不卡电影一区二区三区| 久久精品夜夜夜夜久久| 亚洲人成网站在线| 91蝌蚪porny九色| 欧美日韩国产另类一区| 亚洲一区二三区| 欧美性大战xxxxx久久久| 亚洲精品写真福利| 欧美三级三级三级爽爽爽| 久久夜色精品国产噜噜av| 亚洲欧洲成人精品av97| 成人app软件下载大全免费| 中文字幕制服丝袜一区二区三区 | 欧美视频一区二区三区| 亚洲五码中文字幕| 美女www一区二区| 日韩精品一区国产麻豆| 国产在线视视频有精品| 99久久久久久| 久久综合久久综合亚洲| 国产一区二区在线观看免费| 色中色一区二区| 久久女同性恋中文字幕| 高清beeg欧美| 亚洲视频免费观看| 精品视频一区二区不卡| 精品在线免费观看| 欧美日韩国产综合一区二区三区| 天堂久久久久va久久久久| 国产成人免费高清| 国产精品久久久久久久第一福利 | 欧美又粗又大又爽| 日韩vs国产vs欧美| 在线精品观看国产| 奇米色一区二区| 91精品办公室少妇高潮对白| 国产欧美va欧美不卡在线| 精品一区二区av| 国产精品久久免费看| 欧美精品vⅰdeose4hd| 久久99国产精品久久99果冻传媒| 国产欧美视频一区二区三区| 欧美手机在线视频| 国产.欧美.日韩| 亚洲一二三四在线| 国产视频亚洲色图| 欧美精品一二三| 国产成人福利片| 日韩专区欧美专区| 国产精品的网站| 精品福利av导航| 国产剧情一区二区三区| 亚洲黄色免费网站| 中文欧美字幕免费| 日韩欧美的一区二区| 91在线观看污| 国产麻豆成人传媒免费观看| 亚洲成人av一区二区三区| 在线播放91灌醉迷j高跟美女 | 丰满少妇在线播放bd日韩电影| 亚洲资源中文字幕| 亚洲国产精品av| 欧美大片在线观看| 欧美日韩高清影院| 91免费版在线看| 国产91丝袜在线18| 美女一区二区三区| 午夜一区二区三区视频| 91精品啪在线观看国产60岁| 91啪亚洲精品| 成人av免费在线播放| 国产精品69毛片高清亚洲| 免费在线观看成人| 亚洲成av人片在线观看无码| 亚洲欧洲av在线| 国产精品丝袜一区| 久久久亚洲综合| 久久综合999| 91精品国产全国免费观看| 国内成人精品2018免费看| 天天综合色天天综合| 亚洲国产美国国产综合一区二区 | 久久网站最新地址| 欧美草草影院在线视频| 成人午夜激情在线| 国产69精品久久久久777| 国产原创一区二区| 国产在线播精品第三| 国产一区美女在线| 激情久久五月天| 国产精品白丝av| 国产酒店精品激情| 国产不卡一区视频| 国产精品亚洲成人| www.性欧美| 91在线精品一区二区三区| 91在线国内视频| 在线观看免费亚洲| 欧美日韩精品专区| 91精品国产综合久久久久久久| 欧美天堂一区二区三区| 欧美放荡的少妇| 欧美电视剧免费观看| 久久夜色精品国产欧美乱极品| 国产日韩影视精品| 亚洲色图欧美激情| 亚洲视频一区二区在线| 亚洲精品v日韩精品| 亚洲一区精品在线| 日韩二区三区四区| 国产一区二区在线电影| 成人禁用看黄a在线| 一本一本大道香蕉久在线精品| 日本韩国欧美在线| 欧美乱妇20p| 欧美一区二区精品久久911| 欧美精品一区二区三区高清aⅴ | 久久www免费人成看片高清| 日本一区二区三区免费乱视频| 国产精品三级av| 亚洲综合一二区| 老司机午夜精品99久久| 福利视频网站一区二区三区| 日本黄色一区二区| 欧美草草影院在线视频| 亚洲精品国产第一综合99久久| 日本成人中文字幕在线视频| 国产乱人伦偷精品视频不卡| 色94色欧美sute亚洲线路一ni| 日韩视频一区二区三区在线播放| 欧美精品丝袜中出| 国产亚洲精品中文字幕| 一区二区在线观看av| 加勒比av一区二区| 在线观看av不卡| 久久久噜噜噜久噜久久综合| 亚洲在线观看免费视频| 国产高清在线观看免费不卡| 制服丝袜亚洲播放| 亚洲欧美日韩一区| 国产999精品久久| 91精品在线免费| 亚洲精选视频在线| 高清不卡一区二区| 精品福利在线导航| 日韩av成人高清| 欧美日韩一区成人| 亚洲日穴在线视频| 懂色av一区二区夜夜嗨| 日韩一区国产二区欧美三区| 亚洲免费视频成人| 亚洲成av人片| 日本成人在线一区| 99国产精品久| 精品国产免费久久| 亚洲成人综合在线| 99精品国产视频| 色综合欧美在线| 久久影音资源网| 午夜激情综合网| 在线成人高清不卡| 最新久久zyz资源站| 裸体一区二区三区| 正在播放亚洲一区| 亚洲免费观看视频| 亚洲va韩国va欧美va| 欧美日韩另类一区| 亚洲欧美国产毛片在线| 99久久久精品| 欧美激情一区二区三区在线|