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

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

?? stviterbi.c

?? 空時編碼源代碼
?? C
字號:
/* MATLAB's C-MEX space-time trellis decoder for QPSK
 *
 * Copyright Bagawan S. Nugroho, 2006 
 *********************************************/

#include "mex.h"
#include "matrix.h"
#include <stdlib.h>
/* m-Ary, M = 4 for QPSK */
#define M            4
/* Number of incoming branch */
#define branch       4
/* Maximum number of state */
#define ST           256
/* Maximum length of data */
#define LEN          2000

/* ----------- The main function ---------- */
void stViterbi( double *sRe, double *sIm, double nrSt, int inLen, double *st1, double *st2, 
                  double *bin, int row, int col, double *chRe, double *chIm, double *y)
/* sRe, the real part of the received signal s
 * sIm, the imaginary part of the received signal s
 * nrSt, number of state
 * inLen, length of the received signal s
 * st1, current states trellis
 * st2, next states trellis
 * bin, decimal to binary map
 * row, number of row of matrix bin
 * col, number of col of matrix bin
 * chRe, the real part of the fading channel
 * chIm, the imaginary part of the fading channel
 *
 * y, the decoder output (0/1). */
                                    
{
   int i, k, l, m, n, L, stMap1, stMap2, delay, prevSt[ST][LEN], xTmp[LEN], decSt[LEN];
   double dist, distRe, distIm, minDist, metric[ST], nextMetric[ST]; 
   
   div_t Z;
   
   /* Some initializations... */
   int constelRe[4] = {1, 0, -1, 0};
   int constelIm[4] = {0, 1, 0, -1};
   
   Z = div( col, 2);
   delay = Z.quot + Z.rem;
   
   L = (int) nrSt/M;
    
   for( i = 0; i < nrSt; i++) {
      *(metric + i) = 0;
      for( k = 0; k < inLen; k++) {
         *(*(prevSt + i) + k) = 0;
      } /* for j */
   } /* for i */
   
   /* Viterbi decoding; find the surviving paths over time interval inLen */
   for( k = 1; k < inLen; k++) {
      for( l = 0; l < L; l++) {
         for( m = 0; m < M; m++) {
            minDist = 1e10;
            for( n = 0; n < branch; n++) {
               /* stMap1 = current states map; stMap2 = next states map */ 
               stMap1 = (int) *(st1 + L*n + l);
               stMap2 = (int) *(st2 + L*n + l + (int) nrSt*m);
               
               /* Find the eucledean distance of the received vector over all possible branches */
               
               /* The real part */
               distRe = (*chRe**(constelRe + stMap1) - *chIm**(constelIm + stMap1))
                  + (*(chRe + 1)**(constelRe + stMap2) - *(chIm + 1)**(constelIm + stMap2))
                  - *(sRe + k);
               /* The imaginary part */
               distIm = (*chIm**(constelRe + stMap1) + *chRe**(constelIm + stMap1))
                  + (*(chIm + 1)**(constelRe + stMap2) + *(chRe + 1)**(constelIm + stMap2)) 
                  - *(sIm + k);
               /* The magnitude */
               dist = distRe*distRe + distIm*distIm;
               
               /* Determine the minimum eucledean distance and the suviving paths */
               if( dist + *(metric + L*n + l) < minDist) {
                  minDist = dist + *(metric + L*n + l);
                  *(nextMetric + m + 4*l) = minDist;
                  *(*(prevSt + m + 4*l) + k) = L*n + l;                  
               } /* if */
            } /* for n */
         } /* for m */
      } /* for l */
      /* Update the branch metric vector */
      for( i = 0; i < nrSt; i++) {
         *(metric + i) = *(nextMetric + i);
      } /* for i */
   } /* for k */
   
   /* Trace back to find the estimated states */
   *(xTmp + inLen - 1) = 0;
   for( k = inLen - 1; k >= 0; k--) {      
      Z = div(*(xTmp + k + 1), 4);      
      *(xTmp + k) = *(*(prevSt + *(xTmp + k + 1)) + k);
      *(decSt + k) = M**(xTmp + k) + Z.rem;      
   } /* for i */

   /* Find the estimated bits sequence y */
   for( i = 0; i < inLen - delay; i++) {
      /* Even index sequence */
      *(y + 2*i) = *(bin + *(decSt + i) + row*(col - 1));
      /* Odd index sequence */
      *(y + 2*i + 1) = *(bin + *(decSt + i) + row*(col - 2));
   } /* for i */

} /* main */

/* ----------- The gateway function ---------- */
void mexFunction( int nlhs, mxArray *plhs[],
                    int nrhs, const mxArray *prhs[] )

/* input: s    = prhs[0], input vector; complex number   
 *        st1  = prhs[1], current state matrix
 *        st2  = prhs[2], next state matrix
 *        nrSt = prhs[3], number of state
 *        bin  = prhs[4], decimal to binary map
 *        ch   = prhs[5], fading channel; complex number    
 *
 * output: y   = plhs[0], output vector (0/1). */
{    
   double *sRe, *sIm, nrSt, *st1, *st2, *bin, *chRe, *chIm, *y;
   int x, inLen, row, col;
   
   div_t Z;
   
   if( nrhs != 6) {
      mexErrMsgTxt( "Missing or wrong input argument(s)!");
   }
        
   /* Create pointer to the complex input vector s */
   sRe = mxGetPr( prhs[0]);
   sIm = mxGetPi( prhs[0]);

   /* Get the length of the vector input s */
   inLen = mxGetN( prhs[0]);
          
   /* Create pointer to the input matrix st1 */
   st1 = mxGetPr( prhs[1]);
   
   /* Create pointer to the input matrix st2 */
   st2 = mxGetPr( prhs[2]);
   
   /* Get the scalar input nrSt */
   nrSt = mxGetScalar( prhs[3]);
   
   /* Get the pointer to the input matrix bin */
   bin = mxGetPr( prhs[4]);
   
   /* Get dimension of the matrix bin */
   row = mxGetM( prhs[4]);
   col = mxGetN( prhs[4]);
   
   /* Get the pointer to the complex input vector ch */
   chRe = mxGetPr( prhs[5]);
   chIm = mxGetPi( prhs[5]);
   
   /* Create output the matrix y with length of x */
   Z = div( col, 2);
   x = Z.quot + Z.rem;   
   x = 2*(inLen - x);
   
   plhs[0] = mxCreateDoubleMatrix( 1, x, mxREAL);
    
   /* Create a pointer to a copy ot the output matrix */
   y = mxGetPr( plhs[0]);
    
   /* Call the main subroutine */
   stViterbi( sRe, sIm, nrSt, inLen, st1, st2, bin, row, col, chRe, chIm, y);   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人123区| 国产成人h网站| 国产精品一二一区| 在线国产电影不卡| 2017欧美狠狠色| 天天av天天翘天天综合网色鬼国产| 国产精品69久久久久水密桃| 欧美日韩视频在线一区二区| 中文字幕永久在线不卡| 国内精品免费在线观看| 欧美色视频在线| 亚洲六月丁香色婷婷综合久久| 精品一区二区免费视频| 欧美精品色综合| 亚洲黄色免费网站| 99在线热播精品免费| 2023国产精品| 久久丁香综合五月国产三级网站| 欧美日韩专区在线| 亚洲综合在线五月| 一本一本大道香蕉久在线精品| 国产清纯白嫩初高生在线观看91| 久久精品国产免费| 91精品国产欧美一区二区成人| 亚洲激情校园春色| 91在线一区二区三区| 中文字幕在线观看不卡视频| 波多野结衣中文一区| 欧美国产视频在线| 成人精品视频一区二区三区| 日韩免费观看高清完整版 | 91黄色激情网站| 国产精品无遮挡| 大陆成人av片| 国产精品传媒入口麻豆| 白白色 亚洲乱淫| 亚洲欧洲综合另类在线| 一本色道久久综合狠狠躁的推荐| 自拍偷拍国产精品| 欧美色图天堂网| 无吗不卡中文字幕| 91精品国产乱| 国产馆精品极品| 国产精品视频看| 色一区在线观看| 污片在线观看一区二区| 精品日韩成人av| 国产不卡视频在线播放| 中文字幕一区二区三区不卡在线| 色综合天天做天天爱| 午夜一区二区三区在线观看| 制服丝袜在线91| 精品在线播放免费| 国产精品毛片a∨一区二区三区 | 国产精品99久久不卡二区| 国产欧美1区2区3区| 99精品久久99久久久久| 亚洲人成网站色在线观看| 日韩欧美你懂的| 国产成人啪免费观看软件| 亚洲色图一区二区| 91精品国产综合久久久久久久| 国产乱码精品一区二区三| 国产精品毛片大码女人| 91麻豆精品国产自产在线观看一区| 激情综合色综合久久| 亚洲精品少妇30p| 精品嫩草影院久久| 91在线观看一区二区| 日韩av一级片| 国产精品三级视频| 欧美一区二区视频在线观看2020| 国产91清纯白嫩初高中在线观看 | 国产精品久久久久婷婷| 欧美日韩综合一区| 国产福利一区二区三区视频在线 | 国产拍欧美日韩视频二区| 91麻豆福利精品推荐| 久久91精品国产91久久小草| 亚洲精品视频在线看| 久久久夜色精品亚洲| 欧美日韩久久久久久| 成人av资源在线| 日本在线播放一区二区三区| 亚洲精品v日韩精品| 亚洲国产岛国毛片在线| 欧美成人精品高清在线播放| 欧洲精品一区二区三区在线观看| 国产麻豆成人传媒免费观看| 日韩在线一二三区| 18欧美乱大交hd1984| 国产网站一区二区| 欧美刺激午夜性久久久久久久| 欧美色视频在线| 欧美在线三级电影| 99精品久久99久久久久| 国产91清纯白嫩初高中在线观看| 蓝色福利精品导航| 天天色天天爱天天射综合| 亚洲亚洲精品在线观看| 一区二区三区在线免费观看 | 亚洲国产一区二区三区| 国产日韩v精品一区二区| 日韩三级视频中文字幕| 91精品国产综合久久婷婷香蕉 | 亚洲欧洲日本在线| 国产精品视频九色porn| 国产人妖乱国产精品人妖| 亚洲精品在线电影| 日韩精品专区在线| 日韩一区二区在线观看视频播放| 欧美年轻男男videosbes| 欧美专区在线观看一区| 欧美日韩亚州综合| 色94色欧美sute亚洲线路二| 99久久久久久99| av高清不卡在线| 成人黄色片在线观看| 成+人+亚洲+综合天堂| 成人av电影在线| 色呦呦日韩精品| 欧美亚洲国产一区二区三区va| 欧美图区在线视频| 在线播放欧美女士性生活| 日韩欧美一区二区在线视频| 欧美一二三区在线观看| 久久青草国产手机看片福利盒子 | 国产日韩欧美精品一区| 中文字幕精品一区| 中文字幕一区二区三区蜜月| 亚洲制服欧美中文字幕中文字幕| 亚洲成a人v欧美综合天堂下载| 天堂va蜜桃一区二区三区漫画版 | 91视频一区二区三区| 欧美综合久久久| 欧美狂野另类xxxxoooo| 日韩你懂的在线播放| 久久久久久一级片| 亚洲美女在线国产| 视频一区二区三区在线| 国产福利一区在线| 色偷偷久久一区二区三区| 777午夜精品视频在线播放| 久久久九九九九| 亚洲欧洲色图综合| 日本伊人色综合网| 成人精品免费视频| 欧美探花视频资源| 久久综合色天天久久综合图片| 亚洲欧美一区二区三区孕妇| 五月天亚洲婷婷| 粉嫩高潮美女一区二区三区| 在线免费观看成人短视频| 欧美成人精精品一区二区频| 亚洲精选免费视频| 激情深爱一区二区| 在线观看日韩高清av| 26uuu欧美日本| 成人在线综合网| 伦理电影国产精品| 欧洲生活片亚洲生活在线观看| 在线成人小视频| 国产精品大尺度| 国产一区二区视频在线| 91视视频在线观看入口直接观看www | 免费在线一区观看| 一区二区三区欧美亚洲| 另类综合日韩欧美亚洲| 91丨porny丨最新| 日韩欧美精品在线视频| 亚洲一区二区三区美女| 国产成人在线看| 日韩精品一区国产麻豆| 亚洲自拍偷拍麻豆| 成人黄色电影在线| 精品福利在线导航| 亚洲精品视频在线| av电影在线观看一区| 久久精品日产第一区二区三区高清版| 亚洲第四色夜色| 色婷婷亚洲精品| 国产精品无遮挡| 国产不卡在线播放| 久久精品免费在线观看| 看片网站欧美日韩| 91精品国产麻豆| 日本特黄久久久高潮| 欧美男男青年gay1069videost| 国产精品免费久久| 懂色av一区二区夜夜嗨| 26uuu精品一区二区三区四区在线| 免费观看30秒视频久久| 欧美伦理视频网站| 视频一区二区三区中文字幕| 欧美日韩mp4| 亚洲国产成人av网| 日本韩国欧美三级| 亚洲一区二区在线观看视频| 91成人在线免费观看| 亚洲免费观看高清完整|